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

4
เลเยอร์ต่อต้านการคอร์รัปชั่นคืออะไรและใช้อย่างไร
ฉันพยายามหาว่าเลเยอร์ต่อต้านการทุจริตนั้นหมายถึงอะไรจริงๆ ฉันรู้ว่ามันเป็นวิธีในการเปลี่ยน / แก้ไขรหัสดั้งเดิมหรือ API ที่ไม่ดี สิ่งที่ฉันไม่เข้าใจคือวิธีการทำงานและสิ่งที่ทำให้แยกจากชั้นที่ไม่พึงประสงค์ ฉันค้นหาเสร็จแล้ว แต่ฉันไม่สามารถหาตัวอย่างหรือคำอธิบายง่ายๆได้ดังนั้นฉันจึงมองหาคนที่เข้าใจและสามารถอธิบายได้ด้วยตัวอย่างง่ายๆ คำตอบที่จะตอบสนองคำถามของฉันควรจะง่าย (ไม่จำเป็นต้องสั้น) และให้ตัวอย่างที่เข้าใจการใช้งาน ดูคำถามนี้สำหรับกรณีการใช้งานของฉัน

14
แสดงให้เห็นถึงรหัสที่ไม่ดีให้กับลูกค้า?
ลูกค้าขอให้ฉันออกแบบเว็บไซต์ของพวกเขาใหม่ซึ่งเป็นแอพพลิเคชั่น ASP.NET Webforms ที่พัฒนาโดยที่ปรึกษาอื่น ดูเหมือนว่างานจะค่อนข้างตรงไปตรงมา แต่หลังจากดูรหัสแล้วมันชัดเจนว่าไม่ใช่กรณี แอปพลิเคชันนี้เขียนได้ไม่ดี เลย มันมีความเสี่ยงอย่างยิ่งต่อการโจมตีด้วยการฉีด SQL, ตรรกะทางธุรกิจถูกกระจายไปทั่วทั้งแอปพลิเคชั่น, มีการทำซ้ำจำนวนมาก, และรหัสสิ้นสุดที่ไม่ทำอะไรเลย ยิ่งไปกว่านั้นมันยังทำการขว้างข้อยกเว้นที่ถูกปกปิดดังนั้นไซต์ดูเหมือนจะทำงานได้อย่างราบรื่น งานของฉันคือเพียงแค่อัปเดต HTML และ CSS แต่ HTML ส่วนใหญ่ถูกสร้างขึ้นในตรรกะทางธุรกิจและจะเป็นฝันร้ายที่จะสังคายนา การประเมินของฉันในการออกแบบใหม่นานกว่าที่ลูกค้าคาดหวัง พวกเขาถามว่าทำไมนาน ฉันจะอธิบายให้ลูกค้าฟังว่ารหัสนี้แย่แค่ไหน? ในความคิดของพวกเขาแอปพลิเคชั่นทำงานได้ดีและการออกแบบควรจะเป็นแบบครั้งเดียวที่รวดเร็ว มันเป็นคำของฉันกับที่ปรึกษาก่อนหน้านี้ ฉันจะยกตัวอย่างง่ายๆที่เป็นรูปธรรมที่ลูกค้าที่ไม่ใช่ด้านเทคนิคจะเข้าใจได้อย่างไร ปรับปรุง ขอขอบคุณสำหรับการตอบสนองทุก. การสาธิตการโจมตีการฉีด SQL นั้นสมเหตุสมผลและฉันจะสาธิตสิ่งนี้ในสภาพแวดล้อมการทดสอบ นั่นเป็นเพียงส่วนหนึ่งของปัญหามากมายในแอปพลิเคชันนี้ ฉันกำลังมองหาวิธีที่จะอธิบายว่าทำไมส่วนอื่น ๆ (เช่น html ที่ถูกสร้างขึ้นในชั้นข้อมูล) จะต้องถูกแทนที่ด้วยแนวทางปฏิบัติที่ดีกว่าเพื่อให้การอัปเดต html และ css เกิดขึ้น มีคำแนะนำที่ดีมากมายที่นี่ซึ่งฉันจะพูดคุยด้วยกันเมื่อฉันพูดคุยกับลูกค้าของฉัน

