มีกรณีศึกษาที่แสดงให้เห็นอย่างชัดเจนว่าการพัฒนาโค้ดสะอาดดีขึ้นหรือไม่? [ปิด]


13

ฉันอยู่ในงานจริงครั้งแรกของฉันในฐานะโปรแกรมเมอร์และสิ่งที่ฉันเห็นก็คือรหัส "Big Ball of Mud" (ไม่มีความคิดเห็นที่เป็นประโยชน์ด้วย) แต่ฉันชอบทำโค้ดที่สะอาดและมันยากสำหรับฉันที่จะเขียนโค้ดแย่ ทาง

ฉันกำลังค้นหากรณีศึกษาบางส่วนที่การใช้โค้ดสะอาด (ฉันเห็นคำจำกัดความต่าง ๆ ที่นี่คือโค้ดสะอาด) ปรับปรุงการพัฒนาและบำรุงรักษาได้


1
ทุกครั้งที่มีคนต้องติดตามข้อผิดพลาดในรหัสที่สะอาดกับโคลน
วงล้อประหลาด

@ ratchetfreak: ฉันคิดว่า OP พยายามหาการศึกษาที่ตีพิมพ์เพื่อใช้การโต้แย้งว่าทำไมองค์กรของพวกเขาควรล้างข้อมูลโค้ดของพวกเขา
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner ใช่ แต่ฉันไม่แกล้งข้อโต้แย้ง "กับ" บริษัท มันเป็น บริษัท อายุ 16 ปีที่ใช้เทคโนโลยีเก่าในเมืองเล็ก ๆ ที่ไม่มีการเห็นพ้องด้วย (อย่างน้อยก็มีความคิดต่างกัน) เป็นเพียงความอยากรู้อยากเห็นและต้องการกำลังใจที่จะไม่ยอมแพ้กับ "รหัสไม่ดี"
Renato Dinhani

นี่คือตัวอย่างปัจจุบัน: kdenlive.org/users/ttill/kdenlive-fundraising-campaign
user16764

โปรดจำไว้ว่า "รหัสสะอาด" ไม่ใช่สิ่งเดียวที่ทำให้ระบบสามารถบำรุงรักษาได้ ดังนั้นการศึกษาเช่นนี้ INMO จึงเป็นเรื่องยากที่จะทำเพราะเป็นการยากที่จะแยกปัจจัยหนึ่งจากปัจจัยอื่น ๆ ที่มีส่วนทำให้เกิดผลลัพธ์
NoChance

คำตอบ:


4

รวดเร็ว ( แต่ไม่ได้หมายถึงหมดจด) ค้นหาของGoogle Scholarจะเปิดมากขึ้นของบทความที่อ้างถึงบ๊อบมาร์ตินของรหัสสะอาดแต่ฉันไม่ได้เห็นเองเอกสารใด ๆ ที่ครอบคลุมความสัมพันธ์ระหว่าง "รหัสสะอาด" และการพัฒนาที่ดีขึ้น

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

ดังนั้นคำถามที่คุณควรจะ: เขียนโค้ดสะอาดมีส่วนร่วมในการพัฒนาซอฟต์แวร์ที่ดีขึ้นหรือไม่ เพื่อที่จะตอบว่า "หลักฐาน" เพียงอย่างเดียวที่ฉันสามารถจัดหาได้จะเป็นเรื่องเล่าทั้งหมดและสำหรับฉันคิดว่าหนังสือClean Codeจะเป็นการอ้างอิงที่ยอดเยี่ยมเนื่องจากมันเขียนโดย Bob Martin เอง แต่ยังมีหลายบทที่มีส่วนร่วม โดยนักพัฒนาซอฟต์แวร์ที่เก่งที่สุดบางคน หากวิธีนี้ไม่ได้ผลอาจใช้ตรรกะความเย็นเล็กน้อย

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

ไม่ฉันไม่มีหลักฐานโดยตรงที่จะให้คุณและนี่เป็นเพียงความคิดของคนที่ทำสิ่งนี้มาเป็นเวลานานและหวังว่าจะได้รับภูมิปัญญาการพัฒนาซอฟต์แวร์เล็ก ๆ น้อย ๆไปพร้อมกัน :-)


คำตอบที่ดีและใช่คำถามนั้นจริงๆที่คุณชี้
Renato Dinhani

การเปรียบเทียบที่ดีมีการศึกษาอะไรบ้างที่บอกว่าสถานที่ทำงานหรือบ้านสะอาดช่วยเพิ่มผลผลิตหรือไม่
Bob

