สวัสดีค่าาา ก็เข้ามาสู่ในวันที่ 3 แล้วรู้สึกเหมือนผ่านไป 3 สัปดาห์แล้วด้วย ฮ่าๆ วันนี้นะคะ เราจะได้ลงมือเขียน code กันทั้งช่วงเช้าและบ่าย โดยทำเป็นการ pair programming กัน ในช่วงเช้าจะlecture ด้วยเรื่อง TDD ก่อนและต่อจากนั้นเป็นการทำโจทย์ basic ด้วย โจทย์ FizzBuzz และในช่วงบ่ายจะเป็นการเอาโจทย์ลิฟต์เมื่อวานมาทำ ด้วยภาษา Go
TDD คืออะไร? ชื่อเต็มก็คือ Test Driven Development ประกอบไปด้วย
- Red -> fail
- Green -> pass
- Refactor code -> clean code
ในเรื่องของ TDD ลองไปอ่านได้ที่นี่ดูเนาะ
แต่ส่วนใหญ่แล้วเนี่ยจะลืม Step ของ REFACTOR CODE กัน เพราะจะสนใจกันแค่ red / green กันอย่างเดียว
สิ่งแรกที่เราควรคำนึงเลย เมื่อเรา Design test แล้วเข้าใจถึงปัญหาแล้วเนี่ย อย่าเพิ่งไปคิดเรื่อง code เชียวนะ ให้เรามาออกแบบ test ที่มันจะรองรับปัญหาใน design ของเราก่อน เมื่อเขียน test ได้แล้ว ค่อยมาเขียน code ต่อ แต่! แต่! แต้!! อย่าเพิ่งเขียน code ไปไกลเชียวนะ ตามหลักแล้ว [ ต้องเขียน code ให้พอแค่ test ] อ๊ะๆ อย่าคิดว่าเขียน test เขียน code แล้วจะจบนะ อย่าลืม refactor code ด้วยนะ เพราะ code บางส่วนเราสามารถ group มารวมแล้วเรียกใช้ได้ ไม่ต้องเขียนให้มันทำงานซ้ำซ้อนได้นะ
ส่วนใครที่เซียนๆเก๋าๆเนี่ย มันก็จะรู้สึกขัดใจอะ แต่ลองคิดดูนะ ถ้าเราเขียน code ไปจนจบ แล้วค่อยมา test เนี่ย ถ้ามันพังขึ้นมาเราก็ไม่รู้ใช่ไหมว่า เฮ้ย มันพังตรงส่วนไหนและยิ่งถ้าแก้ไปแก้มาอะ ส่วนที่มันผ่านอยู่แล้วอาจจะพังตามมาก็ได้นะเธอจ๋า
ต่อมาเข้าสู่ช่วง work shop โดยใช้โจท์ FizzBuzz และต้องเขียน test ด้วยภาษา gooooooooooo โดยรายละเอียดในโจทย์ ลองอ่านกันที่นี่ดูนะ
ต่อมาในช่วงบ่าย เราจะได้ลองเอาโจทย์ลิฟต์ที่เมื่อวานเรา design และวาด flowchart กันไว้มาลองเขียน test code และ coding ซึ่งเราจะขอไม่ลงรายละเอียดเยอะ แต่สามารถอ่านได้ที่นี่
สุดท้ายนี้…ก็อยากจะฝากทุกคนเนาะว่า code ที่เราเขียนทุกวันนี้เนี่ย มันดีแล้วหรือยัง แล้วถ้าคนอื่นมาเขียนต่อเราละ เขาสามารถเขียนต่อเราได้ไหม?
Happy Coding!
อุ๋งๆ