11
คำสั่ง“ goto” ของแมลงชนิดใดที่นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?
ฉันเข้าใจว่าช่วยไม่ให้ลูปซ้อนกันในลูป gotoคำสั่งบ่ายเบี่ยงและประจานว่าเป็นข้อผิดพลาดสไตล์แนวโน้มของการเขียนโปรแกรมเพื่อไม่เคยถูกนำมาใช้ Alt Text: "Neal Stephenson คิดว่ามันน่ารักที่จะตั้งชื่อป้ายกำกับ 'dengo' ของเขา" ดูการ์ตูนต้นฉบับที่: http://xkcd.com/292/ เพราะฉันเรียนรู้สิ่งนี้ก่อน ฉันไม่ได้มีความเข้าใจอย่างถ่องแท้หรือประสบการณ์เกี่ยวกับข้อผิดพลาดประเภทใดที่gotoนำไปสู่ ดังนั้นสิ่งที่เรากำลังพูดถึงที่นี่: ความไม่แน่นอน? รหัสที่ไม่สามารถเข้าใจได้หรืออ่านไม่ได้? ช่องโหว่ด้านความปลอดภัย? มีอะไรอีกบ้าง? ข้อผิดพลาดประเภทใดที่ทำให้ข้อความ "goto" นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?

10
เหตุใด“ เลือก * จากตาราง” จึงถือว่าไม่เหมาะสม
เมื่อวานนี้ฉันกำลังคุยกับโปรแกรมเมอร์ "งานอดิเรก" (ฉันเป็นโปรแกรมเมอร์มืออาชีพ) เราเจองานบางอย่างของเขาและเขาบอกว่าเขามักจะค้นหาคอลัมน์ทั้งหมดในฐานข้อมูลของเขา (แม้ใน / ในเซิร์ฟเวอร์การผลิต / รหัส) ฉันพยายามโน้มน้าวเขาไม่ให้ทำ แต่ก็ยังไม่ประสบความสำเร็จ ในความคิดของฉันโปรแกรมเมอร์ควรถามสิ่งที่จำเป็นจริง ๆ เพื่อประโยชน์ของ "prettiness" ประสิทธิภาพและปริมาณการใช้งาน ฉันเข้าใจผิดกับมุมมองของฉัน?
96 database  sql  mysql  bad-code 

