ไม่มีกระบวนการพัฒนาที่ขับเคลื่อนด้วยการทดสอบในระหว่างการพัฒนาเนื่องจากมีกำหนดเวลาที่แน่นมาก
คำสั่งนี้เกี่ยวข้องมาก ไม่ใช่เพราะมันหมายความว่าคุณพัฒนาโดยไม่มี TDD หรือเพราะคุณไม่ได้ทดสอบทุกอย่าง สิ่งนี้เกี่ยวข้องกับเพราะมันแสดงว่าคุณคิดว่า TDD จะทำให้คุณช้าลงและทำให้คุณพลาดกำหนด
ตราบใดที่คุณเห็นมันด้วยวิธีนี้คุณยังไม่พร้อมสำหรับ TDD TDD ไม่ใช่สิ่งที่คุณสามารถค่อยๆ คุณรู้วิธีที่จะทำหรือไม่ หากคุณลองทำครึ่งหนึ่งคุณจะทำมันเองและดูแย่
TDD เป็นสิ่งที่คุณควรฝึกที่บ้านก่อน เรียนรู้ที่จะทำมันเพราะมันจะช่วยให้คุณรหัสในขณะนี้ ไม่ใช่เพราะมีคนบอกให้คุณทำ ไม่ใช่เพราะมันจะช่วยเมื่อคุณทำการเปลี่ยนแปลงในภายหลัง เมื่อมันกลายเป็นสิ่งที่คุณทำเพราะคุณรีบแล้วคุณก็พร้อมที่จะทำอย่างมืออาชีพ
TDD เป็นสิ่งที่คุณสามารถทำได้ในร้านค้าใด ๆ คุณไม่ต้องเปิดรหัสทดสอบ คุณสามารถเก็บไว้กับตัวเองหากคนอื่น ๆ ดูถูกการทดสอบ เมื่อคุณทำถูกต้องการทดสอบจะช่วยเร่งการพัฒนาของคุณแม้ว่าจะไม่มีใครทำก็ตาม
ในทางกลับกันถ้าคนอื่นชอบและดำเนินการทดสอบของคุณคุณควรจำไว้ว่าแม้ในร้าน TDD ไม่ใช่หน้าที่ของคุณในการตรวจสอบการทดสอบ มันคือการสร้างรหัสการผลิตที่ได้รับการพิสูจน์แล้ว หากเกิดขึ้นเพื่อทดสอบได้เรียบร้อย
หากคุณคิดว่าฝ่ายบริหารจะต้องเชื่อใน TDD หรือเพื่อนของคุณต้องสนับสนุนการทดสอบของคุณคุณก็จะไม่สนใจสิ่งที่ดีที่สุดที่ TDD ทำเพื่อคุณ มันแสดงให้คุณเห็นความแตกต่างอย่างรวดเร็วระหว่างสิ่งที่คุณคิดว่าโค้ดของคุณทำกับสิ่งที่มันทำจริงๆ
หากคุณไม่สามารถดูได้ว่าด้วยตัวของมันเองสามารถช่วยให้คุณบรรลุกำหนดเวลาได้เร็วขึ้นแสดงว่าคุณไม่พร้อมสำหรับการทำงานของ TDD คุณต้องฝึกฝนที่บ้าน
ที่กล่าวว่าเป็นเรื่องดีเมื่อทีมสามารถใช้การทดสอบของคุณเพื่อช่วยให้พวกเขาอ่านรหัสการผลิตของคุณและเมื่อผู้บริหารจะซื้อเครื่องมือ TDD ใหม่ที่สวยงาม
เป็นความคิดที่ดีหรือไม่ที่จะเขียนกรณีทดสอบที่เป็นไปได้ทั้งหมดหลังจากเปลี่ยนทีมเป็น TDD?
ไม่ว่าทีมจะทำอะไรมันไม่ควรเขียนกรณีทดสอบที่เป็นไปได้เสมอไป เขียนกรณีทดสอบที่มีประโยชน์ที่สุด การครอบคลุมโค้ด 100% มีค่าใช้จ่าย อย่าเพิกเฉยกฎของการทำให้ผลตอบแทนลดลงเพียงเพราะการเรียกการตัดสินยาก
ประหยัดพลังงานในการทดสอบสำหรับตรรกะทางธุรกิจที่น่าสนใจ สิ่งที่ทำให้การตัดสินใจและบังคับใช้นโยบาย ทดสอบ heck จากนั้น รหัสกาวโครงสร้างที่อ่านง่ายที่เห็นได้ชัดที่น่าเบื่อเพียงการต่อสายเข้าด้วยกันไม่จำเป็นต้องทำการทดสอบเกือบจะแย่
(1) มันยังคงโอเคหรือเป็นความคิดที่ดีที่จะหยุดการพัฒนาส่วนใหญ่และเริ่มเขียนกรณีทดสอบที่เป็นไปได้ทั้งหมดตั้งแต่เริ่มต้นถึงแม้ว่าทุกอย่างจะทำงานได้อย่างสมบูรณ์โอเค (ยัง!) หรือ
ไม่นี่คือ "ลองเขียนใหม่อย่างสมบูรณ์" คิด สิ่งนี้จะทำลายความรู้ที่ได้รับอย่างหนัก อย่าขอเวลาในการเขียนข้อสอบ เพียงแค่เขียนแบบทดสอบ เมื่อคุณรู้ว่าสิ่งที่คุณทำการทดสอบจะไม่ทำให้คุณช้าลง
(2) ดีกว่าที่จะรอสิ่งที่ไม่ดีเกิดขึ้นจากนั้นในระหว่างการแก้ไขเขียนหน่วยทดสอบใหม่หรือ
(3) แม้แต่ลืมรหัสก่อนหน้าและเพียงแค่เขียนการทดสอบหน่วยสำหรับรหัสใหม่เท่านั้นและเลื่อนทุกอย่างไปยัง refactor ที่สำคัญต่อไป
ฉันจะตอบ 2 และ 3 แบบเดียวกัน เมื่อคุณเปลี่ยนรหัสไม่ว่าด้วยเหตุผลใดมันจะดีมากหากคุณสามารถทดสอบได้ หากรหัสนั้นเป็นรหัสดั้งเดิมจะยังไม่ต้อนรับการทดสอบ ซึ่งหมายความว่าเป็นการยากที่จะทดสอบก่อนเปลี่ยน เนื่องจากคุณเปลี่ยนมันอยู่แล้วคุณสามารถเปลี่ยนเป็นทดสอบและทดสอบได้
นั่นคือตัวเลือกนิวเคลียร์ มันมีความเสี่ยง คุณกำลังทำการเปลี่ยนแปลงโดยไม่ต้องทดสอบ มีเทคนิคการสร้างสรรค์ที่จะนำรหัสดั้งเดิมมาทดสอบก่อนที่คุณจะเปลี่ยน คุณมองหาสิ่งที่เรียกว่าตะเข็บที่ช่วยให้คุณเปลี่ยนพฤติกรรมของรหัสของคุณโดยไม่ต้องเปลี่ยนรหัส คุณเปลี่ยนไฟล์การกำหนดค่าสร้างไฟล์ไม่ว่าจะทำอะไร
ไมเคิลทำให้เราขนหนังสือเกี่ยวกับเรื่องนี้: การทำงานอย่างมีประสิทธิภาพกับรหัสมรดก ให้อ่านและคุณจะเห็นว่าคุณไม่ต้องเผาผลาญทุกสิ่งเก่าเพื่อสร้างสิ่งใหม่