วันนี้อ่าน feed ใน twitter เจอหัวข้อที่น่าสนใจ
ซึ่งได้ถามเกี่ยวกับ TDD ว่ามันคือวิธีการในการออกแบบหรือไม่ ? (Design methodology)
มีการพูดคุยผ่าน twitter โดย reply กันไปมา
ดังนั้นจึงเก็บมาฝาก ลองอ่านกันดู
เริ่มต้นจาก tweet นี้เลย
@unclebobmartin Is it correct to say that TDD is a design methodology?
— Sharas (@Sharas_) September 13, 2015
จากนั้น UncleBob มาตอบได้อย่างน่าคิด
คือทั้งใช่ และ ไม่ใช่
กล่าวคือ มันช่วยอย่างมากสำหรับ low-level design
แต่ไม่ได้ช่วยอะไรมากนักสำหรับ high-level design
@Sharas_ Yes, and no. It helps a lot with low level design. It doesn't help much with high level architecture.
— Uncle Bob Martin (@unclebobmartin) September 14, 2015
ต่อมาทางคุณ Ron Jeffries ผู้เขียนหนังสือ The Nature of Software Development
มาแนะนำให้ลองลงมือทำ
คล้าย ๆ กับ Lean Startup เลยสำหรับ TDD
นั่นคือ Get idea -> เขียน test -> implement -> learn
และกลับไปเริ่มทำซ้ำใหม่อีกครั้ง
จากนั้นคุณ Georg Berky มาเสริมอีกว่า
TDD นั้นไม่ได้ช่วยในการออกแบบโดยตรงหรอกนะ
แต่มันช่วยบอกเราว่า ถ้าคุณกำลังเจ็บปวดในสิ่งที่กำลังสร้าง
นั่นหมายถึงการออกแบบคุณมันห่วย
.@unclebobmartin @RonJeffries @Sharas_ TDD does not cause good design directly, but gives you pain if your design is bad. cc @sandromancuso
— Georg Berky (@georgberky) September 24, 2015
ยังไม่พอนะ คุณ Sandro Mancuso ผู้เขียนหนังสือ Software Craftsmanship
ยังเขียน blog เพื่อแสดงความคิดเห็น
จาก blog นี้ Does TDD really lead to good design?
คุณล่ะมีความคิดเห็นอย่างไรกับเรื่องนี้บ้าง ?