วันนี้เราจะมาเล่าเรื่องเกี่ยวกับวิศวกรรมซอฟต์แวร์ที่เรียกว่า "Continuous Integration/Continuous Deployment" (CI/CD) หรือในภาษาไทยคือ "การรวมงานอย่างต่อเนื่อง/การปรับใช้ผลงานอย่างต่อเนื่อง" ในรูปแบบที่เด็ก 8 ขวบยังเข้าใจได้ค่ะ และเราจะได้ดูกันด้วยว่ามันมีประโยชน์อย่างไรในการเขียนโปรแกรมนะคะ
ถ้าหากว่าเราเปรียบโปรแกรมเป็นตัวละครในการ์ตูนที่เราวาดขึ้นมา การทำงานแบบ CI/CD ก็เหมือนเราเป็นนักเขียนการ์ตูนที่ไม่หยุดพัฒนาภาพเรื่องราว และนำเสนอให้เพื่อนๆ ได้ดูทีละหน้าๆ ว่าการ์ตูนกำลังไปในทิศทางไหนบ้าง โดยไม่ต้องรอให้เรื่องจบก่อนถึงจะเปิดให้ดูทั้งเล่ม
เปรียบได้กับการที่เราวาดการ์ตูนเสร็จสักหน้า เราก็จะนำมาเรียบเรียงกับหน้าที่วาดไปแล้ว โดยทำแบบนี้บ่อยๆ ทุกครั้งที่เราวาดภาพใหม่เสร็จก็ตรวจสอบว่าการ์ตูนเล่มนี้ยังคงดีอยู่หรือไม่ หากมีข้อผิดพลาด เช่น ตัวละครที่จะต้องมี 4 นิ้วกลับมี 5 นิ้ว หรือมีสีที่ไม่ตรงกับเดิม เราก็รีบแก้ไขให้ถูกต้องทันที
ตัวอย่างโค้ดง่ายๆ สำหรับ CI:
# สมมติว่านี่คือโค้ดเดิมของเรา
print("Hello, World!")
# เราเพิ่มโค้ดใหม่ลงไป
def say_hello(name):
print(f"Hello, {name}!")
# ตรวจสอบว่าฟังก์ชันทำงานถูกต้องหรือไม่
assert say_hello("EPT") == "Hello, EPT!" # นี่คือส่วนทดสอบของ CI หากมีข้อผิดพลาด มันจะบอกเราทันที
ส่วนด้านนี้เหมือนเราที่วาดการ์ตูนได้ดีแล้ว และตอนนี้พร้อมจะนำไปให้เพื่อนๆ ดูว่าเราวาดส่วนไหนเป็นยังไงบ้างได้ทันที โดยไม่ต้องรอให้ทุกอย่างสมบูรณ์แบบเสียก่อน ทำให้เพื่อนๆ ได้มีโอกาสชมผลงานของเราอย่างรวดเร็วและเราก็ได้รับคำติชมกลับมาเพื่อปรับปรุงค่ะ
ตัวอย่างโค้ดง่ายๆ สำหรับ CD:
# สมมติว่านี่คือโค้ดที่เราพร้อมจะใช้งานจริง
def say_hello(name):
return f"Hello, {name}!"
# ฟังก์ชันนี้ถูกต้องแล้ว เราก็ "ปรับใช้" ให้ผู้ใช้งานได้เรียกใช้งานตามปกติ
print(say_hello("EPT"))
การใช้ CI/CD ในการเขียนโปรแกรมจึงช่วยให้เราเห็นข้อผิดพลาดในตอนเริ่มต้น ไม่ต้องรอนานจนชินกับข้อผิดพลาดนั้นๆ และยังช่วยให้งานของเราถูกนำไปใช้งานได้อย่างรวดเร็ว ไม่ทิ้งให้รอคอยอยู่ในคลังเก็บเป็นเวลายาวนาน นั่นหมายถึงเราจะได้ข้อสรุปที่ดีบ่อยขึ้น และที่ EPT พวกเราก็มีวิธีการสอนที่จะทำให้คุณรู้สึกว่าการเรียนรู้ประเภทนี้นั้นไม่ยากอีกต่อไปค่ะ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: continuous_integration continuous_deployment ci/cd programming software_engineering coding development_process testing automation programming_examples
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com