คำถามติดแท็ก programming-practices

Programming Practices เป็นวิธีที่ใช้กันทั่วไปหรือไม่ใช้กันทั่วไปในการพัฒนาซอฟต์แวร์ สิ่งเหล่านี้อาจรวมถึงสิ่งต่าง ๆ เช่นการพัฒนาแบบ Agile, Kanban, ทางลัดการเข้ารหัส ฯลฯ

4
ในบ้านกับสภาพแวดล้อมการพัฒนาซอฟต์แวร์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ในอุตสาหกรรมมีความแตกต่างระหว่างสภาพแวดล้อม 'ในบ้าน' ที่นักพัฒนาซอฟต์แวร์กำลังเขียนรหัสซึ่ง บริษัท จะใช้และสภาพแวดล้อม 'การพัฒนาซอฟต์แวร์' ที่เหมาะสมซึ่งเป็นซอฟต์แวร์ที่สร้างขึ้นเพื่อจำหน่าย / จำหน่าย สู่สาธารณะ ความแตกต่างที่เห็นได้ชัดระหว่างสองคือ บริษัท ที่มุ่งเน้นการพัฒนาซอฟต์แวร์โดยทั่วไปจะยึดติดกับวงจรชีวิตการพัฒนาซอฟต์แวร์บางอย่างเช่นการเขียนข้อมูลจำเพาะการทดสอบการสร้าง ฯลฯ ในขณะที่ร้านค้าภายใน บริษัท ทำสิ่งต่าง ๆ ในแบบสบาย ๆ มากกว่าเพราะพวกเขาเป็นผู้ใช้งานและสามารถแก้ไขสิ่งที่ไม่ถูกต้องได้เสมอ ในฐานะนักเรียน (เช่นนักเรียนคนอื่น ๆ ) ฉันคาดหวังว่าตัวเองจะจบลงด้วยการทำงานในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ แต่ฉันก็จบลงด้วยการได้ตำแหน่งแรกของ บริษัท ที่ดำเนินธุรกิจแฟชั่นในบ้านมากกว่า บางครั้งฉันสงสัยว่าฉันพลาดประสบการณ์การพัฒนาซอฟต์แวร์ที่สมบูรณ์แบบหรือไม่ มีพื้นฐานสำหรับความรู้สึกนี้หรือไม่? ฉันควรพยายามเข้าร่วมสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่เหมาะสมหรือไม่

7
วิธีที่ดีที่สุดในการแยกรหัสที่ครอบงำออกเป็นส่วนที่จัดการได้หรือไม่
ฉันกำลังประสบกับโครงการขนาดใหญ่อย่างต่อเนื่องเมื่อพวกเขามาถึงระดับความซับซ้อนที่แน่นอน เมื่อฉันไปถึงจุดหนึ่งในโครงการความคืบหน้าของฉันจะช้าลงในการรวบรวมข้อมูลและฉันพบว่าตัวเองกลับมาเดินตามขั้นตอนของฉันและแยกแยะความสับสนทุกประเภท ฉันได้รับการปรับสภาพที่ดีมากเนื่องจากจุดอ่อนของฉันนี้ และฉันพยายามที่จะย่อยสลายวัตถุของฉันให้เล็กลงจัดการได้ดีกว่า จุดอ่อนนี้อาจทำให้ฉันให้ความสนใจกับการออกแบบสิ่งต่าง ๆ มากเกินไป ฉันรู้ว่าถ้าฉันสามารถแบ่งปัญหาของฉันออกเป็นเล็ก ๆ ฉันจะสามารถทำให้สำเร็จได้อย่างราบรื่น หนึ่งในกลยุทธ์ที่คำนึงถึงคือการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ ฉันจะทำอะไรได้อีก

