คำถามติดแท็ก code-quality

คำถามสำหรับแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโค้ดคุณภาพสูง

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

25
เมื่อไหร่ที่จะตอบกลับยิ่งใหญ่คำตอบ?
เพียงอ่านคำถามเกี่ยวกับการเขียนซ้ำครั้งใหญ่และฉันจำคำถามที่ฉันต้องการตอบเอง ฉันมีโปรเจ็กต์ที่แย่มากที่ฉันเขียนลงใน Java เก่าโดยใช้ Struts 1.0, ตารางที่มีความสัมพันธ์ที่ไม่สอดคล้องกันหรือไม่มีความสัมพันธ์เลยแม้แต่กับตารางที่ไม่มีคีย์หลักหรือเขตข้อมูลก็ถือว่าเป็นคีย์หลัก แอพส่วนใหญ่ใช้งานได้ หน้าส่วนใหญ่จะถูกนำมาใช้ซ้ำ (คัดลอกรหัสวาง) และฮาร์ดโค้ด ทุกคนที่เคยทำงานในโครงการได้สาปมันในรูปแบบเดียวหรืออื่น ๆ ตอนนี้ฉันได้พิจารณาที่จะเสนอผู้บริหารระดับสูงให้เขียนใหม่ทั้งหมดของแอปพลิเคชั่นที่น่ากลัวนี้ ฉันพยายามอย่างช้าๆในเวลาส่วนตัว แต่ฉันรู้สึกว่ามันสมควรได้รับทรัพยากรที่ทุ่มเทบางอย่างเพื่อให้มันเกิดขึ้น ต้องอ่านบทความเกี่ยวกับการเขียนครั้งใหญ่ฉันมีความคิดที่สอง และนั่นก็ไม่ดีเมื่อฉันต้องการโน้มน้าวผู้บังคับบัญชาของฉันเพื่อสนับสนุนการเขียนใหม่ของฉัน (ฉันทำงานใน บริษัท ขนาดเล็กพอสมควรดังนั้นข้อเสนอมีความเป็นไปได้ที่จะได้รับการอนุมัติ) TL; DR เมื่อใดคำตอบใหญ่ ๆ จะเขียนอีกครั้งและคุณสามารถใช้อาร์กิวเมนต์ใดในการสนับสนุน

7
การใช้ == ใน JavaScript นั้นสมเหตุสมผลหรือไม่?
ในJavaScript ส่วนที่ดี Douglas Crockford เขียนว่า: JavaScript มีสองชุดของผู้ประกอบการเท่าเทียมกัน: ===และ!==และฝาแฝดที่ชั่วร้ายของพวกเขาและ== !=คนดีทำงานในแบบที่คุณคาดหวัง หากทั้งสองตัวถูกดำเนินการเป็นประเภทเดียวกันและมีค่าเหมือนกันแล้ว===ผลิตtrueและการผลิต!== falseฝาแฝดที่ชั่วร้ายทำสิ่งที่ถูกต้องเมื่อตัวถูกดำเนินการเป็นประเภทเดียวกัน แต่ถ้าพวกมันต่างชนิดกันพวกมันพยายามที่จะบีบบังคับค่า กฎที่พวกเขาทำมีความซับซ้อนและไม่น่าจดจำ นี่คือบางกรณีที่น่าสนใจ: '' == '0' // false 0 == '' // true 0 == '0' // true false == 'false' // false false == '0' // true false == undefined // false false == null // false null …

