Screen Shot 2558-05-22 at 2.12.57 PM
หลังจากที่เขียน blog เกี่ยวกับ TDD ไปนั้น
มีคนมาถามว่า แล้วจะฝึก หรือ เริ่มต้นอย่างไรดีล่ะ ?
คำตอบนั้น มีเยอะมาก
ดังนั้น จึงขอสรุปแนวทางการเรียนรู้ในแบบของผม …

การเริ่มต้น

ให้เริ่มต้นแบบง่ายๆ นั่นคือ เริ่มที่ตัวเราเอง

ตัวอย่างเช่น
ให้ทำการฝึก kata ทุกวันตอนเช้าสัก 2 สัปดาห์สิ
ให้ทำวันละ 30 นาที
ให้ทำการเปลี่ยนโจทย์ไปเรื่อยๆ

Kata มันมาจากภาษาญี่ปุ่น แปลว่า form หรือ รูปแบบ
โดยใช้ในการฝึกพวก martial art เช่น ยูโด เป็นต้น
เพื่อฝึกฝนในท่าต่างๆ ซ้ำแล้วซ้ำอีก
จนกล้ามเนื้อมันจำเอาไว้ และสามารถนำมาใช้งานแบบอัตโนมัติ

ส่วนในการพัฒนา software นั้น
เริ่มด้วยคุณ Dave Thomas ผู้ร่วมเขียนหนังสือ The Pragmatic Programmer :: From Journeyman to Master
ได้นำเข้ามาเพื่อใช้ฝึก ฝึก และ ฝึก เพื่อเพิ่มความสามารถในเรื่องต่างๆ
รวมทั้ง TDD ด้วยเช่นกัน

สำหรับ developer ที่เริ่มฝึกพัฒนาระบบด้วยแนวคิด TDD นั้น

ไม่ว่าจะหน้าเก่า หรือ หน้าใหม่ จะพบว่ามันยากมากๆ
พูดกันจริงว่า
คิดแบบ small step หรือ baby step
ค่อยๆ เขียนไป โดยเริ่มจาก test ก่อนเสมอ
แล้ว code ที่ได้มันจะค่อยๆ ใหญ่ขึ้นมาเอง
เปลี่ยนจาก design -> code -> test
มาเป็น test -> code -> design (refactor)
จะไม่เขียน production code เลยถ้าไม่มี test
……. และอื่นๆ อีกมากมาย ……

และมันจะยากมากๆ เมื่อนำไปใช้งานจริงๆ กับ code จริงๆ
หรือจะทรมานมากๆ ถ้านำไปใช้กับ legacy code

แต่ว่า ก่อนอื่น คุณควรเริ่มศึกษา และ ลงมือฝึก ฝึก ฝึก ก่อนนะ

มาเริ่มกันเลย !!!

แล้วโจทย์ที่จะเอามาฝึกล่ะ ?
ตามจริงเราสามารถนำโจทย์จากงานจริงๆ มาฝึกได้
หรือโจทย์ต่างๆ ที่เราเจอในชีวิต ก็ได้
แต่ถ้าคิดไม่ออก มีแหล่งรวม Kata ให้แล้ว เช่น

น่าจะพอให้ฝึกกันเป็นเดือนๆ

ดังนั้น จะรออะไรกันอยู่ล่ะ ?

ลงมือทำ Kata กันทุกๆ วันเถอะครับ
ซึ่งมันคือ เครื่องมือในการศึกษา TDD ได้ดีที่สุดแล้ว ขอแนะนำเลย

ลองฝึกตามนี้ดูนะครับ

  • ฝึกทุกๆ เช้า
  • กำหนด time box 30 นาที
  • ใช้โจทย์เดิมๆ สัก 1-2 สัปดาห์
  • ทำซ้ำๆ แบบนี้ไปเรื่อยๆ

หวังว่า คุณจะได้รับประโยชน์จาก Kata เหล่านั้น
ยิ่งทำเยอะ ยิ่งได้รับเยอะ

สามารถร่วมแบ่งปันประสบการณ์ หรือ ชวนกันทำ Kata ได้ที่กลุ่ม Bangkok Coding Dojo Group

วันนี้คุณทำ Kata แล้วหรือยัง ?

 

what-ru-doing-here

Tags:,