5
เกิดอะไรขึ้นกับรูปแบบไฟล์รวมของ Alan Cooper
อลันคูเปอร์เป็นเวลานาน (ในหนังสือทั้งสามเล่มของเขาเรื่อง "About Face") ได้ส่งเสริม "unified file model" ให้กับสิ่งอื่น ๆ เขาได้แจกจ่ายสิ่งที่เขาเรียกว่ากล่องข้อความที่งี่เง่าที่สุดที่เคยประดิษฐ์ขึ้นมา ปรากฏขึ้นเมื่อกดปุ่มปิดในแอปหรือแบบฟอร์มที่เขียนว่า "คุณต้องการยกเลิกการเปลี่ยนแปลงหรือไม่" ฉันชอบความคิดและข้อโต้แย้งของเขา แต่ยังมีปฏิกิริยาตอบสนองต่อข้อเหวี่ยงที่ผู้เขียนโปรแกรมและผู้ใช้เก๋าส่วนใหญ่มี ในขณะที่หนังสือของคูเปอร์ดูเหมือนเป็นที่นิยมและได้รับความเคารพ แต่ก็มีการพูดคุยกันเล็กน้อยเกี่ยวกับปัญหานี้ในเว็บที่ฉันสามารถหาได้ Petter Hesselberg ผู้เขียน "Programming Industrial Strength Windows" กล่าวถึง แต่ดูเหมือนว่าจะเป็นเรื่องนั้น ฉันมีโอกาสนำไปใช้ในโครงการ (เดสก์ท็อป) ที่ฉันกำลังดำเนินการอยู่ แต่การเผชิญกับการต่อต้านจากลูกค้าและเพื่อนร่วมงานที่คุ้นเคยกับวิธี MS Word และ Excel ในการทำสิ่งต่าง ๆ ฉันอยู่ในฐานะที่จะแทนที่การคัดค้านของพวกเขา แต่ฉันไม่แน่ใจว่าควรทำหรือไม่ คำถามของฉันคือ: มีการสนทนาที่ดีเกี่ยวกับเรื่องนี้หรือไม่ที่ฉันไม่พบ? มีใครทำเช่นนี้ในแอปของพวกเขาหรือไม่ มันเป็นความคิดที่ดีหรือไม่ที่น่าเสียดายที่ไม่สามารถนำไปปฏิบัติได้จนกว่าจะกล่าวว่า Microsoft ทำใช่หรือไม่

5
เมื่อใดจะเริ่มเขียนการจัดการข้อยกเว้นการบันทึก
คุณจะเริ่มเขียนโค้ดจัดการข้อยกเว้นเมื่อใด คุณเริ่มเขียนคำสั่งการบันทึกเมื่อใด เพื่อจุดประสงค์ในการอธิบายคำถามนี้ให้เราสมมติว่าเราอยู่บนแพลตฟอร์ม. NET ที่มีการบันทึก log4net แต่คุณสามารถตอบได้อย่างอิสระ การแก้ไข: โครงการ Windows Forms โครงการ: UI, BusinessRules, DataHandlers ดังนั้นคุณจะไปเกี่ยวกับการเขียน DataHandlers ของคุณซึ่งการจัดการข้อมูลของคุณเช่นสร้างอ่านอัปเดตลบก่อน จากนั้นติดตามกฎธุรกิจของคุณ จากนั้น UI ของคุณหรือการเปลี่ยนแปลงอื่น ๆ ข้างต้น ทดสอบแอปพลิเคชันของคุณสำหรับการใช้งาน และจากนั้นก็เริ่มต้นการเขียนข้อยกเว้นของการจัดการรหัสและในที่สุดรหัสเข้าสู่ระบบของคุณหรือไม่ เวลาที่เหมาะสมในการเริ่มเขียนรหัสการจัดการข้อยกเว้นของคุณคือเมื่อใด PS: ในClean Codeของหนังสือพวกเขาบอกว่าเขียนบล็อกtry-catch-สุดท้ายของคุณก่อน นั่นทำให้ฉันถามคำถามนี้

