ฉันใช้ตัวดีบักบ่อยครั้งเพราะฉันทำงานในระบบขนาดใหญ่ดังนั้นฉันจึงดูด
http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html
ไม่ว่ารหัสของคุณจะสั้นและอ่านบ่อยเพียงใดมีความเป็นไปได้ที่จะมีข้อบกพร่องอยู่เสมอ http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html
ข้อผิดพลาดคือมนุษย์และไม่สามารถพิสูจน์ได้ว่าโปรแกรมนั้นถูกต้องดังนั้นทำไมไม่ใช้เครื่องมือเช่นการดีบักเกอร์ / การทดสอบอัตโนมัติเพื่อช่วยตัวเราเองในธุรกิจที่ยากลำบากนี้?
หากรหัสสั้นเพียงพอการทดสอบอย่างง่ายจะทำ นอกจากนี้ถ้ามันสั้นและคุณรู้ถึงลักษณะของบั๊กการอ่านโค้ดก็เพียงพอแล้ว อย่างไรก็ตามเมื่อฐานรหัสมีขนาดใหญ่เกี่ยวข้องกับหลายภาษาผสมกันรวมถึง 3 ชั้นจากนั้นคุณก็ต้องมีการทดสอบที่ดีในหลาย ๆ ระดับรวมถึงการดีบั๊กที่ดีมาก - มิฉะนั้นคุณจะเสียเวลามาก
ดังนั้นฉันไม่ต้องการดีบักเกอร์เมื่อใด
ฉันไม่ได้เป็น coder ที่ฉลาดหรือประสบการณ์มากที่สุด แต่ถึงกระนั้นบางครั้งฉันก็ไม่จำเป็นต้องใช้โปรแกรมดีบั๊ก นั่นคือเมื่อ:
- รหัสคือของฉันหรือเขียนดีและ
- มันเขียนในภาษาที่อ่านได้และ
- โครงการโดยรวมมีขนาดเล็ก
ฉันจะใช้ดีบักเกอร์อย่างหนักเมื่อใด
- คำตอบสั้น ๆ : บ่อยครั้งมักจะ
- เมื่อแอปพลิเคชันขัดข้อง โดยเฉพาะอย่างยิ่งเมื่อมีการใช้งาน มี VS2010 ติดตั้งบนคอมพิวเตอร์ที่สามารถสร้างความแตกต่างระหว่าง "ไม่ทราบข้อผิดพลาด"
FileNotFoundException
และ
- เมื่อห้องสมุดของบุคคลที่สามขัดข้องหรือทำงานผิดปกติ
- เมื่อรหัสถูกเขียนไม่ดี โดยเฉพาะอย่างยิ่งหากไฟล์เดียวกันถูกสัมผัสโดย 10 คนที่แตกต่างกันในช่วง 10 ปีที่ผ่านมาซึ่ง 7 ในนั้นไม่ได้อยู่กับ บริษัท อีกต่อไป
- เมื่อโครงการมีขนาดใหญ่
- เมื่อรหัสค่อนข้างเสาหิน
- เมื่อมีหลายระดับ (GUI, SQL, BL) ที่เกี่ยวข้อง
โปรดทราบว่า "ดีบักเกอร์" สามารถอ้างถึงเครื่องมือมากกว่าหนึ่งรายการ ฉันใช้ดีบัก Visual Studio, SQL ดีบักเกอร์ (ส่วนใหญ่เป็น procs ที่จัดเก็บ) และ SQL profiler ด้วย (เพื่อหาว่า SP ใดที่ถูกเรียก) ฉันต้องการเครื่องมือที่มีความสามารถนี้ที่ฉันเขียนสคริปต์ sysadmin-ish ฉบับย่อหรือไม่? ไม่ถ้าฉันสร้างเครื่องมือที่ใช้ GUI ตัวน้อยของฉันเอง ขึ้นอยู่กับ ถ้าเป็น. Net WinForms - อาจจะไม่ ถ้าเป็น WPF - ใช่
สิ่งที่กำหนดโปรแกรมเมอร์ "ของจริง" อยู่แล้ว? หนึ่งที่รวดเร็ว? ความรู้? อัลกอริธึมดีหรือไม่? เขียนเอกสารที่ดีหรือไม่ เมื่อจบการศึกษาหนึ่งในชื่อใหม่นี้หรือไม่? เมื่อไหร่ที่จะข้ามเส้นเวทย์มนตร์?
ฉันจะบอกว่าโปรแกรมเมอร์ที่ไม่ได้มือของเขา / เธอสกปรกในความพยายามมากกว่า 100 ปีที่ผ่านมาไม่ได้มีโอกาสที่จะถ่อมตนด้วยความซับซ้อนและข้อ จำกัด ของตัวเอง (เช่นเดียวกับคุณภาพของโค้ด)
ฉันพยายามใช้ตัวดีบักที่ดีที่สุดสำหรับฉันและฉันมักจะใช้มันบ่อยๆ หากงานนั้นง่ายพอและไม่จำเป็นต้องมีโปรแกรมดีบั๊ก - ฉันไม่ได้ใช้งาน ใช้เวลาไม่นานเกินกว่าที่จะคิดได้ว่าฉันต้องการหรือไม่
...
ทีนี้ในทางทฤษฎีฉันสามารถอ่านรหัสฐานได้นานจนฉันเพิ่งได้รับ อย่างไรก็ตามวิธีการลงมือทำงานได้ดีที่สุดรวมถึงฉันมักจะต้องการเขียนโค้ดโง่ ๆ ที่ฉันเห็นอีกครั้ง น่าเสียดายที่ฉันใช้เวลา 10 ปีในการทำความสะอาดฐานรหัสที่ฉันใช้ดังนั้นการใช้ดีบักเกอร์จึงเป็นขั้นตอนแรกที่ชัดเจน เมื่อฉันค้นพบว่าโค้ดใดใน 5 ล้านบรรทัดที่กำลังทำงานอยู่ฉันจะสแกนไฟล์ขึ้นและลงเพื่อลองคิดดูว่าคลาสนั้นกำลังทำอะไรอยู่