Continuous integration (CI) ที่ผมรู้จักมานานนี้อยู่ในส่วนของ Agile process ซึ่งได้เรียนมาหลายปีแล้ว (Orz เพิ่งรู้จักมัน) แต่ขอละ Agile ไว้ก่อน
CI นั้นมีหน้าที่แสดงหน้าตาผลงานที่เราได้เขียนแบบอัตโนมัต โดยอาศัยหลักการที่ว่าจะมีการ Build Software อย่างต่อเนื่องในการทำงาน ซึ่งการ Build นี่แหละจะทำให้เราเห็นหน้าตาของ Software ที่เรากำลังทำอยู่โดยนอกจากจะได้ Software แล้วยังสามารถช่วยทดสอบ Software ของเราให้ด้วยเมื่อทำการทดสอบแล้วก็ทำการรายงานผลให้กับ dev ด้วย เป็นไงเหมือนมี Tester เพิ่มอีกคน (LOL) อย่าเพิ่งเซ็งเพราะมันหมายความว่าเป็นการป้องกัน Bug ไม่ให้หลุดจาก Dev. (มากเกินไป) นี่เอง win มั้ยหละ และถ้าเป็น Agile ก็อาจจะไม่จะเป็นต้องมี tester โดยตำแหน่งเลย (Tester จะปนไปกับ Dev.) โดยเมื่อรู้ผลแล้วก็ต้องแก้ให้เร็วที่สุด เมื่อแก้ผ่านเราก็จะได้ Software ตัวน้อยๆ ที่ทำงานได้ในระดับหนึ่ง(ฟังก์ชันยังไม่ครบ) ส่วนจะเริ่มเขียนยังไงที่ทำให้ใช้ CI ได้นี้จะยกไปหัวข้ออื่นนะครับ
รูปที่ผมสรุปตามความเข้าใจของตัวเองนะครับ
สรุป จุดประสงค์การทำ CI
-เพื่อให้ได้ Software ที่ทำงานได้ในระดับหนึ่งอยู่ตลอดเวลา
-เพื่อตรวจสอบปัญหาที่มองไม่เห็นซึ่งอาจจะเกิดขึ้น
-เพื่อช่วยหา Bug โดยอัตโนมัติ(เร็วขึ้นและไม่ต้องออกแรงเยอะ)
-เพื่อทดสอบทวน Code เก่าทุกครั้งที่มีการเพิ่ม Code ใหม่
เท่าที่ดูมาเหมือนจะอยู่ในบทเรียนทั้งนั้นทำเอารู้สึกผิดกับอาจารย์เลย T-T
อ้างอิง
http://en.wikipedia.org/wiki/Extreme_programming
http://en.wikipedia.org/wiki/Scrum_%28software_development%29
เพิ่มเติม
http://www.martinfowler.com/articles/continuousIntegration.html
http://guide.agilealliance.org/guide/ci.html
https://www.ibm.com/developerworks/rational/library/continuous-integration-agile-development/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น