8
สตริง C ถูกยกเลิกเป็นโมฆะเสมอหรือขึ้นอยู่กับแพลตฟอร์มหรือไม่
ตอนนี้ฉันกำลังทำงานกับระบบฝังตัวและหาวิธีที่จะใช้สตริงในไมโครโปรเซสเซอร์ที่ไม่มีระบบปฏิบัติการ จนถึงตอนนี้สิ่งที่ฉันทำคือการใช้ความคิดของการมีตัวชี้ NULL สิ้นสุดตัวอักษรและปฏิบัติต่อพวกเขาเป็นสตริงที่ NULL หมายถึงจุดสิ้นสุด ฉันรู้ว่านี่เป็นเรื่องธรรมดา แต่คุณสามารถเสมอนับเกี่ยวกับเรื่องนี้จะเป็นกรณีที่? เหตุผลที่ฉันถามคือฉันกำลังคิดว่าอาจจะใช้ระบบปฏิบัติการแบบเรียลไทม์ในบางจุดและฉันต้องการใช้รหัสปัจจุบันของฉันให้มากที่สุด ดังนั้นสำหรับตัวเลือกต่าง ๆ ที่อยู่ข้างนอกฉันจะคาดหวังได้ไหมว่าสตริงจะทำงานเหมือนกันหรือไม่? ให้ฉันเจาะจงมากขึ้นสำหรับกรณีของฉัน ฉันกำลังใช้ระบบที่ใช้และประมวลผลคำสั่งผ่านพอร์ตอนุกรม ฉันสามารถรักษารหัสการประมวลผลคำสั่งของฉันไว้เหมือนกันได้หรือไม่แล้วคาดว่าวัตถุสตริงที่สร้างขึ้นบน RTOS (ซึ่งมีคำสั่ง) ทั้งหมดนี้จะถูกยกเลิกเป็น NULL หรือไม่ หรือว่ามันจะแตกต่างกันไปตามระบบปฏิบัติการหรือไม่ ปรับปรุง หลังจากได้รับคำแนะนำให้ดูคำถามนี้ฉันตัดสินใจแล้วว่าไม่ตอบคำถามที่ฉันขอ คำถามก็คือการถามว่าความยาวของสตริงควรส่งผ่านซึ่งแตกต่างอย่างสิ้นเชิงกับสิ่งที่ฉันถามหรือไม่และถึงแม้ว่าคำตอบบางส่วนจะมีข้อมูลที่เป็นประโยชน์ในพวกเขาพวกเขาไม่ใช่สิ่งที่ฉันกำลังมองหา คำตอบที่ดูเหมือนจะให้เหตุผลว่าทำไมหรือทำไมไม่ยุติสตริงด้วยอักขระ null ความแตกต่างกับสิ่งที่ฉันถามคือถ้าฉันสามารถคาดหวังมากขึ้นหรือน้อยลงสตริงที่เกิดในแพลตฟอร์มที่แตกต่างกันเพื่อยุติสตริงของตัวเองด้วย null โดยไม่ต้องออกไปข้างนอกและลองทุกแพลตฟอร์มเดียวถ้ามันสมเหตุสมผล