21
ส่วนใหญ่ของรหัสของฉันมีข้อบกพร่องในการออกแบบที่สำคัญ ปิดมันหรือแก้ไขมันตอนนี้เหรอ? [ปิด]
ฉันเป็นนักเรียนมัธยมปลายที่ทำงานในโครงการ C # กับเพื่อนของฉันเกี่ยวกับระดับทักษะเดียวกันกับฉัน จนถึงตอนนี้เราได้เขียนโค้ด 3,000 บรรทัดและโค้ดทดสอบ 250 บรรทัดในช่วง 100 คอมมิต เนื่องจากโรงเรียนฉันจึงเลื่อนโครงการไปสองสามเดือนและเมื่อเร็ว ๆ นี้ฉันสามารถเลือกได้อีกครั้ง เมื่อถึงเวลาหยิบขึ้นมาฉันเข้าใจว่ารหัสที่ฉันเขียนนั้นได้รับการออกแบบมาไม่ดีเช่นการรวมเธรดที่มากเกินไปในโหมดแสดงภาพการป้องกันสภาวะการแข่งขันที่ไม่ดีในการทำงานร่วมกันระหว่างซีพียู GPU และเกมตลับ เช่นเดียวกับรหัสที่ซ้ำซ้อนและสับสนเพียงอย่างเดียว ปัญหาคือฉันยังไม่เสร็จแม้ฟังก์ชั่นหลักของโปรแกรมของฉันดังนั้นฉันจึงไม่สามารถปรับโครงสร้างได้อย่างแท้จริงและฉันรู้สึกท้อแท้ที่จะรู้อย่างสมบูรณ์แบบว่าการออกแบบรหัสของฉันนั้นมีข้อบกพร่อง ในขณะเดียวกันฉันไม่ต้องการละทิ้งโครงการ มีความคืบหน้าเป็นจำนวนมากและงานต้องไม่ไปเสีย ฉันรู้สึกราวกับว่าฉันมีทางเลือกสองทาง: เพียงแค่ทำฟังก์ชั่นให้สมบูรณ์โดยการแก้ไขการออกแบบที่ไม่ดีและทำการปรับโครงสร้างใหม่เมื่อทุกอย่างทำงานหยุดทำงานทุกอย่างและทำงานเพื่อแก้ปัญหาทุกอย่างก่อนที่การทำงานจะเสร็จสิ้น ทั้งหมดนี้อยู่ในใจฉันใหม่อีกครั้งหรือทิ้งโครงการอย่างจริงจังเนื่องจากมีขนาดที่มากเกินไป จากประสบการณ์ของผู้อื่นในโครงการดังกล่าวการขอความช่วยเหลือในการกลับไปสู่เส้นทางที่ถูกต้องคืออะไร? จากคำตอบในเว็บไซต์นี้ฉันทามติทั่วไปคือการเขียนใหม่โดยไม่จำเป็นแต่เป็นตัวเลือกที่ใช้ได้หากไม่สามารถดูแลรักษารหัสได้โดยไม่ต้องเสียค่าใช้จ่ายมากเกินไป ฉันต้องการดำเนินโครงการนี้อย่างแท้จริง แต่อย่างที่มันเป็นรหัสของฉันไม่ได้ออกแบบมาอย่างดีพอสำหรับฉันที่จะดำเนินการต่อและความรู้สึกของความสิ้นหวังทำให้ฉันไม่สามารถดำเนินการต่อได้