13
การปฏิบัติที่แย่ที่สุดใน C ++, ข้อผิดพลาดทั่วไป [ปิด]
หลังจากอ่านคำพูดที่โด่งดังของ Linus Torvaldsฉันสงสัยว่าจริงๆแล้วอะไรคือข้อผิดพลาดทั้งหมดของโปรแกรมเมอร์ใน C ++ ฉันไม่ได้อ้างถึง typos หรือโปรแกรมที่ไม่ดีตามที่ได้รับการรักษาในคำถามนี้และคำตอบของมันแต่สำหรับข้อผิดพลาดระดับสูงที่ไม่ได้ตรวจพบโดยคอมไพเลอร์และไม่ส่งผลให้เกิดข้อบกพร่องที่เห็นได้ชัดในตอนแรก สิ่งที่ไม่น่าจะเป็นใน C แต่น่าจะเกิดขึ้นใน C ++ โดยผู้มาใหม่ที่ไม่เข้าใจความหมายของรหัสทั้งหมด ฉันยังยินดีต้อนรับคำตอบที่ชี้ให้เห็นถึงประสิทธิภาพที่ลดลงอย่างมากซึ่งมักจะไม่เกิดขึ้น ตัวอย่างของสิ่งที่อาจารย์คนหนึ่งของฉันเคยบอกฉันเกี่ยวกับตัวแยกวิเคราะห์ LR (1) ที่ฉันเขียน: คุณใช้อินสแตนซ์ของการสืบทอดและเวอร์ชวลไลซ์ที่ไม่จำเป็นจำนวนมากเกินไป การสืบทอดทำให้การออกแบบมีความซับซ้อนมากขึ้น (และไม่มีประสิทธิภาพเนื่องจากระบบย่อย RTTI (การอนุมานชนิดรันไทม์) และดังนั้นจึงควรใช้เฉพาะเมื่อมีความเหมาะสมเท่านั้นเช่นสำหรับการกระทำในตารางแยก เนื่องจากคุณใช้เทมเพลตอย่างเข้มข้นคุณจึงไม่จำเป็นต้องรับมรดก "

12
รูปแบบการออกแบบใดที่เลวร้ายที่สุดหรือมีการ จำกัด แคบที่สุด? [ปิด]
สำหรับทุกโครงการการเขียนโปรแกรมผู้จัดการที่มีประสบการณ์การเขียนโปรแกรมที่ผ่านมาพยายามส่องแสงเมื่อพวกเขาแนะนำรูปแบบการออกแบบบางอย่างสำหรับโครงการของคุณ ฉันชอบรูปแบบการออกแบบเมื่อพวกเขาเข้าท่าหรือถ้าคุณต้องการโซลูชันที่ปรับขนาดได้ ฉันใช้พร็อกซีผู้สังเกตการณ์และรูปแบบคำสั่งในลักษณะที่เป็นบวกและทำทุกวัน แต่ฉันลังเลที่จะใช้พูดรูปแบบโรงงานหากมีวิธีเดียวเท่านั้นในการสร้างวัตถุเนื่องจากโรงงานอาจทำให้ทุกอย่างง่ายขึ้นในอนาคต แต่จะทำให้รหัสซับซ้อนและมีค่าใช้จ่ายที่ซับซ้อน ดังนั้นคำถามของฉันคือเกี่ยวกับอาชีพในอนาคตของฉันและคำตอบของฉันสำหรับผู้จัดการประเภทที่มีการสุ่มชื่อรูปแบบรอบ ๆ : คุณใช้รูปแบบการออกแบบแบบไหนที่ทำให้คุณกลับมาโดยรวม? รูปแบบการออกแบบใดที่เลวร้ายที่สุดรูปแบบที่คุณควรพิจารณายกเว้นในสถานการณ์เดียวที่มีเหตุผล (อ่าน: รูปแบบการออกแบบใดที่นิยามไว้แคบมาก) (มันเหมือนกับว่าฉันกำลังมองหารีวิวเชิงลบของผลิตภัณฑ์ที่ดีโดยรวมของ Amazon เพื่อดูว่าคนที่ถูกหลอกลวงมากที่สุดในการใช้รูปแบบการออกแบบ) และฉันไม่ได้พูดถึง Anti-Patterns ที่นี่ แต่เกี่ยวกับรูปแบบที่มักจะคิดว่าเป็น รูปแบบ "ดี" แก้ไข:ตามที่บางคนตอบปัญหาส่วนใหญ่มักจะมีรูปแบบที่ไม่ "ไม่ดี" แต่ "ใช้ผิด" หากคุณรู้จักรูปแบบที่มักใช้ในทางที่ผิดหรือยากต่อการใช้

3
ตกลงเพื่อส่งคืน HTML จาก JSON API หรือไม่
ในโครงการปัจจุบันของฉันฉันรับผิดชอบการใช้งานบริการที่เกี่ยวข้องกับการใช้ RESTful APIs ที่สร้างขึ้นใหม่ซึ่งบันทึกไว้ว่ารองรับ JSON เท่านั้น ลูกค้าทำการร้องขออย่างต่อเนื่องโดยมีส่วนหัวการยอมรับของ 'application / json' และประเภทเนื้อหาของ 'application / json' อย่างไรก็ตามปลายทางบางจุดส่งการตอบกลับด้วย HTML ชนิดเนื้อหาหรือแม้แต่เนื้อหา HTML สำหรับฉันนี่เป็นแนวทางที่ผิดอย่างชัดเจนและไม่สามารถพิสูจน์ได้ ตลอดโครงการนี้มีการใช้วิธีปฏิบัติเดียวกันนี้กับผู้ขายที่ต่างกันสองรายและบริการที่แตกต่างกันสองรายการ ฉันพบว่าตัวเองต้องพิสูจน์เหตุผลที่บริการที่จำเป็นต้องมีการเปลี่ยนแปลง ผู้ขายระบุว่าลูกค้าควรรับมือกับสิ่งนี้และแม้แต่ห้องสมุด REST ที่ฉันเลือกก็ถูกตั้งคำถาม (RestEasy) เพราะไม่ได้จัดการกับสิ่งนี้ตามค่าเริ่มต้น 'นอกกรอบ' นี่เป็นจุดสำคัญของความยุ่งยาก ฉันไม่พบการอ้างอิงจำนวนมากเพื่อสำรองอาร์กิวเมนต์ของฉันฉันคิดว่านี่เป็นเพราะประเด็นนั้นเป็นที่สงสัยเนื่องจากมันชัดเจนมาก คำถามคือฉันหายไปบางอย่าง? ฉันเป็นคนหยาบคายเกี่ยวกับเรื่องนี้หรือไม่? ตกลงหรือไม่ที่จะมี JSON API ที่ไม่มีประเภทแอปพลิเคชัน / json ในสถานการณ์นี้ การอ้างอิงจะได้รับการชื่นชม คุณจะแก้ไขสถานการณ์นี้จากมุมมองทางการค้าได้อย่างไร

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

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

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

6
คุณจัดการกับโค้ดที่ไม่ดีอย่างตั้งใจได้อย่างไร?
มีเรื่องราวมากมายเกี่ยวกับรหัสที่ไม่ดีโดยเจตนาไม่เพียง แต่ใน TheDailyWTF แต่ยังเกี่ยวกับ SO กรณีทั่วไปรวมถึง: การมีโครงสร้างที่สิ้นเปลืองเวลาเปล่าประโยชน์ (เช่นการวนลูปที่ว่างเปล่านับเป็นมูลค่ามหาศาล) ดังนั้นโปรแกรมเมอร์สามารถ "เร่งความเร็ว" แอปพลิเคชันได้อย่างง่ายดายโดยการลบออกเมื่อพวกเขาถูกมอบหมายให้ จัดทำเอกสารที่ทำให้เข้าใจผิดโดยเจตนาผิดหรือไม่มีเอกสารเพื่อสร้างคำขอการสนับสนุนที่มีราคาแพง การสร้างข้อผิดพลาดอย่างรวดเร็วหรือแย่กว่านั้นคือการสร้างแม้ว่าทุกอย่างจะทำงานได้ดีการล็อกแอปพลิเคชันดังนั้นจึงจำเป็นต้องมีการโทรเพื่อขอรับการสนับสนุนที่มีราคาแพง คะแนนเหล่านี้แสดงทัศนคติที่เป็นอันตรายไม่มากก็น้อย (แม้บางครั้งจะเกิดขึ้นโดยบังเอิญ) โดยเฉพาะอย่างยิ่งประเด็นแรกที่เกิดขึ้นค่อนข้างบ่อย หนึ่งจะจัดการกับโครงสร้างดังกล่าวได้อย่างไร ไม่สนใจปัญหาหรือลบรหัสที่ละเมิดออก แจ้งผู้จัดการของพวกเขาหรือพูดกับคนที่แนะนำ "คุณสมบัติ"?
21 bad-code 

3
ในตอนท้ายของเชือกของฉัน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นผู้รับเหมาของ บริษัท ใหญ่ ปัจจุบันมีผู้พัฒนาสามรายในโครงการ ปัญหาคือนักพัฒนาอีก 2 คนไม่เข้าใจ โดย "it" ฉันหมายถึงสิ่งต่อไปนี้: พวกเขาไม่เข้าใจแนวทางปฏิบัติที่ดีที่สุดสำหรับเทคโนโลยีที่เราใช้ หลังจาก 6 เดือนของฉันและคนอื่น ๆ ให้ตัวอย่างพวกเขามีรูปแบบการต่อต้านที่น่ากลัวถูกนำมาใช้ พวกเขาคือ "คัดลอกและวาง" โปรแกรมเมอร์ที่ผลิตรหัสสปาเก็ตตี้เป็นหลัก พวกเขาทำลายสิ่งต่าง ๆตลอดเวลาดำเนินการเปลี่ยนแปลง แต่ไม่ได้ทำการทดสอบควันพื้นฐานเพื่อดูว่าทั้งหมดนั้นดีหรือไม่ พวกเขาปฏิเสธ / ไม่ค่อยขอรหัสรีวิว พวกเขาปฏิเสธ / ไม่ค่อยทำสิ่งพื้นฐานเช่นการจัดรูปแบบรหัส ไม่มีเอกสารสำหรับคลาสใด ๆ (jsdocs) กลัวที่จะลบรหัสที่ไม่ได้ทำอะไรเลย ปล่อยให้บล็อกรหัสความคิดเห็นทุกที่แม้ว่าเราจะมีการควบคุมเวอร์ชัน ฉันพบว่าตัวเองเริ่มหงุดหงิดมากขึ้นเมื่อฉันจัดรูปแบบโค้ดอื่นแก้ไขข้อผิดพลาดค้นพบฟังก์ชันที่ใช้งานไม่ได้และสร้าง abstractions เพื่อลบสปาเก็ตตี้ ฉันไม่รู้จะทำยังไง ฉันพยายามไม่หงุดหงิด แต่มันก็เป็นระเบียบ …
17 bad-code 

7
ถ้า coder ที่คล่องแคล่วไม่สนใจแนวปฏิบัติที่ดีความคล่องแคล่วของเขาจะไม่ทำงานกับเขาใช่ไหม [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังทำงานกับแอพพลิเคชั่นที่ค่อนข้างใหญ่และมีข้อผิดพลาด - และเนื่องจากวิธีการเขียน (ฉันจะให้รายละเอียดแก่คุณ แต่เป็นการละเมิดกฎในพื้นที่ส่วนใหญ่ที่คุณนึกถึง) มันอยู่ถัดจากการพัฒนาที่เป็นไปไม่ได้ ส่วนสำคัญของแอพนี้เขียนขึ้นโดยนักศึกษาฝึกงาน, n00bs เป็นต้น แต่ก็มีโปรแกรมเมอร์ในตำแหน่งของ Master Developer และด้วยความนอบน้อมทั้งหมดรหัสที่เขาทิ้งไว้ข้างหลังนั้นก็เป็นที่น่าสงสัยเช่นกันในทางที่ต่างออกไป ได้รับรหัสของเขามีแนวโน้มที่จะได้งานทำ - ส่วนใหญ่ - แต่โดยทั่วไปแล้วจะเป็นความลับ, ปรับเปลี่ยนวงล้อ (เช่นวิธีการที่กำหนดเองขนาดใหญ่ที่ประสบความสำเร็จในการสำรองข้อมูล SQL db ธรรมดา) เป็นต้นโดยทั่วไปแล้ว และฉันคิดว่าการเป็นนักเขียนโปรแกรมที่มีทักษะสูง (ฉันจงใจไม่ใช้คำว่า "ผู้พัฒนา" โดยสันนิษฐานว่ามันบ่งบอกถึงทักษะที่กว้างขึ้น) หากไม่ได้มีคุณสมบัติอื่น ๆ อาจเป็นพิษได้จริง สมมติว่าเป็นเรื่องจริงบางเหตุผลที่ฉันคิดได้คือ: หากคุณกำลังเขียนโค้ดได้อย่างง่ายดายรู้สึกว่า (หรือที่จริงแล้วในระยะสั้น) เพียงเร็วกว่าที่จะรีบแก้ไขปัญหาของคุณเองทันทีไม่ต้องเปลี่ยนไปใช้ห้องสมุด หากมีประสบการณ์มากพอที่จะรักษาภาพลักษณ์ของโปรแกรมที่ซับซ้อนได้ง่ายคน ๆ นั้นมีแนวโน้มน้อยที่จะแยกมันออกเป็นโมดูลเลเยอร์ ฯลฯ ดังนั้นประเด็นของฉันคือหากผู้แปลที่คล่องแคล่วเป็นนักพัฒนาที่ไม่ดีความคล่องแคล่วของพวกเขาไม่เพียง แต่ชดเชยความหลังเท่านั้น แต่มันก็เป็นอันตรายมากกว่าเดิมด้วยซ้ำ คุณคิดอย่างไรกับเรื่องนี้? …

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

8
คุณเขียนโค้ดไม่ดีเมื่ออยู่ภายใต้แรงกดดันหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา เมื่อคุณอยู่ภายใต้ความกดดันกำหนดเวลาใกล้เข้ามาและผู้จัดการกำลังหายใจคอของคุณคุณคิดว่าตัวเองเริ่มเขียนโค้ดไม่ดีหรือไม่? TDD และแนวปฏิบัติที่ดีที่สุดจะถูกส่งไปตามทางเพื่อที่จะทำสิ่งต่างๆให้สำเร็จหรือไม่? คุณทำอะไรในสถานการณ์เช่นนั้น คุณมีประสบการณ์อย่างไร
14 bad-code 

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