6
การปฏิบัติที่ดีที่สุดสำหรับการใช้งานการพิมพ์ / ความช่วยเหลือ (- ความช่วยเหลือ) คืออะไร?
เมื่อเขียนเครื่องมือสำหรับ CLI ของ UNIX ฉันจะทำให้โปรแกรมพิมพ์วิธีใช้และ / หรือการใช้งานได้อย่างไร ฉันมักจะใช้fprintf(stderr, "help text here");แต่มีหลายปัญหาด้วยกัน stderrครั้งแรกผมไม่แน่ใจว่าไม่ว่าฉันควรใช้ ตกลงหรือฉันควรใช้stdout? อย่างที่คุณสามารถจินตนาการได้ข้อความช่วยเหลือค่อนข้างยาวขึ้นอยู่กับจำนวนตัวเลือกของเครื่องมือ ตอนนี้ฉันมักจะใส่หลาย ๆ อย่าง"strings like that\n"ในพารามิเตอร์ที่สอง อย่างไรก็ตามสิ่งนี้เติมรหัสต้นฉบับของฉันด้วยข้อความช่วยเหลือห้าสิบรายการขึ้นไป มันไม่สามารถจัดการได้ง่ายเลย ฉันควรทำอย่างไรดี เมื่อเครื่องมือไม่ได้เขียนในภาษา C หรือภาษา C ฉันมักจะใช้ที่นี่ docsที่เป็นไปได้ (ส่วนใหญ่เด่นชัดด้วย Perl) ฉันไม่สามารถใช้สิ่งนั้นใน C แต่มีอะไรแบบนั้นที่ฉันสามารถใช้ได้หรือไม่? ฉันกำลังพิจารณาที่จะวางมันไว้headerfile.hข้างใน a #define HELP "help text here"ฉันไม่เคยเห็นมันมาในป่าไม่รู้ว่าฉันควรใช้มันหรือไม่ เป็นการดีที่ฉันสามารถใส่ข้อความในไฟล์ภายนอกและรวมไว้ ใช้#includeสำหรับสิ่งที่ดูเหมือนว่าผิด ฉันควรทำอย่างไร แนวคิดคือมีข้อความช่วยเหลือที่สามารถจัดการได้ง่าย การเก็บไว้ในซอร์สโค้ดไม่สะดวกจริงๆ

6
ค่าเริ่มต้น - พวกเขาดีหรือไม่ดี?
คำถามเกี่ยวกับค่าเริ่มต้นโดยทั่วไป - ค่าฟังก์ชันส่งคืนค่าเริ่มต้น, ค่าพารามิเตอร์เริ่มต้น, ตรรกะเริ่มต้นสำหรับสิ่งที่หายไป, ตรรกะเริ่มต้นสำหรับการจัดการข้อยกเว้น, ตรรกะเริ่มต้นสำหรับการจัดการเงื่อนไขขอบ ฯลฯ เป็นเวลานานที่ฉันถือว่าค่าเริ่มต้นเป็นสิ่งที่ "ชั่วร้ายบริสุทธิ์" สิ่งที่ "ปิดบังความหายนะ" และผลลัพธ์ในการค้นหาข้อบกพร่องที่ยากมาก แต่เมื่อเร็ว ๆ นี้ฉันเริ่มคิดเกี่ยวกับค่าเริ่มต้นเนื่องจากหนี้ทางเทคนิคบางประเภท ... ซึ่งไม่ได้เป็นสิ่งที่ไม่ดี แต่สิ่งที่สามารถให้ "การจัดหาเงินทุนระยะสั้น" เพื่อให้เราอยู่รอดได้ในโครงการ จะซื้อบ้านโดยไม่ต้องจดจำนองไหม? เมื่อฉันพูดว่า "ระยะสั้น" - ฉันไม่ได้หมายความว่า - "ทำอะไรบางอย่างได้อย่างรวดเร็วก่อนและทำการปรับโครงสร้างใหม่ในภายหลังก่อนที่จะถึงการผลิต" ไม่ - ฉันกำลังพูดถึงการพึ่งพาค่าเริ่มต้นที่ฮาร์ดโค้ดในซอฟต์แวร์ที่ใช้งานจริง ได้รับ - มันอาจทำให้เกิดปัญหาบางอย่าง แต่ถ้ามันจะทำให้เกิดปัญหาเดียวตลอดทั้งปี อีกครั้ง - ฉันกำลังพูดถึงซอฟต์แวร์กระแสหลัก "โดยเฉลี่ย" ที่นี่ (ไม่ใช่ซอฟต์แวร์สำหรับสถานีพลังงานนิวเคลียร์) - เว็บไซต์เฉลี่ยหรือแอปพลิเคชัน UI สำหรับซอฟต์แวร์การบัญชีซึ่งหมายความว่าชีวิตของผู้คนไม่ได้อยู่ในความเสี่ยงหรือนับล้านดอลลาร์ . อีกครั้งจากประสบการณ์ของฉันผู้ใช้ทางธุรกิจค่อนข้างจะอาศัยอยู่กับซอฟต์แวร์ที่ "ทำงานอย่างใด" แทนที่จะรอให้มันสมบูรณ์แบบ และการใช้ค่าเริ่มต้นจะช่วยได้มากหากคุณพัฒนาซอฟต์แวร์ในสไตล์ …