15

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


5

ฉันรู้ว่าสิ่งนี้จะขัดกับเมล็ดข้าวที่นี่ แต่ถึงเวลาออกสู่ตลาดรับข้อกำหนดที่ถูกต้องมีเงินทุนที่เหมาะสมการตลาดที่ดีจุดราคาที่ถูกและโชคดีล้วนมีอิทธิพลต่อความสำเร็จของผลิตภัณฑ์ซอฟต์แวร์มากกว่าคุณภาพของรหัส

นี่ไม่ใช่การบอกว่าคุณภาพของโค้ดควรถูกละเว้น แต่คุณควรรับรู้ว่ามันเป็นเพียงหนึ่งในหลาย ๆ ปัจจัย

มีตัวอย่างมากมายของรหัสที่น่ากลัวเพียงอย่างเดียวในผลิตภัณฑ์ที่ประสบความสำเร็จอย่างสูง (เช่น Apple OS ดั้งเดิมซึ่งเหลือการจัดการเธรดไว้ในแอปพลิเคชัน)

ฉันไม่สามารถนึกถึงตัวอย่างของรหัสที่สวยงามที่เอาชนะผลิตภัณฑ์ที่คิดผิดหรือเกินราคาได้

ดังนั้นหากเวลาในการทำตลาดเทียบกับรหัสที่น่ารักเวลาในการทำตลาดควรให้ความสำคัญเป็นพิเศษ!


1
ฉันเห็นด้วยกับคุณอย่างเต็มที่นี่คือสิ่งที่เกิดขึ้น ลูกค้ามีความพึงพอใจกรรมการบริหารมีความพึงพอใจโปรแกรมเมอร์ทำงานอย่างหนักเพื่อทำเวทย์มนตร์ด้วยรหัสและไม่เคยพอใจ
Renato Dinhani

3

คุณต้องแยกโค้ดที่สะอาดจากเป้าหมายที่แท้จริง: ลดต้นทุนของการแก้ไขข้อบกพร่องหลังจากการปรับใช้และลดการทำซ้ำที่ไม่จำเป็น เมื่อคุณพูดถึง "การเขียนโค้ดที่สะอาดเพื่อให้มีข้อบกพร่องน้อยลง" คุณกำลังพูดถึงศาสนา เมื่อคุณกำลังพูดถึง "ลดอัตราข้อบกพร่องลง 10% ประหยัด 2 เดือนของความพยายามในโครงการ" คุณกำลังพูดถึงการจัดการ Clean code เป็นเครื่องมือในการปรับปรุงคุณภาพเริ่มต้นของ codebase ซึ่งจะช่วยลดต้นทุนโดยรวม แต่ก็เป็นหนึ่งในหลาย ๆ

กระดาษต่อไปนี้อธิบายว่าทำไมการทำให้ถูกต้องในครั้งแรกนั้นมีความสำคัญในแง่ของต้นทุน: http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf


1

ผมไม่รู้ของการศึกษาที่เฉพาะเจาะจงใด ๆ แต่ตรวจสอบการทำงานโดยสตีฟแมคคอนเนลล์

หากใครมีมันเขาจะ ตัวอย่างเช่นการสแกนสองนาทีพบสิ่งนี้ (อายุ 16 ปี แต่ยังคงมีความเกี่ยวข้องในวันนี้)


1

หากต้องการเพิ่มคำตอบของ mattnz ถ้าคุณยังไม่ได้ฉันจะพูดเฉพาะการตรวจสอบCode Complete: คู่มือปฏิบัติของการสร้างซอฟต์แวร์โดย Steve McConnell นอกจากข้อเท็จจริงที่ว่ามันจะปรับปรุงการเขียนโค้ดของคุณเขาอ้างถึงการศึกษาจำนวนมากตลอดทั้งเล่มเกี่ยวกับวิธีการเข้ารหัสที่มีผลต่อคุณภาพของโปรแกรม

เป็นตัวอย่าง (จากหนังสือ):

การศึกษาที่แตกต่างกันอีก 450 กิจวัตร (ซึ่งเป็นเพียงเรื่องบังเอิญที่ผิดปกติ) พบว่ากิจวัตรที่มีอัตราส่วนการมีเพศสัมพันธ์ต่อการทำงานร่วมกันสูงสุดมีข้อผิดพลาด 7 ครั้งเป็นจำนวนมากเช่นเดียวกับผู้ที่มีอัตราส่วนต่ำสุดต่อการทำงานร่วมกัน เพื่อแก้ไข (Selby และ Basili 1991)

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

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