ส่วนใดของ Code Complete ที่ยังไม่ได้ทดสอบ [ปิด]


14

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

ฉันอยากรู้อยากเห็น - มีคนอื่นให้ดูที่สองเมื่อเร็ว ๆ นี้? ฉันคุณเห็นอะไรที่เขาผิดมาก ๆ ไหม?

นี่ไม่ใช่การโจมตีและไม่ใช่การขอตรวจทานหนังสือ - ฉันสนใจที่จะเปลี่ยนความคิดในช่วงหลายปีที่ผ่านมา

และโปรด - ไม่มีความคิดเห็นเกี่ยวกับ "Demarco / Spewak / Zachman ยืนการทดสอบของเวลา ... " ฉันสนใจเป็นพิเศษใน Code Complete เนื่องจากความกว้างของพื้นดินครอบคลุมและความกว้างของผลกระทบที่มีในสนาม


1
การตรวจสอบอย่างรวดเร็วอีกครั้งทำให้ฉันนึกถึงความรำคาญที่ข้อความดูเหมือนขัดแย้งกับตัวอย่างและส่วนต่าง ๆ ของหนังสือแนะนำสิ่งต่าง ๆ นอกจากนั้นมันก็ยังดูดีอยู่ดี
Izkata

@Izkata - ตัวอย่าง?
MathAttack

เพิ่มเป็นคำตอบ
Izkata

1
เป็นคำถามที่ดีเมื่อเร็ว ๆ นี้ฉันได้ไตร่ตรองว่าจะอ่านซ้ำเอง ฉันสงสัยว่ามีแผนสำหรับรุ่นใหม่หรือไม่?
Antonio2011a

2
ฉันศึกษา Code Complete (2nd Edition) เมื่อฤดูร้อนที่แล้วและไม่มีอะไรที่ล้าสมัย เว้นแต่จะมีการเปลี่ยนแปลงที่ไม่คาดคิดอย่างรุนแรงในการพัฒนาซอฟต์แวร์ฉันคิดว่าฉันจะรู้สึกปลอดภัยที่จะแนะนำหนังสือเล่มนี้ในเวลาอย่างน้อยห้าปีนับจากนี้
ริ้น

คำตอบ:


11

Code Complete ครอบคลุมแนวคิดที่ไม่มีเวลามากเช่น:

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

ซึ่งมีความเกี่ยวข้องอย่างแน่นอนในวันนี้

แนวคิดบางอย่างที่ได้รับการสนับสนุนใน CC ได้รับการบังคับใช้ทาง syntactically ในภาษาที่ใหม่กว่าตัวอย่างเช่น C # ไม่อนุญาตให้มีการกำหนดตัวแปรในขอบเขตย่อยในลักษณะที่ซ่อนการกำหนดขอบเขตแบบซุปเปอร์ไว้

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

ทั้งหมดบอกจากสิ่งที่ฉันสามารถจำ (และมองอย่างรวดเร็วภายในสำเนาที่น่าเคารพของ CC) ฉันจะบอกว่ามันคุ้มค่าที่จะตรวจสอบ

อย่างไรก็ตามฉันไม่คิดว่ามันจะเกิดขึ้นกับธรรมชาติที่ไร้กาลเวลาอย่างแท้จริงของ The Mythical Man Month MMM กล่าวถึงประเด็นที่ว่าใครทำงานอะไรและทำไมพวกเขาถึงทำงาน รวมถึงค่าใช้จ่ายและความซับซ้อนของการสื่อสาร (มนุษย์) MMM แก้ไขปัญหาที่เป็นพื้นฐานของทุกสิ่งที่เราทำ ในการเปรียบเทียบ CC มุ่งเน้นไปที่ปัญหาเชิงปฏิบัติและในทางปฏิบัติของวิธีที่เราทำ อีกวิธีหนึ่งถ้าโครงการล่าช้ากว่ากำหนดและผู้จัดการตัดสินใจเพิ่มคน 100 คนในทีมการเขียนรหัสที่เข้าใจได้จะไม่สร้างความแตกต่าง

