ถ้าใครยังไม่ได้อ่านเกี่ยวกับเรื่อง test ลองกลับมาอ่านของ Day#3 กันก่อนเนาะ
วันนี้พี่บอยได้ให้ลองทดลองเขียน code โดยที่ยังไม่ได้ออกแบบ test case และ design ก่อนด้วยภาษาอะไรก็ได้ที่เราอยากเขียน โดยการ pair programming แบบเดิม
ภาษาที่ใช้ คือ Java พอคุ้นเคยมาบ้างนิดหน่อย เอาจริงๆก็ลืมไปบ้างแล้ว ไม่ค่อยได้จับสักเท่าไหร่ ซึ่งในช่วงเช้าพี่บอยให้เขียน code โดยเขียนลุยไปเลย ไม่ต้องเพิ่งนึกถึง test อะไร เรากับคู่บัดดี้ก็เลยวางแผนกันว่า เราจะทำอะไรกันบ้าง ก็คิดว่าจะสร้างฟังก์ชันที่เช็คน้ำหนัก,เช็คชั้น,เช็คลิฟต์
ปัญหาในช่วงเช้าก็คือ เราแตกงานไม่ละเอียด แตกงานเป็นชิ้นใหญ่เกินไป พอลงมือทำจริงๆแล้ว ในงาน 1 ใบ มันมีรายละเอียดมากกว่านั้น
ต่อมาช่วงบ่ายพี่บอยก็ให้ทำต่อด้วยการเขียน test โดยการ test ว่าน้ำหนักเกินหรือไม่เกิน ผล test ผ่าน / เช็คว่าลิฟต์นั้นขึ้นหรือหยุด ผล test ผ่าน แต่ได้เจอปัญหา ก็คือ เราต้องกลับไปแก้ code ของตัวเอง เพราะว่า test ของเรา มัน test while loop ไม่ได้ (ความรู้ใหม่มากๆ)
ปัญหาในช่วงบ่ายที่ได้เจอ
- design test แล้ว test กับ code ไม่ได้
- มีการเขียน code ที่ซ้ำกัน
- คิด logic ลึกเกินไป โดยลืมสิ่งที่สนใจจริงๆ
จุดสังเกต : ถ้าคนที่เขียน code ก่อนเขียน test จะเห็นได้ว่ามีการเช็ค log ทาง command ว่าผลลัพธ์ออกมาตามที่ต้องการหรือไม่
จากผลทดลองที่เราทำวันนี้เทียบกับเมื่อวานแล้ว ได้เจอข้อดีของมันก็คือ
- ตี scope การเขียน code ให้ลดลง
- code ไม่มีการใช้ที่ซ้ำซ้อนและลบ code ส่วนที่ไม่ได้ถูกใช้งานออก
- เข้าใจการทำงานที่ชัดเจนจากการที่เราเขียน test case ออก
เห็นหรือยังข้อดีของการเขียน Test ก่อนที่จะเขียน Code
อุ๋งๆ