อ่านประมาณ 6 นาที
ระดับเริ่มต้น
หมวด: DevOps
อ้างอิง: GitHub Blog — GitHub Copilot app for Beginners: Run several agents at once
เมื่อเอเจนต์ช่วยเขียนโค้ดทำงานได้นานขึ้นโดยไม่ต้องคอยดู คำถามถัดไปคือจะให้มันทำหลายงานพร้อมกันได้อย่างไรโดยไม่ทับกัน บทความสำหรับผู้เริ่มต้นจาก GitHub อธิบายหลักการที่ทำให้เซสชันของเอเจนต์แยกจากกันด้วย Git worktree และแนะนำวิธีเริ่มจากงานเล็กสองงานก่อน
หลักการเดียวที่ต้องเข้าใจ: แต่ละเซสชันมีสำเนาโค้ดของตัวเอง
ปัญหาที่คนมักกลัวเมื่อให้เอเจนต์สองตัวทำงานในโปรเจกต์เดียวกันคือการแก้ไฟล์ทับกัน บทความอธิบายว่าเครื่องมือแก้ปัญหานี้ด้วย Git worktree ซึ่งเป็นความสามารถมาตรฐานของ Git ที่ให้เช็กเอาต์หลายสาขาไว้ในหลายโฟลเดอร์พร้อมกันจากคลังเดียว เอเจนต์แต่ละตัวจึงทำงานบนสำเนาโค้ดและสาขาของตัวเอง มีบริบทของตัวเอง และไม่เห็นการเปลี่ยนแปลงระหว่างทางของอีกตัว
ผู้เขียนเปรียบเทียบกับร้านซักผ้าหยอดเหรียญ แต่ละเครื่องมีการตั้งค่าของตัวเอง ไม่ต้องรอเครื่องแรกเสร็จก่อนจึงเริ่มเครื่องที่สอง และผ้าไม่ปนกัน ภาพเปรียบเทียบนี้ช่วยให้คนที่ยังไม่คุ้นกับแนวคิดสาขาและ worktree เข้าใจได้ทันทีว่าทำไมงานถึงไม่ชนกัน
ตัวอย่างสามงานที่รันพร้อมกัน
บทความสาธิตด้วยคลังตัวอย่างร้านขายของเล่นสมมติ โดยเปิดสามเซสชันพร้อมกัน เซสชันแรกสร้างฟีเจอร์เรียงลำดับสินค้า เซสชันที่สองตรวจสอบการเข้าถึงของหน้าเว็บ และเซสชันที่สามรันชุดทดสอบ ทั้งสามเดินหน้าไปโดยอิสระ ผู้ใช้สลับดูความคืบหน้าของแต่ละเซสชันได้โดยไม่ต้องอธิบายงานซ้ำ และแต่ละเซสชันจบลงด้วยการเปลี่ยนแปลงในสาขาของตัวเองที่รวมกลับได้เป็นชิ้น ๆ
ข้อสังเกตที่ควรเสริมจากประสบการณ์ของทีมงานคืองานที่เหมาะจะรันขนานคืองานที่แตะไฟล์คนละชุด เช่น ฟีเจอร์ใหม่กับการตรวจสอบ หรือการเขียนเอกสารกับการทดสอบ ถ้าสองงานต้องแก้ไฟล์เดียวกัน การแยก worktree จะกันไม่ให้ทับกันระหว่างทางก็จริง แต่ตอนรวมสาขากลับจะเจอความขัดแย้งอยู่ดี จึงควรแบ่งงานตามขอบเขตของโค้ดตั้งแต่ต้น
เริ่มอย่างไรให้ไม่ล้ม
คำแนะนำของผู้เขียนเรียบง่าย คือเริ่มจากงานเล็กสองงานที่ทำพร้อมกัน ไม่ใช่ห้างานใหญ่ เพื่อให้ได้สัมผัสจังหวะของการสลับดู การตรวจผล และการรวมสาขา ก่อนขยายจำนวน สิ่งที่มักถูกมองข้ามคือภาระของการตรวจทาน เพราะเอเจนต์สามตัวผลิตการเปลี่ยนแปลงสามชุดที่คนต้องอ่านทั้งหมด ความเร็วในการสร้างจึงถูกจำกัดด้วยความเร็วในการตรวจของทีม
สิ่งที่ทีมไทยควรเตรียมก่อนใช้จริง
สำหรับทีมพัฒนาในไทยที่รับงานหลายลูกค้า การรันเอเจนต์ขนานเป็นวิธีเพิ่มปริมาณงานโดยไม่เพิ่มคน แต่ต้องมีสองอย่างรองรับ หนึ่งคือชุดทดสอบอัตโนมัติที่เชื่อถือได้ เพราะเมื่อมีการเปลี่ยนแปลงหลายชุดเข้ามาพร้อมกัน การทดสอบคือด่านเดียวที่จับความขัดแย้งเชิงพฤติกรรมที่การรวมโค้ดสำเร็จมองไม่เห็น สองคือกติกาการรวมสาขาที่ชัด เช่น รวมทีละสาขาแล้วรันทดสอบซ้ำ ไม่รวมพร้อมกันทั้งหมด
และตามที่ทีมงานเคยสรุปจากข่าวเรื่องไฟล์ตั้งค่า Git ที่ถูกดัดแปลง เอเจนต์ที่รันคำสั่ง Git เองในหลาย worktree ควรทำงานในสภาพแวดล้อมที่จำกัดสิทธิ์ ไม่ใช่บนเครื่องที่มีคีย์ของลูกค้าทุกรายวางอยู่ การได้ปริมาณงานเพิ่มไม่ควรแลกมาด้วยพื้นผิวโจมตีที่กว้างขึ้นโดยไม่รู้ตัว
สรุปสาระสำคัญ หลักการเดียวที่ต้องเข้าใจ: แต่ละเซสชันมีสำเนาโค้ดของตัวเอง ตัวอย่างสามงานที่รันพร้อมกัน เริ่มอย่างไรให้ไม่ล้ม
แหล่งอ้างอิง เรียบเรียงจาก GitHub Blog — GitHub Copilot app for Beginners: Run several agents at once —
อ่านบทความต้นฉบับ ภาพปก: GitHub Blog · ลิขสิทธิ์ภาพเป็นของเจ้าของต้นฉบับ ใช้ประกอบการรายงานพร้อมอ้างอิงแหล่งที่มา
มีคำถามเพิ่มเติมเกี่ยวกับบทความนี้? เขียนหาเราได้ที่
info@smart-cyber-tech.com
บริการที่เกี่ยวข้องจากทีมงาน Smart Cyber Tech
แบ่งปันบทความนี้:
LINE
Facebook
X
คัดลอกลิงก์
ปรึกษาทีมของเรา