Kata & TDD (ฉบับย่อสุดๆ)

ไม่ได้อัพบล๊อคมานานโข ..
วันนี้เลยจะอัพสาระความรู้ และประสบการณ์ ที่ได้มาจากการฝึกงาน
และได้บรรจุเป็น lovely intern แห่ง R&D Team @ Pronto Marketing

Kata คืออะไร??

อันที่จริงเราเองก็ยังไม่สามารถนิยามมันได้แบบถูกเป๊ะๆ แต่รู้ว่ามันมาจาก คำภาษาญี่ปุ่น ซึ่งเป็นรูปแบบท่าทางการฝึกฝน การต่อสู้ของญี่ปุ่น ซึ่งเมื่อเปรียบเทียบกับการเขียนโปรแกรม เขียนโค้ด มันก็เหมือนกับการฝึกฝน (practice) เขียนโค้ดโจทย์เดิม ซ้ำๆ ยิ่งทำ ยิ่งเมพ เหมือนกับการลับคมดาบ ยิ่งลับ ยิ่งคม !!

Kata ทำได้อย่างไร??

ก่อนอื่นเลย ขอบอกตรงนี้ ว่าการทำ kata เราสามารถใช้ภาษาโปรแกรมมิ่งภาษาไหนก็ได้ มาฝึกฝน แต่เราเริ่มโดยการทำจากภาษา python ซึ่งเราก็ได้มาเรียนรู้ syntax ใหม่ตอนเข้ามาเป็น intern ที่ pronto marketing และประทับใจกับ python มาก เป็นภาษาที่ syntax ไม่ยากจริงๆ ใครๆ ที่ไม่เคยเขียน พอมาอ่านก็สามารถทำความเข้าใจได้ง่าย ใช้เวลาไม่นาน

ตัวช่วยในการทำ Kata เราจะใช้วิธีในการเขียนโค้ดวิธีที่เรียกว่า “Test Driven Development” หรือ “TDD” ที่เรารู้จักกันนั่นเอง ขั้นตอนการทำ TDD นั้นง่ายมากจริงๆ ชื่อก็บอกอยู่แล้วนะคะ ว่าเป็น Test Driven ..

ขั้นแรก => เขียน Test

ขั้นที่สอง => เขียน Code

ขั้นที่สาม => Refactor

ดูเสต็ปแล้ว อธิบายเพิ่มเติมนิดนึง เผื่อบางคนอาจจะยังไม่เข้าใจ

การเขียน Test เราจะใช้สิ่งมีชีวิตดุ๊กดิ๊ก ตัวเล็ก ที่เรียกว่า unittest คือ automate test ตัวเล็กๆ ที่ใช้ทดสอบว่า code ที่เราเขียน เราไม่ได้มโนขึ้นมาเองว่ามันทำงานได้ถูกต้องดั่งใจ

การเขียน Code คือการเขียนเพิ่มส่วนโค้ดการทำงานลงไป หลังจากเขียน test และทำให้ test นั้นผ่านได้แบบง่ายที่สุด

การ Refactor คือการกลับมาดูสิ่งที่เราทำลงไป ทั้ง Test และ Code ว่ามันดีหรือยัง? ควรปรับปรุงตรงไหนหรือไม่? ขั้นตอนนี้ หลายๆ คนอาจจะมองผ่านมันไป แต่จริงๆ แล้ว มีประโยชน์มากค่ะ เรายอมใช้เวลาพิจารณาส่วน Test และ Code เพื่อการ Refactor ให้ได้สิ่งที่ดีที่สุด มันก็เหมือนการหมั่นจัดระเบียบข้าวของเครื่องใช้ในห้องนอน ทำตรงไหนเละไว้ หรือลวกๆ ไว้ ก็รับผิดชอบโดยการจัดระเบียบมันใหม่ซะ ! ทั้งนี้ทั้งนั้น เพื่อจะได้ส่งผลบุญต่อการทำคาตะรอบต่อไป ไม่เละจนเกินเยียวยานั่นเอง

Reference:

http://en.wikipedia.org/wiki/Kata

http://chavp.wordpress.com/2013/11/19/tdd-kata/

One thought on “Kata & TDD (ฉบับย่อสุดๆ)

  1. Pingback: การ Mock ใน Python สำหรับผู้เริ่มต้น (ภาค 1) | Another Set of Wings

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s