Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

เรานำแนวคิดของ Continuous Integration มาใช้หรือไม่ ?

$
0
0

วันนี้อ่านหนังสือเรื่อง Continuous Integration ไปเจอชุดคำถามที่น่าสนใจว่า เรากำลังนำแนวคิดและแนวปฏิบัติของ Continuous Integration มาใช้งาน หรือเราเพียงนำเครื่องมือที่เรียกว่า Continuous Integration Tool มาใช้เท่านั้น ดังนั้นลองมาตอบคำถามเหล่านี้กันหน่อย

คำถามที่ 1

ในแต่ละวันทำการ check-in หรือ push code หรือ pull request ไปยัง branch หลักที่ทำงานร่วมกันกี่ครั้ง ? แนวคิดของ Continuous Integration นั้น เพื่อช่วยทำให้มั่นใจว่า การรวม code และสิ่งต่าง ๆ ที่เปลี่ยนแปลงนั้นถูกต้องหรือไม่ ดังนั้นถ้าเราไม่ทำการส่งการเปลี่ยนแปลงไปยัง branch หลักที่ทุกคนในทีมทำงานร่วมกันแล้ว คิดว่าปัญหาต่าง ๆ ยังคงอยู่ แม้จะมีการนำแนวคิดที่ดีมาใช้งาน แต่เรากลับไม่ปรับเปลี่ยนตัวเราเอง สุดท้ายสิ่งที่ผิดคือ อะไรก็ตามที่ไม่ใช่ตัวเรา !! ถ้าแต่ละคนมี branch ส่วนตัว เช่น feature branch แล้ว feature branch เหล่านี้ต้องมีอายุที่สั้น จากนั้นทำการรวมไปยัง branch หลักที่ทำงานกัน และลบ feature branch ไปซะ

คำถามที่ 2

มีชุดการทดสอบแบบอัตโนมัติหรือไม่ ? เพื่อใช้ตรวจสอบการเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้น ถ้าไม่มีหรือมีน้อยมาก ๆ นั่นหมายความว่า น่าจะกำลังไปผิดทาง เพราะว่า ไม่ได้ช่วยทำให้เรามีความมั่นใจต่อการเปลี่ยนแปลงเลย ดังนั้น เริ่มเขียนชุดการทดสอบแบบอัตโมัติได้แล้วนะ ไม่ว่าจะเป็น unit, integration, api และ end-to-end test เป็นต้น

คำถามที่ 3

ถ้าระบบ Continuous Integration แจ้งผลการตรวจสอบว่า ไม่ผ่าน แล้ว สิ่งที่เกิดขึ้นคือ ทุกคนในทีมจะหยุดทำงานแล้วช่วยกันแก้ไขให้การทำงานผ่าน จากนั้นจึงแยกย้ายกลับไปทำงานของตนเองต่อไป คำถามคือ ทีมของคุณทำแบบนี้ใช่หรือไม่ ? ถ้าไม่แสดงว่า คุณไม่ได้สนใจทีมเลย สนใจแต่ตนเอง ลองคิดดูสิว่า ถ้าการเปลี่ยนแปลงล่าสุดทำให้ระบบทำงานไม่ถูกต้องแล้ว คนอื่น ๆ ในทีมจะผ่านได้อย่างไร ดังนั้นจงหยุดทำงานของตัวเอง แล้วมาช่วยกันแก้ไขปัญหาตรงกลางให้ผ่านก่อนเสมอ ก่อนกลับบ้านต้องมั่นใจว่า การเปลี่ยนแปลงต่าง ๆ เหล่านั้น ต้องถูกตรวจสอบและเมื่อตรวจสอบแล้วต้องผ่านเท่านั้น

Viewing all articles
Browse latest Browse all 1997

Trending Articles