5
ในเงื่อนไขใด (ถ้ามี) มันเป็นการดีหรือไม่ที่จะค้นหาเซิร์ฟเวอร์สองเครื่องและใช้การตอบสนองที่เร็วที่สุดเท่านั้น
ฉันถามว่าตอนนี้คำถามที่ถูกลบโดยชุมชนในSOว่าทำไมใครบางคนจะใช้จาวาสคริปต์Promise.raceและผู้ใช้ตัวแทนระดับสูงแสดงความคิดเห็นนี้: หากคุณมีสองบริการที่คำนวณค่าบางอย่างคุณสามารถค้นหาทั้งสองแบบขนานและใช้ค่าที่เคยถูกส่งกลับมาก่อนแทนที่จะทำการสืบค้นหนึ่งรอความล้มเหลวจากนั้นทำการสอบถามครั้งที่สอง ฉันได้ค้นหาเกี่ยวกับความซ้ำซ้อนและกรณีการใช้งานทั่วไป แต่ฉันไม่พบอะไรเลยและจาก POV ของฉันมันไม่ควรที่จะเพิ่มปริมาณงานไปยังเซิร์ฟเวอร์ / บริการหากคุณไม่ต้องการใช้การตอบสนอง

2
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะสร้างบล็อคของรหัส?
ใน C ++ มันเป็นวิธีปฏิบัติที่ไม่ถูกต้องหรือไม่ในการสร้างบล็อกของโค้ดภายในฟังก์ชั่นบางอย่างเช่นต่อไปนี้: bool f() { { double test = 0; test = // some other variable outside this function, for example. if (test == // some value) return true; } { double test = 0; test = // some variable outside this function, different from the last one. …

4
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะใช้พารามิเตอร์วิธีการซ้ำ
มีบางครั้งที่ฉันจะต้องแก้ไขค่าที่ส่งผ่านไปยังเมธอดจากภายในเมธอดเอง ตัวอย่างจะทำให้บริสุทธิ์สตริงเช่นวิธีนี้ที่นี่: void SanitizeName(string Name) { Name = Name.ToUpper(); //now do something here with name } สิ่งนี้ไม่เป็นอันตรายอย่างNameแท้จริงเนื่องจากอาร์กิวเมนต์ไม่ได้ถูกส่งผ่านโดยการอ้างอิง อย่างไรก็ตามถ้าด้วยเหตุผลบางอย่างผู้พัฒนาในอนาคตตัดสินใจที่จะให้ค่าทั้งหมดผ่านโดยอ้างอิงการฆ่าล้างของสตริงจะส่งผลกระทบต่อค่านอกวิธีการที่อาจมีผลเป็นอันตราย ดังนั้นแทนที่จะกำหนดใหม่ให้กับข้อโต้แย้งตัวเองฉันมักจะสร้างสำเนาท้องถิ่นเช่น: void SanitizeName(string Name) { var SanitizedName = Name.ToUpper(); //now do something here with name } สิ่งนี้ทำให้มั่นใจได้ว่าการเปลี่ยนแปลงค่าที่ส่งผ่านจะไม่ส่งผลกระทบต่อการดำเนินการด้านนอกวิธีการ แต่ฉันสงสัยว่าฉันกำลังหวาดระแวงเกี่ยวกับเรื่องนี้มากเกินไป

2
Haskell หาทางแก้ไขปัญหา 3n + 1
นี่เป็นปัญหาที่การเขียนโปรแกรมอย่างง่ายจาก Spoj: http://www.spoj.com/problems/PROBTRES/ โดยพื้นฐานแล้วคุณจะถูกขอให้แสดงรอบวัฏจักร Collatz ที่ใหญ่ที่สุดสำหรับตัวเลขระหว่าง i และ j (รอบ Collatz ของจำนวน $ n $ คือจำนวนขั้นตอนที่จะได้รับจาก $ n $ ถึง 1 ในที่สุด) ฉันได้มองหาวิธี Haskell เพื่อแก้ปัญหาด้วยประสิทธิภาพเปรียบเทียบมากกว่าของ Java หรือ C ++ (เพื่อให้พอดีกับขีด จำกัด เวลาทำงานที่อนุญาต) แม้ว่าโซลูชัน Java อย่างง่ายที่จดจำความยาวของรอบของรอบใด ๆ ที่คำนวณแล้วจะใช้งานได้ แต่ฉันไม่ประสบความสำเร็จในการนำแนวคิดนี้ไปใช้เพื่อรับโซลูชัน Haskell ฉันได้พยายาม Data.Function.Memoize เช่นเดียวกับเทคนิค memoization ที่่กลั่นในบ้านเวลาเข้าสู่ระบบโดยใช้ความคิดจากการโพสต์นี้: /programming/3208258/memoization-in-haskell น่าเสียดายที่การบันทึกช่วยจำทำให้การคำนวณรอบ (n) ช้าลง ฉันเชื่อว่าช้าลงมาจากค่าใช้จ่ายของทาง Haskell …

3
การอ้างถึงองค์ประกอบอาร์เรย์เข้าถึงผ่านตัวชี้เลขคณิตแทนที่จะเป็นตัวดำเนินการ [] ใช่ไหม
ฉันเพิ่งเริ่มเรียนรู้การเขียนโปรแกรมใน C และเพื่อปรับปรุงความเข้าใจของฉันเกี่ยวกับพอยน์เตอร์และอาร์เรย์ฉันพยายามอ้างถึงองค์ประกอบของอาร์เรย์โดยไม่สร้างตัวชี้ใด ๆ เลย: for(k1 = 0; k1 < ROW; k1++){ for(k2 = 0; k2 < COLUMN; k2++){ array[k1][k2] = k1*COLUMN + k2 + 1; printf("[%d][%d] = %d\n", k1, k2, *(array[k1] + k2)); } } รหัสทั้งหมดรวบรวมและทำงานอย่างไม่มีที่ติ ฉันคิดว่าต้องสร้างตัวชี้สำหรับทุก ๆ อาร์เรย์ในซอร์สโค้ดขนาดใหญ่ดูเหมือนว่าจะไม่มีประสิทธิภาพสูง ดังนั้นแทนที่จะมีที่อยู่ของอาร์เรย์ที่เก็บและดึงข้อมูลโดยใช้ตัวชี้มันเป็นวิธีการเขียนโปรแกรมที่ไม่ดีหรือไม่ที่จะใช้ที่อยู่ของอาร์เรย์โดยตรงดังที่แสดงไว้ด้านบน

3
มีความเหมาะสมที่จะนำปัญหาที่ทราบมาโดยตรงในซอฟต์แวร์หรือไม่
ฉันได้ทำการบำรุงรักษาแอพ Android แล้วและมีปัญหาบางอย่างที่ฉันได้รับการแก้ไขไม่มากก็น้อย แต่ก็ยังมีปัญหาอยู่เนื่องจาก Android OS เวอร์ชันต่าง ๆ ตัวอย่างเช่นการส่งคำขอเว็บด้วยคลาส MediaPlayer มีส่วนหัว HTTP ที่กำหนดเองที่ถูกตัดออกโดยระบบปฏิบัติการก่อนที่จะส่งคำขอ แต่เฉพาะใน Android 4.X (ฉันทดสอบอย่างละเอียด) และนั่นทำให้คุณสมบัตินี้ล้มเหลวเพราะต้องอาศัย บนส่วนหัวเหล่านั้น นี่เป็นปัญหาที่ทราบกันแล้วและฉันพยายามที่จะหลีกเลี่ยงมัน แต่มันจะเป็นการดีหรือไม่ที่จะมีการตรวจสอบตามเงื่อนไข if (OS.VERSION == 4) { knownIssueDialog(This feature will not work on your Android version... etc."); } เห็นได้ชัดว่าเราจะมีสิ่งนี้บันทึกไว้ในช่องทางการสนับสนุนของเรา แต่ฉันสงสัยว่ามันจะเป็นความคิดที่ดี (สมมติว่าทุกอย่างติดตาม) เพื่อให้ทราบปัญหาเหล่านี้ยังฝังอยู่ในซอฟต์แวร์และนำเสนอเมื่อใดก็ตามที่จำเป็น เช่นสิ่งที่ฉันอธิบายไว้ข้างต้น เราได้รับการวิจารณ์ที่ไม่ดีหลายครั้งและอีเมลสนับสนุนมากมายจากปัญหาเหล่านี้ดังนั้นในใจของฉันมันจะช่วยให้ทุกคนประหยัดเวลาและปวดหัวได้เพียงแค่ปิดกั้นคุณสมบัติที่ทราบว่าไม่ทำงานอย่างถูกต้อง ฉันเห็นปัญหาที่อาจเกิดขึ้นสองประการ: ผู้ใช้อาจไม่เคยเห็นอะไรแบบโต้ตอบ "ปัญหาที่ทราบ" มาก่อน; ผู้ใช้จำนวนมากอาจไม่เข้าใจความหมาย มีค่าใช้จ่ายในการพัฒนาอยู่เล็กน้อย - …

8
การเขียนซอฟต์แวร์ง่ายกว่าการอ่านและทำความเข้าใจตั้งแต่เริ่มต้นหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันและเพื่อนของฉันกำลังคุยกันเรื่องวานนี้เกี่ยวกับความแตกต่างระหว่างการเขียนซอฟต์แวร์ C ++ ขนาดใหญ่และเข้าใจว่าเป็นการรับสมัครใหม่ เป็นไปได้ไหมว่าเมื่อซอฟต์แวร์ทำทีละบรรทัดและกระบวนการนี้คล้ายกับว่าเรา (มนุษย์) เรียนรู้สิ่งต่าง ๆ และสร้างสิ่งที่อยู่เหนือสิ่งอื่นการเขียนซอฟต์แวร์ขนาดใหญ่นั้นง่ายกว่าการอ่านและเข้าใจสิ่งที่มันทำ (การก้าวผ่านโค้ดช่วย แต่คุณต้องจำหลายคลาส / ไฟล์ต้นฉบับด้วยกันคุณไม่รู้ด้วยซ้ำว่าพวกมันถูกเขียนเพื่ออะไร มันฟังดูแปลกในตอนแรก แต่หลังจากที่เราคิดไปเล็กน้อยมันก็สมเหตุสมผล

4
ฉันจะหลีกเลี่ยงฟีเจอร์คืบในโครงการเดี่ยวได้อย่างไร
ดังนั้นผมจึงมีโปรแกรมที่ผมทำงานเกี่ยวกับการกลับมาในปี 2011 และตลอดปี 2012 แต่การเปิดตัวล่าสุดคือในเดือนธันวาคม2011 ฉันทำงานอย่างแข็งขันกับมัน แต่ฟีเจอร์คืบคลานเข้ามาล่อหัวที่น่าเกลียดและตอนนี้มันเต็มไปด้วยฟีเจอร์ที่ยังไม่เสร็จ ส่วนที่ร้ายก็คือว่าในขณะที่ฉันใช้คุณลักษณะใหม่ในครีพ. ฉันสามารถทำสิ่งที่หลีกเลี่ยงคุณลักษณะคืบในอนาคตเพื่อให้สามารถได้รับจริงปล่อยออกมาในกว่าปี ? โครงการดังกล่าวใช้ iOS เป็นหลักและเคยมีการเผยแพร่รอบ ๆ การอัปเดต iOS แต่ละรุ่น แต่ล่าสุดนั้นกลับมาพร้อมกับ 5.1 (2011) ฉันต้องการที่จะได้รับรอบการเปิดตัวที่มั่นคงกลับมา แต่มันได้พิสูจน์แล้วว่ายากเกินไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.