ประเด็นสำคัญของ Code Complete คืออะไร [ปิด]


72

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


49
จุดสำคัญของหน้า 824 ของ Code Complete 2 คือคุณควรอ่านหนังสือการเขียนโปรแกรมจริง!
azheglov

@azheglov: นี่เป็น 2 ฉบับในรุ่นที่ 2 หรือ 2 ใน Code Complete 2 ซึ่งควรอ่านหลังจาก Code Complete หรือไม่
คริส

@Chris เกือบ 4 ปีต่อมา: มันเป็น 2 เช่นเดียวกับในรุ่นที่ 2 แก้ไขและปรับปรุง และฉันหวังว่าคุณจะได้อ่านในระหว่างนี้ :-)
streppel

คำตอบ:


83

Code Complete นั้นเกี่ยวกับงานฝีมือซอฟต์แวร์ มันเป็นหนังสือระดับเริ่มต้น / ระดับกลางขั้นสูงที่เขียนขึ้นสำหรับโปรแกรมเมอร์ที่ทำงาน แต่มันยังคงมีประโยชน์มากสำหรับคนที่เคยเขียนโปรแกรมมาอย่างน้อยหนึ่งปี

ดังนั้นประเด็นสำคัญของ Code Complete (2nd ed.) จึงถูกสรุปไว้อย่างดีในบทที่ 34 ชุดรูปแบบในงานฝีมือซอฟต์แวร์ ถอดความจากบันทึกย่อของฉัน:

  1. Conquer Complexity : ลดภาระการคิดในใจของคุณผ่านระเบียบวินัยการประชุมและสิ่งที่เป็นนามธรรม
  2. เลือกกระบวนการของคุณ : ตระหนักถึงคุณภาพตั้งแต่เริ่มต้น (ความต้องการ) ไปจนถึงการสิ้นสุด (การปรับใช้) และเกิน (การบำรุงรักษา)
  3. เขียนโปรแกรมสำหรับคนแรกคอมพิวเตอร์ที่สอง : การอ่านรหัสมีความสำคัญอย่างยิ่งต่อความเข้าใจความสามารถในการตรวจทานอัตราความผิดพลาดการแก้ไขข้อผิดพลาดการปรับเปลี่ยนได้และเวลาและคุณภาพในการพัฒนาที่ตามมา
  4. โปรแกรมเป็นภาษาของคุณไม่ได้อยู่ในนั้น : คิดถึงอะไร? และทำไม? ก่อนที่จะอย่างไร
  5. มุ่งเน้นความสนใจของคุณด้วยความช่วยเหลือของการประชุม : การประชุมจัดการความซับซ้อนโดยการจัดโครงสร้างที่จำเป็นเพื่อให้ทรัพยากรที่ดีที่สุด - ความสนใจของคุณ - สามารถใช้งานได้อย่างมีประสิทธิภาพ
  6. โปรแกรมในแง่ของโดเมนปัญหา : ทำงานในระดับสูงสุดของนามธรรม รหัสระดับสูงสุดควรอธิบายถึงปัญหาที่กำลังแก้ไข แยกแยะระดับ OS, ระดับภาษาการเขียนโปรแกรม, โครงสร้างการนำไปปฏิบัติระดับต่ำ, คำศัพท์โดเมนปัญหาระดับต่ำ, และสุดท้าย, คำศัพท์ปัญหาโดเมนระดับสูงซึ่งจะทำให้ผู้ใช้
  7. Watch for Falling Rocks : เมื่อการเขียนโปรแกรมผสานศิลปะและวิทยาศาสตร์เข้าด้วยกันการตัดสินที่ดีจึงมีความสำคัญรวมถึงการเตือนสัญญาณเตือนภัย
  8. ทำซ้ำซ้ำแล้วซ้ำอีกซ้ำอีก : ข้อกำหนดซ้ำการออกแบบการประมาณรหัสการปรับรหัส
  9. ท่านจะแสดงซอฟต์แวร์และศาสนา Asunder : มีความผสมผสานและเต็มใจที่จะทำการทดลอง อย่าเป็นคนกระตือรือร้นที่กระตือรือร้นมันห้ามใจอยากรู้อยากเห็นและเรียนรู้ ก้าวไปไกลกว่ามีค้อนในกล่องเครื่องมือของคุณ

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

นอกจากนี้หนังสือเล่มนี้ทำให้เห็นได้ชัดว่าช่องว่างระหว่างเฉลี่ยและยอดเยี่ยมในซอฟแวร์เป็นใหญ่ ; ความจริงนั้นเพียงอย่างเดียวควรผลักดันผู้ให้รหัสที่ดีเพื่อตัวเอง

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

นอกเหนือจากรหัสเสร็จสมบูรณ์ผมขออยากแนะนำให้โปรแกรมเมอร์ศาสตร์ เหมาะสำหรับโปรแกรมเมอร์ระดับกลางเขียนอย่างดีและผสมผสานคำแนะนำที่สูงปานกลางและต่ำได้อย่างยอดเยี่ยม


คุณแน่ใจหรือว่านี่เป็นหนังสือระดับกลาง ดูเหมือนว่าค่อนข้างธรรมดาพร้อมคำแนะนำเช่น "อย่าลืมลบชื่อตัวแปรที่ไม่ได้ใช้" - ยอดเยี่ยมสำหรับบางคนในปีแรกหรือปีที่สองของวิทยาลัยอาจจะ แต่ไม่ใช่ระดับกลาง (IMO)
Colen

1
@Colen: ขอบคุณสำหรับความคิดเห็นของคุณฉันควรจะระบุไว้สำหรับ coders ระดับเริ่มต้น / ระดับกลาง
limist

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

1
รหัส IMO ที่สมบูรณ์นั้นไม่มีความจำเป็น - ดังนั้นผู้ซื้อระวัง!
BKSpurgeon

นี่เป็นบทสรุปที่ดีของชุดรูปแบบในหนังสือ คุณช่วยแบ่งปันบันทึกย่อที่ไม่ยาวและไม่สั้นของคุณได้ไหม?
Akshay Khot

18

มันเป็นหนังสือระดับกลางซึ่งเป็นแนวทางการปฏิบัติที่ดีที่สุดในการพัฒนาซอฟต์แวร์

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

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


4
ผู้ปกครองของคุณทำให้คุณได้รับการโหวต : p
Nathan Taylor

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