30
การเพิ่มประสิทธิภาพไมโครเป็นสิ่งสำคัญเมื่อการเข้ารหัส?
ฉันเพิ่งถามคำถามเกี่ยวกับกองมากเกินที่จะหาเหตุผลว่าทำไมisset () ได้เร็วกว่า strlen ()ในPHP สิ่งนี้ทำให้เกิดคำถามเกี่ยวกับความสำคัญของโค้ดที่อ่านได้และการปรับปรุงประสิทธิภาพของไมโครวินาทีในโค้ดนั้นคุ้มค่าหรือไม่ พ่อของฉันเป็นโปรแกรมเมอร์ที่เกษียณอายุราชการและฉันแสดงให้เขาเห็นคำตอบ เขามั่นใจอย่างแน่นอนว่าหาก coder ไม่ได้พิจารณาประสิทธิภาพในรหัสของพวกเขาแม้ในระดับไมโครพวกเขาไม่ใช่โปรแกรมเมอร์ที่ดี ฉันไม่แน่ใจ - บางทีความสามารถในการคำนวณที่เพิ่มขึ้นหมายความว่าเราไม่ต้องพิจารณาการปรับปรุงประสิทธิภาพแบบไมโครเหล่านี้อีกต่อไป? บางทีการพิจารณาแบบนี้ขึ้นอยู่กับคนที่เขียนรหัสภาษาจริง ๆ ? (ของ PHP ในกรณีข้างต้น) ปัจจัยด้านสิ่งแวดล้อมอาจมีความสำคัญ - อินเทอร์เน็ตใช้พลังงาน 10% ของพลังงานโลก ฉันสงสัยว่าโค้ดไมโครวินาทีที่สิ้นเปลืองเพียงใดเมื่อทำซ้ำล้านล้านครั้งบนเว็บไซต์หลายล้านแห่ง ฉันต้องการที่จะรู้คำตอบโดยเฉพาะอย่างยิ่งจากข้อเท็จจริงเกี่ยวกับการเขียนโปรแกรม การเพิ่มประสิทธิภาพไมโครเป็นสิ่งสำคัญเมื่อการเข้ารหัส? สรุปส่วนตัวของฉัน 25 คำตอบขอบคุณทุกคน บางครั้งเราจำเป็นต้องกังวลเกี่ยวกับการเพิ่มประสิทธิภาพแบบไมโคร แต่ในสถานการณ์ที่หายากมากเท่านั้น ความน่าเชื่อถือและความสามารถในการอ่านมีความสำคัญมากกว่าในกรณีส่วนใหญ่ อย่างไรก็ตามการพิจารณาการเพิ่มประสิทธิภาพแบบไมโครเป็นครั้งคราวไม่ได้ทำให้เจ็บปวด ความเข้าใจพื้นฐานสามารถช่วยเราไม่ให้เลือกสิ่งที่ไม่ดีอย่างเห็นได้ชัดเมื่อเขียนโค้ดเช่น if (expensiveFunction() || counter < X) ควรจะเป็น if (counter < X || expensiveFunction()) ( ตัวอย่างจาก …

10
ทำไมรหัสสะอาดแนะนำให้หลีกเลี่ยงตัวแปรที่ป้องกัน?
รหัสที่ชัดเจนแนะนำให้หลีกเลี่ยงตัวแปรที่ได้รับการป้องกันในส่วน "ระยะทางแนวตั้ง" ของบท "การจัดรูปแบบ": แนวคิดที่เกี่ยวข้องอย่างใกล้ชิดควรเก็บไว้ในแนวตั้งซึ่งกันและกัน เห็นได้ชัดว่ากฎนี้ใช้ไม่ได้กับแนวคิดที่อยู่ในไฟล์แยกต่างหาก แต่แล้วแนวคิดที่เกี่ยวข้องอย่างใกล้ชิดไม่ควรแยกออกเป็นไฟล์ต่าง ๆ เว้นแต่คุณจะมีเหตุผลที่ดีมาก อันที่จริงนี่เป็นหนึ่งในเหตุผลที่มีการป้องกันตัวแปรควรหลีกเลี่ยง อะไรคือเหตุผล?

28
จะเป็นโปรแกรมเมอร์แบบ zero-bug ได้อย่างไร? [ปิด]
เจ้านายของฉันบอกฉันเสมอว่าโปรแกรมเมอร์ที่ดีควรสามารถมั่นใจได้ว่ารหัสที่เขาหรือเธอเปลี่ยนแปลงนั้นเชื่อถือได้ถูกต้องและตรวจสอบด้วยตนเองอย่างละเอียด ว่าคุณควรเข้าใจผลลัพธ์ทั้งหมดอย่างสมบูรณ์และส่งผลต่อการเปลี่ยนแปลงของคุณ ฉันพยายามทำให้ดีที่สุดในการเป็นโปรแกรมเมอร์ประเภทนี้ - โดยการทดสอบซ้ำแล้วซ้ำอีก - แต่ข้อบกพร่องยังคงอยู่ที่นั่น ฉันจะเป็นโปรแกรมเมอร์ zero-bug ได้อย่างไรและรู้ว่าตัวละครทุกตัวในรหัสของฉันจะเป็นสาเหตุและส่งผลกระทบอย่างไร
168 code-quality 

14
มีอะไรผิดปกติกับการอ้างอิงแบบวงกลม?
ฉันมีส่วนร่วมในการอภิปรายการเขียนโปรแกรมในวันนี้ที่ฉันทำงบบางอย่างที่โดยทั่วไปถือว่าจริงที่อ้างอิงวงกลม (ระหว่างโมดูลชั้นเรียนสิ่งที่) โดยทั่วไปจะไม่ดี เมื่อฉันผ่านเข้าไปในสนามของฉันเพื่อนร่วมงานของฉันถามว่า "มีอะไรผิดปกติกับการอ้างอิงแบบวงกลม" ฉันมีความรู้สึกที่แข็งแกร่งในเรื่องนี้ แต่มันยากสำหรับฉันที่จะพูดอย่างกระชับและเป็นรูปธรรม คำอธิบายใด ๆ ที่ฉันอาจเกิดขึ้นมีแนวโน้มที่จะพึ่งพารายการอื่น ๆ ที่ฉันพิจารณาความจริง ("ไม่สามารถใช้ในการแยกดังนั้นไม่สามารถทดสอบ", "พฤติกรรมที่ไม่รู้จัก / ไม่ได้กำหนดเป็นรัฐกลายพันธุ์ในวัตถุที่เข้าร่วม" ฯลฯ .) แต่ฉันชอบที่จะได้ยินเหตุผลที่ชัดเจนว่าเพราะเหตุใดการอ้างอิงแบบวงกลมจึงไม่ดีซึ่งไม่ได้ใช้ความเชื่ออย่างที่สมองของฉันทำเองใช้เวลาหลายชั่วโมงกว่าจะแก้ให้เข้าใจแก้ และขยายรหัสบิตต่าง ๆ แก้ไข:ฉันไม่ได้ถามเกี่ยวกับการอ้างอิงแบบวงกลมที่เป็นเนื้อเดียวกันเช่นที่อยู่ในรายการที่ลิงก์สองเท่าหรือตัวชี้ไปยังผู้ปกครอง คำถามนี้ถามเกี่ยวกับการอ้างอิงแบบวงกลม "ขอบเขตที่กว้างขึ้น" เช่น libA การโทร libB ซึ่งโทรกลับไปที่ libA แทน 'โมดูล' สำหรับ 'lib' หากคุณต้องการ ขอบคุณสำหรับคำตอบทั้งหมด!

17
ฉันจะโน้มน้าวให้ฝ่ายบริหารจัดการกับหนี้ทางเทคนิคได้อย่างไร
นี่เป็นคำถามที่ฉันมักถามตัวเองเมื่อทำงานกับนักพัฒนา ฉันทำงานที่ บริษัท สี่แห่งและฉันก็ตระหนักว่าขาดความสนใจในการรักษาความสะอาดของรหัสและจัดการกับหนี้ทางเทคนิคที่เป็นอุปสรรคต่อความก้าวหน้าในอนาคตในแอพซอฟต์แวร์ ตัวอย่างเช่น บริษัท แรกที่ฉันทำงานให้ได้เขียนฐานข้อมูลตั้งแต่เริ่มต้นแทนที่จะใช้สิ่งที่ต้องการเช่น MySQL และนั่นสร้างนรกสำหรับทีมเมื่อ refactoring หรือขยายแอปพลิเคชัน ฉันพยายามที่จะซื่อสัตย์และชัดเจนกับผู้จัดการของฉันเสมอเมื่อเขาพูดถึงการคาดการณ์ แต่ผู้บริหารดูเหมือนจะไม่สนใจที่จะแก้ไขสิ่งที่มีอยู่แล้ว คุณคิดอย่างไรกับวิธีที่ดีที่สุดในการแก้ไขปัญหานี้ สิ่งที่ฉันเห็นคือผู้คนบรรจุและออกจาก บริษัท จะกลายเป็นประตูหมุนที่มีนักพัฒนาเข้าและออกและทำให้รหัสแย่ลง คุณจะทำอย่างไรในการสื่อสารนี้เพื่อการบริหารจัดการเพื่อให้พวกเขามีความสนใจในการเรียงลำดับออกตราสารหนี้ทางเทคนิค ?

19
วิธีการเขียนโค้ดที่เร็วขึ้น (โดยไม่ต้องเสียสละคุณภาพ) [ปิด]
ฉันเป็นนักเขียนโค้ดมืออาชีพมาหลายปีแล้ว ความคิดเห็นเกี่ยวกับรหัสของฉันได้รับโดยทั่วไปเดียวกัน: เขียนรหัสดีดีผ่านการทดสอบ แต่อาจจะเร็วขึ้น ดังนั้นฉันจะกลายเป็น coder ที่เร็วขึ้นโดยไม่ต้องเสียสละคุณภาพได้อย่างไร เพื่อประโยชน์ของคำถามนี้ฉันจะ จำกัด ขอบเขตไว้ที่ C # เนื่องจากนั่นคือสิ่งที่ฉันเขียนโค้ด (เพื่อความสนุกสนาน) - หรือ Java ซึ่งคล้ายกันมากพอในหลาย ๆ เรื่อง สิ่งที่ฉันทำอยู่แล้ว: เขียนวิธีแก้ปัญหาขั้นต่ำที่จะทำให้งานเสร็จ เขียนบททดสอบอัตโนมัติ (ป้องกันการถดถอย) เขียน (และใช้) ไลบรารีที่ใช้ซ้ำได้สำหรับทุกสิ่ง ใช้เทคโนโลยีที่รู้จักกันดีซึ่งทำงานได้ดี (เช่นไฮเบอร์เนต) ใช้รูปแบบการออกแบบที่เข้าที่ (เช่น Singleton) ทั้งหมดนี้ยอดเยี่ยม แต่ฉันไม่รู้สึกว่าความเร็วของฉันเพิ่มขึ้นเมื่อเวลาผ่านไป ฉันทำดูแลเพราะถ้าผมสามารถทำบางสิ่งบางอย่างเพื่อเพิ่มผลผลิตของฉัน (แม้โดย 10%) ที่ 10% เร็วกว่าคู่แข่งของฉัน (ไม่ใช่ว่าฉันมี) นอกจากนี้ฉันได้รับเงินคืนจากผู้จัดการของฉันอย่างสม่ำเสมอไม่ว่าจะเป็นการพัฒนา Flash ขนาดเล็กหรือการพัฒนา Java / C ++ ขององค์กร แก้ไข:ดูเหมือนจะมีคำถามมากมายเกี่ยวกับสิ่งที่ฉันหมายถึงอย่างรวดเร็วและฉันรู้ว่าฉันช้า …

10
ในการพัฒนาความรู้การเขียนโปรแกรมลึก
บางครั้งฉันเห็นคำถามเกี่ยวกับคดีขอบและความแปลกประหลาดอื่น ๆ ใน Stack Overflow ที่ตอบได้ง่ายจาก Jon Skeet และ Eric Lippert แสดงให้เห็นถึงความรู้อย่างลึกซึ้งเกี่ยวกับภาษาและความซับซ้อนมากมาย เช่นนี้: คุณอาจจะคิดว่าในการที่จะใช้foreachห่วงคอลเลกชันที่คุณกำลังทำซ้ำมากกว่านั้นจำเป็นต้องใช้หรือIEnumerable IEnumerable<T>แต่มันกลับกลายเป็นว่านั่นไม่ใช่ข้อกำหนดจริงๆ สิ่งที่จะต้องเป็นว่าประเภทของคอลเลกชันจะต้องมีวิธีการที่เรียกว่าประชาชนGetEnumeratorและที่จะต้องกลับบางชนิดที่มีความทะเยอทะยานทรัพย์สินของประชาชนที่เรียกว่าCurrentและวิธีการที่ประชาชนที่ส่งกลับMoveNext boolหากคอมไพเลอร์สามารถพิจารณาได้ว่าข้อกำหนดทั้งหมดนั้นเป็นไปตามนั้นรหัสนั้นจะถูกสร้างขึ้นเพื่อใช้วิธีการเหล่านั้น เฉพาะในกรณีที่ความต้องการเหล่านั้นจะไม่พบเราจะตรวจสอบเพื่อดูว่าวัตถุที่นำไปปฏิบัติหรือIEnumerableIEnumerable<T> นั่นเป็นเรื่องที่ควรรู้ ฉันเข้าใจได้ว่าทำไม Eric ถึงรู้เรื่องนี้ เขาอยู่ในทีมคอมไพเลอร์ดังนั้นเขาต้องรู้ แต่สิ่งที่เกี่ยวกับผู้ที่แสดงให้เห็นถึงความรู้ลึก ๆ ที่ไม่ได้อยู่ภายใน ปุถุชนเพียง (ที่ไม่ได้อยู่ในทีมคอมไพเลอร์ C #) หาข้อมูลเกี่ยวกับสิ่งนี้ได้อย่างไร โดยเฉพาะมีวิธีการที่คนเหล่านี้ใช้เพื่อรูทความรู้ดังกล่าวสำรวจและทำให้เป็นระบบ (ทำให้เป็นของตัวเอง) หรือไม่
136 code-quality 

16
ฉันจะแนะนำการปรับปรุงโค้ดที่ออกแบบมาไม่ดีของผู้อื่นในระหว่างการตรวจสอบได้อย่างไร?
ฉันเป็นผู้เชื่อที่ยอดเยี่ยมในการทำความสะอาดรหัสและงานฝีมือรหัสแม้ว่าตอนนี้ฉันอยู่ในงานที่สิ่งนี้ไม่ถือเป็นความสำคัญสูงสุด บางครั้งฉันพบว่าตัวเองอยู่ในสถานการณ์ที่รหัสของเพื่อนเต็มไปด้วยการออกแบบที่ยุ่งเหยิงและมีความกังวลน้อยมากสำหรับการบำรุงรักษาในอนาคตแม้ว่ามันจะใช้งานได้และไม่มีข้อบกพร่องเล็กน้อย คุณจะแนะนำการปรับปรุงในการตรวจสอบโค้ดอย่างไรเมื่อคุณเชื่อว่ามีความต้องการเปลี่ยนแปลงมากมายและมีกำหนดส่งท้าย โปรดทราบว่าการแนะนำการปรับปรุงจะเกิดขึ้นหลังจากวันครบกำหนดอาจหมายความว่าพวกเขาจะไม่ได้รับการจัดลำดับความสำคัญโดยรวมเมื่อมีฟีเจอร์ใหม่และการแก้ไขข้อบกพร่องเข้ามา

8
การเรียกซ้ำหรือในขณะที่ลูป
ฉันกำลังอ่านเกี่ยวกับการสัมภาษณ์การพัฒนาโดยเฉพาะเกี่ยวกับคำถามทางเทคนิคและการทดสอบที่ถามในการสัมภาษณ์และฉันได้พบคำพูดของประเภท "ไม่กี่ครั้ง" ตกลงคุณแก้ปัญหาด้วยการวนขณะนี้คุณสามารถทำกับ การเรียกซ้ำ "หรือ" ทุกคนสามารถแก้ปัญหานี้ด้วย 100 บรรทัดในขณะที่วนซ้ำ แต่พวกเขาสามารถทำได้ในฟังก์ชั่นวนซ้ำ 5 บรรทัดหรือไม่? " เป็นต้น คำถามของฉันคือการเรียกซ้ำโดยทั่วไปดีกว่าถ้า / ในขณะ / สำหรับการสร้างหรือไม่ ฉันคิดเสมอว่าการเรียกซ้ำไม่ควรเลือกเพราะมัน จำกัด หน่วยความจำสแต็คที่เล็กกว่าฮีปมากการทำฟังก์ชั่น / เมธอดเป็นจำนวนมากนั้นไม่ดีเท่าที่ควร แต่ฉันอาจ จะผิด...

16
ฉันควรเพิ่มรหัสที่ซ้ำซ้อนตอนนี้ในกรณีที่อาจจำเป็นในอนาคตหรือไม่
ถูกหรือผิดฉันกำลังเชื่อว่าฉันควรพยายามทำให้รหัสของฉันแข็งแกร่งที่สุดเท่าที่จะเป็นไปได้แม้ว่าจะหมายถึงการเพิ่มรหัส / เช็คซ้ำซ้อนที่ฉันรู้ว่าตอนนี้ฉันจะไม่ใช้ประโยชน์ แต่อย่างใด อาจเป็นจำนวนปี x ลงบรรทัด ตัวอย่างเช่นฉันกำลังทำงานกับแอปพลิเคชันมือถือที่มีรหัสนี้: public static CalendarRow AssignAppointmentToRow(Appointment app, List<CalendarRow> rows) { //1. Is rows equal to null? - This will be the case if this is the first appointment. if (rows == null) { rows = new List<CalendarRow> (); } //2. Is rows empty? - …

14
ฉันจะรักษาคุณภาพของรหัสโดยไม่มี SCM ได้อย่างไร
ฉันทำงานในสถาบันของรัฐ เทคโนโลยีที่ใช้อยู่ที่นี่และวิธีการพัฒนาซอฟต์แวร์นั้นค่อนข้างล้าสมัย มีพื้นที่เก็บข้อมูลมากมาย แต่ไม่มีพื้นที่ที่เหมาะสมในการเก็บและบำรุงรักษาแอปพลิเคชันที่ใช้ในการทำงานส่วนใหญ่โดยอัตโนมัติที่นี่ สถาบันไม่อนุญาตให้ฉันใช้ซอฟต์แวร์ SCM เช่น GIT หรือ SVN อะไรจะเป็นวิธีที่ดีที่สุดในการรักษาคุณภาพรหัสและสามารถเพิ่มคุณสมบัติใหม่ในแอปได้ในภายหลัง ฉันจะจำการเปลี่ยนแปลงที่ทำกับรหัสโดยไม่ทำลายได้อย่างไร แก้ไข: ฉันลืมที่จะพูดถึงพวกเขามีไดรฟ์เครือข่ายสำหรับคอมพิวเตอร์แต่ละเครื่องและอย่างใดไดรฟ์เครือข่ายเหล่านี้ทำหรือบันทึกการสำรองข้อมูลในช่วงเวลา อย่างไรก็ตามหากฉันไม่ได้สร้างแผนของตัวเองเพื่อให้สามารถบันทึกงานของฉันและสามารถเพิ่มคุณสมบัติใหม่โดยไม่ทำลายโค้ดที่มีอยู่แล้วก็ไม่มีข้อได้เปรียบที่เหนือกว่าโซลูชัน SCM แก้ไข: เนื่องจากหลายคนแนะนำ Git พกพาฉันต้องเพิ่มข้อมูลเพิ่มเติม ฉันพยายามติดตั้งเซิร์ฟเวอร์ Visual SVN แต่ล้มเหลวเนื่องจากฉันไม่มีสิทธิ์ของผู้ดูแลระบบในการติดตั้ง ฉันพยายามดาวน์โหลด Git shell ปกติ แต่ไฟร์วอลล์หรือการตั้งค่าเครือข่ายไม่อนุญาตให้ฉันเข้าถึงหน้าดาวน์โหลด Git ฉันยังลองส่ง Git พกพาไปยังอีเมลซึ่งก็คือ Gmail Google ตรวจพบไฟล์ exe ในแพ็คเกจและมันก็ไม่อนุญาตให้ฉันดาวน์โหลด Git เวอร์ชั่นพกพาบนคอมพิวเตอร์ที่ทำงานของฉัน อีกสิ่งหนึ่งที่ฉันต้องพูดถึงคือนโยบายเครือข่ายที่ใช้กับคอมพิวเตอร์ที่สถาบันไม่อนุญาตให้ใช้การจัดเก็บ USB devces คุณสามารถใช้พอร์ต USB เพื่อชาร์จสมาร์ทโฟนหรือใช้พลังงานบางอย่างเช่นลำโพงขนาดเล็ก เช่นเดียวกับบางคนที่กล่าวถึงมีคอมพิวเตอร์ที่ไม่อนุญาตแม้แต่อินเทอร์เน็ต
110 git  code-quality  svn  scm 

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