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