# Continuous Integration คืออะไร และประโยชน์ที่มาพร้อมการใช้งาน
เมื่อพูดถึงการพัฒนาซอฟต์แวร์ในโลกปัจจุบัน คงไม่มีนักพัฒนาคอมพิวเตอร์คนไหนไม่รู้จัก "Continuous Integration" หรือที่เรียกสั้นๆ ว่า CI นับเป็นเรื่องพื้นฐานที่หลีกเลี่ยงไม่ได้ เหมือนการที่เราแปรงฟันทุกวันเพื่อให้ฟันของเราแข็งแรงนั่นเอง!
Continuous Integration หรือ CI คือ แนวทางหนึ่งในการพัฒนาซอฟต์แวร์ที่ทำให้นักพัฒนาสามารถรวมงานของตัวเองเข้ากับนักพัฒนาคนอื่นๆ ได้บ่อยครั้งและต่อเนื่อง เพื่อให้โปรเจ็กต์ที่ทำมีคุณภาพและสามารถทำงานได้อย่างราบรื่น. ถ้าเปรียบเทียบให้เด็กอายุ 8 ปีเข้าใจ ก็เหมือนกับการที่เราสร้างบ้านจากตัวต่อเลโก้ แต่ละคนมีหน้าที่สร้างส่วนหนึ่งของบ้านแล้วนำมาประกอบกัน ถ้าเรามีแนวทางที่ดี ว่าจะต่อยังไง บางคนอาจจะได้ต่อส่วนประตู, ส่วนหน้าต่าง, หรือแม้กระทั่งสวนของบ้าน และทั้งหมดนี้ต้องประกอบกันได้อย่างลงตัว ไม่ให้มีชิ้นไหนหล่นหายไป.
การใช้งาน CI นั้นเริ่มจากการที่แต่ละคนเขียนโค้ดแล้วจะทำการ "push" หรือส่งโค้ดขึ้นไปยัง repository ที่ทุกคนในทีมจะเห็นกันอยู่ และเมื่อมีการส่งโค้ดขึ้นไปทุกครั้ง ระบบ CI ก็จะ "build" หรือ "รัน" โค้ดนั้นๆ และทดสอบทันทีว่าสามารถทำงานร่วมกับโค้ดชิ้นอื่นๆ ได้หรือไม่
ตัวอย่างการใช้งาน CI
สมมุติว่าเราทำเกมบนมือถือ นักพัฒนา A ทำงานเกี่ยวกับหน้าจอเมนู เขาเขียนโค้ดแล้วทำการ "push" โค้ดนั้นขึ้นไปบน repository ที่ทีมใช้งานร่วมกัน. CI ก็จะเริ่มการทำงานทันที เพื่อตรวจสอบว่าโค้ดหน้าจอเมนูทำงานร่วมกับส่วนอื่นของเกมได้ดีหรือไม่ – ไม่ว่าจะเป็นหน้าจอตั้งค่า, ระบบสกอร์, หรือการควบคุมตัวละคร.
หาก CI พบปัญหา เช่น หน้าจอเมนูทำให้เกมค้าง ระบบก็จะทำการแจ้งเตือนให้นักพัฒนา A รับทราบและแก้ไขปัญหาก่อนที่จะถึงขั้นตอนการทดสอบครั้งใหญ่หรือเปิดตัวเกมจริง.
สรุป
Continuous Integration หรือ CI คือเครื่องมือที่ช่วยให้การพัฒนาซอฟต์แวร์นั้นง่ายและมีประสิทธิภาพมากขึ้น เหมือนกับการที่เราสามารถมองเห็นภาพรวมของบ้านที่เราสร้างจากเลโก้ได้ตั้งแต่แรก การใช้งาน CI นั้นจึงควรทำทุกครั้งเมื่อมีการเขียนโค้ดใหม่ๆ หรือมีการเปลี่ยนแปลง พวกเราที่ EPT ขอให้นักเรียนทุกคนได้มีความเข้าใจในเรื่องนี้ เพราะมันเป็นส่วนสำคัญที่จะช่วยให้คุณเป็นผู้พัฒนาซอฟต์แวร์ที่มีประสิทธิภาพ และพร้อมตอบสนองต่อการเปลี่ยนแปลงของโลกซอฟต์แวร์ในอนาคตได้อย่างไม่มีปัญหา.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM