อุปกรณ์ประกอบฉากสำหรับคุณที่มีทัศนคติว่าคุณจะได้เรียนรู้บางสิ่งจากประสบการณ์นี้ ฉันแน่ใจว่าคุณจะ
สิ่งแรกที่คุณควรเรียนรู้คือความจำเป็นของการทดสอบหน่วยมีอะไรจะทำอย่างไรกับคุณจะมีประสบการณ์ นักพัฒนาที่ดีที่สุดจะเป็นหนึ่งในผู้ทดสอบที่ดีที่สุดเช่นกัน:
Bill Venners:คุณพูดใน Refactoring หนังสือของคุณ: "ถ้าคุณต้องการ refactor เงื่อนไขที่สำคัญคือการทดสอบที่หนักแน่น" หมายความว่าถ้าคุณไม่มีการทดสอบคุณไม่ควรปรับโครงสร้างอีกครั้ง
Martin Fowler:คุณควรคิดว่ามันเป็นการเดินไต่เชือกโดยไม่ต้องมีตาข่าย หากคุณเก่งในการเดินไต่เชือกและมันไม่สูงมากนักคุณอาจลอง แต่ถ้าคุณไม่เคยเดินไต่เชือกมาก่อนและมันอยู่เหนือน้ำตกไนแองการ่าคุณอาจต้องการตาข่ายที่ดี
จากhttp://www.artima.com/intv/refactorP.html
ฉันเคยเขียน PHP โดยไม่มีการทดสอบหน่วย หลังจากนั้นหลายปีที่ฝึกการทดสอบหน่วยใน Java ฉันพบว่าฉันไม่สามารถทำงานอะไรที่ซับซ้อนกว่า PHP ในหน้าเดียวโดยไม่ต้องทำการทดสอบหน่วย เหตุผล? ผลผลิต หากไม่มีการทดสอบหน่วยฉันไม่สามารถ refactor ด้วยความมั่นใจ - นั่นหมายความว่าA)ฉันจะต้องทรุดตัวลงและทำงานทุกอย่างตั้งแต่ต้นอีกครั้งหรือB)ฉันต้องจัดการกับรหัสที่น่าเกลียด
เมื่อคุณทำการประมูลคุณต้องคำนึงถึงเวลาในการทดสอบหรือไม่ ใช่แล้ว ดูเหมือนว่าใช้งานง่ายที่จะใช้เวลามากขึ้น ? ใช่อีกครั้ง คุณอาจจะเนื่องจากคำตอบอื่น ๆ ประมาณคร่าว ๆ จำเป็นต้องประมาณ50-100%สูงกว่าโดยไม่มีการทดสอบหน่วย
อย่างไรก็ตาม ...
- คุณจะได้รับข้อมูลช่องโหว่และที่อยู่ก่อนหน้านี้
- ซึ่งหมายความว่าคุณจะต้องพัฒนาต่อไปเพื่อสเป็คที่สะอาดขึ้นและแข็งแกร่งขึ้น
- คุณจะสามารถตอบสนองได้อย่างรวดเร็วและมั่นใจในการระบุการเปลี่ยนแปลง
- คุณจะมีข้อบกพร่องน้อยลง
- ข้อบกพร่องของคุณจะถูกจับได้เร็วและง่ายต่อการแก้ไข
และเป็นผลให้ประมาณการของคุณจะมีความแม่นยำมากขึ้น หากคุณคิดค่าบริการรายชั่วโมงคุณจะประทับใจลูกค้าของคุณมากขึ้นและสามารถเพิ่มอัตราของคุณได้ หากคุณคิดอัตราแบบคงที่คุณจะทำเงินได้มากขึ้นต่อชั่วโมง
หากไม่มีการทดสอบการประมาณการของคุณน่าจะเป็นสิ่งที่ต้องทำ บั๊กคำสั่งการเปลี่ยนแปลงและการกำหนดนิยามใหม่นั้นน่ากลัวสำหรับการประเมินอย่างแม่นยำ การทดสอบเป็นกุญแจสำคัญในการลดผลกระทบของทั้งสามให้น้อยที่สุด!