สรุป
อย่างที่ JacquesB เขียนทุกคนไม่เห็นด้วยกับ "Clean Code" ของ Robert C. Martin
โครงการโอเพนซอร์สที่คุณพบว่า "ละเมิด" หลักการที่คุณคาดว่าน่าจะมีหลักการอื่น ๆ
มุมมองของฉัน
ฉันบังเอิญตรวจสอบรหัสฐานหลายฉบับที่ยึดถือหลักการของ Robert C. Martin เป็นอย่างมาก อย่างไรก็ตามฉันไม่ได้อ้างว่าพวกเขาถูกต้องฉันสามารถพูดได้ว่าพวกเขาทำงานได้ดีสำหรับเรา - และที่จริงแล้ว "เรา" เป็นส่วนผสมของอย่างน้อย
- ขอบเขตและสถาปัตยกรรมของผลิตภัณฑ์ของเรา
- ตลาดเป้าหมาย / ความคาดหวังของลูกค้า
- ระยะเวลาในการบำรุงรักษาผลิตภัณฑ์
- วิธีการพัฒนาที่เราใช้
- โครงสร้างองค์กรของ บริษัท ของเราและ
- ความคิดเห็นและประสบการณ์ที่ผ่านมาของนักพัฒนาซอฟต์แวร์ของเรา
โดยพื้นฐานแล้วสิ่งนี้จะลดลงไปที่: แต่ละทีม (ไม่ว่าจะเป็น บริษัท แผนกหรือโครงการโอเพนซอร์ซ) นั้นมีเอกลักษณ์ พวกเขาจะมีลำดับความสำคัญและมุมมองที่แตกต่างกันและแน่นอนว่าพวกเขาจะทำการแลกเปลี่ยนที่แตกต่างกัน การแลกเปลี่ยนเหล่านี้และรูปแบบโค้ดที่ส่งผลให้ส่วนใหญ่เป็นเรื่องของรสนิยมและไม่สามารถพิสูจน์ได้ว่า "ผิด" หรือ "ถูกต้อง" ทีมสามารถพูดได้ว่า "เราทำเช่นนี้เพราะมันใช้งานได้กับเรา" หรือ "เราควรเปลี่ยนแปลงสิ่งนี้เพราะมันไม่ได้ผลสำหรับเรา"
ที่กล่าวว่าฉันเชื่อว่าเพื่อให้สามารถรักษาฐานรหัสขนาดใหญ่ได้สำเร็จในแต่ละปีทีมแต่ละคนควรเห็นด้วยกับข้อตกลงรหัสที่พวกเขาคิดว่าเหมาะสมสำหรับประเด็นดังกล่าวข้างต้น นั่นอาจหมายถึงการนำแนวทางปฏิบัติของโรเบิร์ตซีมาร์ตินไปใช้โดยผู้เขียนคนอื่นหรือประดิษฐ์ขึ้นเอง มันอาจหมายถึงการเขียนมันลงอย่างเป็นทางการหรือจัดทำเป็นเอกสาร "ตามตัวอย่าง" แต่พวกเขาควรมีอยู่
ตัวอย่าง
พิจารณาการฝึกฝนของ "การแยกรหัสจากวิธีที่ยาวเป็นวิธีส่วนตัวหลายวิธี"
โรเบิร์ตซีมาร์ตินกล่าวว่ารูปแบบนี้จะช่วยให้สำหรับการ จำกัด เนื้อหาของแต่ละวิธีการหนึ่งระดับของนามธรรม - เป็นตัวอย่างที่ง่ายวิธีการที่ประชาชนอาจจะเพียงประกอบด้วยการโทรไปยังวิธีเอกชนเช่นverifyInput(...)
, loadDataFromHardDisk(...)
, transformDataToJson(...)
และในที่สุดsendJsonToClient(...)
และวิธีการเหล่านี้จะมี รายละเอียดการใช้งาน
- บางคนเช่นนี้เพราะผู้อ่านสามารถรับภาพรวมอย่างรวดเร็วของขั้นตอนระดับสูงและสามารถเลือกรายละเอียดที่พวกเขาต้องการอ่านเกี่ยวกับ
- บางคนไม่ชอบเพราะเมื่อคุณต้องการทราบรายละเอียดทั้งหมดคุณต้องกระโดดไปรอบ ๆ ในชั้นเรียนเพื่อติดตามไปตามโฟลว์การดำเนินการ (นี่คือสิ่งที่ JacquesB อ้างถึงเมื่อเขาเขียนเกี่ยวกับการเพิ่มความซับซ้อน)
บทเรียนคือ: พวกเขาทั้งหมดถูกต้องเพราะพวกเขามีสิทธิ์ที่จะมีความคิดเห็น