CC ไม่ได้แก้ไขปัญหาสำคัญที่ทำให้อุตสาหกรรมของเราประสบปัญหา แต่มันก็เป็นรากฐานที่ดีสำหรับการดิ้นรนเพื่อผลลัพธ์ที่ดีที่สุดในสถานการณ์ที่เป็นไปไม่ได้บ่อยครั้ง

ฉันจะพิจารณาพวกเขาทั้งสองอย่างจำเป็นต้องอ่านสำหรับผู้ที่สนใจเกี่ยวกับการพัฒนาซอฟต์แวร์ และฉันขอแนะนำให้อ่าน MM ใหม่ทุกครั้งที่คุณต้องการทบทวน CC มีค่าการอ่านใหม่ถ้าคุณเป็นผู้นำทีมพัฒนากำหนดมาตรฐานกลุ่มหรือฝึกอบรมนักพัฒนาใหม่ นอกเหนือจากนั้นฉันพบว่าเป็นการส่วนตัวเมื่อนานมาแล้วนำเนื้อหาภายใน CC มาใช้และฝึกฝนเป็นประจำทุกวัน

ความหวังที่ช่วย พวกเขาเป็นสองรายการโปรดของฉันอย่างแน่นอน


บางทีฉันควรสร้าง Q ที่คล้ายกันสำหรับ MM บางทีบรูกส์อาจจะง่ายขึ้นเพราะเขาเขียนหนังสือการจัดการ
MathAttack

CC ไม่ได้แก้ไขปัญหาของ "ใครกำลังทำงาน" ในบทที่ 33: ตัวละครส่วนตัว?
mg1075

4

โดยรวมแล้วหนังสือยังดีอยู่ อย่างไรก็ตามฉันมีปัญหาเล็กน้อยกับมัน:

  • บทที่ 17 ("โครงสร้างการควบคุมที่ผิดปกติ") ไม่พูดถึงคำแถลงยามว่ากลับมาจากฟังก์ชั่นก่อน แต่ตัวอย่างที่ให้ไว้ในบทที่ 15 ในคำว่า "ถ้า" คำแนะนำเกี่ยวกับคำแถลงการณ์ยาม (ประโยคที่เรียกว่าการ์ดรักษาความปลอดภัย / ผลตอบแทนเร็วในหนังสือ)
  • ตัวอย่างในหัวข้อ 14.2 ดูเหมือนจะขัดแย้งกันเอง ก่อนอื่นให้ตัวอย่างของรหัส "ไม่ดี" และวิธีทำให้เป็น "ดี" จากนั้นระบุว่าเมื่อจัดกลุ่มข้อความที่เกี่ยวข้องด้วยกันไม่ว่าจะโดยข้อมูลหรือโดยความคล้ายคลึงกันของงานก็จะเป็น "ดี" ตัวอย่าง "ไม่ดี" ควรได้รับการพิจารณาว่า "ดี" - และฉันคิดว่าอ่านง่ายกว่าตัวอย่างที่ "ดี" มากเพราะข้อมูลทั้งหมดจะถูกคำนวณในอัตราเดียวกัน - มีสถานะน้อยกว่าที่จะถือในหัวของคุณ .
  • บทที่ 23 การแก้จุดบกพร่องโดยที่คำสั่งการพิมพ์จะวิลเลจในสัญลักษณ์แสดงหัวข้อย่อย ในขณะที่ฉันยอมรับว่าพวกเขาไม่ควรเป็นเครื่องมือเดียวพวกเขามีประโยชน์อย่างมากในการลดช่วงของรหัสที่ข้อผิดพลาดเกิดขึ้น โรยสองสามรอบเพื่อดูว่าข้อมูลไม่ได้เป็นอย่างที่คุณคาดหวังไว้เป็นจุดเริ่มต้นที่ดีสำหรับการแก้ไขข้อบกพร่องโดยขึ้นอยู่กับรหัสที่คุณใช้งาน

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


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