กำไร:
- ความสามารถในการแม็ปความสมบูรณ์ของตัวแก้ไข ผู้ช่วยแชท เอเจนต์ CLI และหมวดหมู่อัตโนมัติของ CI กับงาน
- ความสามารถในการปรับระดับความเป็นอิสระตามความเสี่ยง และใช้ระเบียบวินัย 'วางแผนก่อน' กับตัวแทน CLI
- ความสามารถในการแปลงการใช้ AI ให้เป็นระบบทีมโดยอาศัยเครื่องมือที่ได้รับการตรวจสอบ ช่องทางการตรวจสอบ ความโปร่งใส และความรับผิดชอบ
จนถึงตอนนี้ เราได้เรียนรู้การใช้ AI ในแต่ละงานแล้ว (การเขียนโค้ด การทบทวน การทดสอบ และการดีบัก) ในหน่วยสุดท้ายนี้ เราได้รวบรวมชิ้นส่วนต่างๆ ไว้ด้วยกัน: ทำความรู้จักกับเครื่องมือเข้ารหัส AI ต่างๆ จับคู่เครื่องมือที่เหมาะสมกับงานที่เหมาะสม และฝังเครื่องมือเหล่านั้นไว้ในโฟลว์การพัฒนารายวันของคุณอย่างปลอดภัย ตั้งแต่ตัวแก้ไขไปจนถึงการควบคุมเวอร์ชัน จากไปป์ไลน์ CI/CD ไปจนถึงการกำกับดูแลทีม เป้าหมายคือการเปลี่ยนนิสัย “ถาม AI เป็นครั้งคราว” ที่ยุ่งวุ่นวายให้กลายเป็นระบบการทำงานที่สม่ำเสมอและตรวจสอบได้
เราครอบคลุมประเภทยานพาหนะด้วยหมวดหมู่ที่เป็นกลาง (ชื่อผลิตภัณฑ์เฉพาะมีการเปลี่ยนแปลงอย่างรวดเร็ว สิ่งสำคัญคือหมวดหมู่นั้นสำคัญ) แต่ละหมวดหมู่มี "จุดที่น่าสนใจ" และโปรไฟล์ความเสี่ยง ความเชี่ยวชาญคือการรู้ว่าจะมอบอิสระให้กับงานใดได้มากเพียงใด
หมวดหมู่ของเครื่องมือเข้ารหัส AI
1. เสร็จสิ้นในโปรแกรมแก้ไข ปลั๊กอินที่แนะนำบรรทัด/บล็อกเมื่อคุณพิมพ์ใน IDE ของคุณ (สภาพแวดล้อมการพัฒนาที่คุณเขียนโค้ด) จุดที่น่าสนใจ: ความเร็วในสตรีม, โค้ดสำเร็จรูป ความเสี่ยง: บริบทแคบ ยอมรับข้อเสนอแนะโดยไม่ต้องคิด
2. ผู้ช่วยแชท/แผงด้านข้าง อินเทอร์เฟซการแชทที่ฝังอยู่ใน IDE พร้อมการมองเห็นเป็นส่วนหนึ่งของโค้ดเบสของคุณ จุดที่น่าสนใจ: คำอธิบาย การรีแฟคเตอร์ การทดสอบ การวิเคราะห์จุดบกพร่อง ความเสี่ยง: จำกัดตามบริบทที่คุณให้ ต้องมีการตรวจสอบ
3. ตัวแทน CLI (เครื่องมือตัวแทน) เครื่องมือที่เรียกใช้จากบรรทัดคำสั่ง สามารถอ่านและแก้ไขไฟล์หลายไฟล์ เรียกใช้คำสั่ง และดำเนินการงานหลายขั้นตอนได้ด้วยตัวเอง จุดที่น่าสนใจ: การเปลี่ยนแปลงหลายไฟล์ งานซ้ำ งานประเภท "เพิ่มคุณสมบัตินี้" ความเสี่ยง: ความเป็นอิสระสูง = ผลกระทบสูง; หากปล่อยทิ้งไว้โดยไม่เลือก จะทำให้เกิดการเปลี่ยนแปลงในวงกว้างและยากต่อการตรวจสอบ
4. การรวมสาย/ระบบอัตโนมัติ บอท CI (Continuous Integration) ที่แสดงความคิดเห็นเกี่ยวกับ PR โดยอัตโนมัติ แนะนำการทดสอบ หรือสร้างบันทึกการเปลี่ยนแปลง จุดที่น่าสนใจ: เครื่องกรองตัวแรกที่ไม่เมื่อยล้าและสม่ำเสมอ ความเสี่ยง: เสียงรบกวน, ความมั่นใจที่ผิดพลาด
คำแนะนำ: เมื่อความเป็นอิสระเพิ่มขึ้น การควบคุมก็ควรเพิ่มขึ้นเช่นกัน เนื่องจากการแก้ไขเสร็จสิ้นมีขนาดเล็กและเกิดขึ้นทันที จึงได้รับการดูแลเล็กน้อย การแก้ไขหลายไฟล์ของเอเจนต์ CLI ควรได้รับการตรวจสอบเช่นเดียวกับการประชาสัมพันธ์ของมนุษย์ (หากไม่ระมัดระวัง)
ทีละขั้นตอน: การฝัง AI ลงในเวิร์กโฟลว์
- แมปงานกับเครื่องมือ การเพิ่มในสตรีมเล็กน้อย → เสร็จสิ้น; เข้าใจ/สร้างใหม่/ทดสอบ → แชท; หลายไฟล์งานซ้ำ ๆ →ตัวแทน CLI; ตัวกรองแรกต่อเนื่อง → การรวม CI
- เลือกระดับความเป็นอิสระ ตัวแทนมีอิสระแค่ไหน? คำแนะนำแบบอ่านอย่างเดียวหรือการแก้ไขไฟล์ + การดำเนินการคำสั่ง? ปรับตามความเสี่ยง.
- บำรุงบริบท แนะนำกฎของโครงการอย่างถาวร (สไตล์ สถาปัตยกรรม "สิ่งที่ไม่ควรทำ") ลงในเครื่องมือ ใช้ไฟล์คำแนะนำโครงการแทนการอธิบายซ้ำแล้วซ้ำอีก
- ดูแลรักษาประตูตรวจสอบ การเปลี่ยนแปลงของ AI ก็เหมือนกับการเปลี่ยนแปลงของมนุษย์ โดยต้องผ่านการรวบรวม การทดสอบ การตรวจสอบ และการอนุมัติจากผู้เชี่ยวชาญ (หากสำคัญ) AI การเปิด PR ไม่ผ่านการอนุมัติ
- วัดและปรับ ดูสิ่งที่เร่งขึ้นจริง ๆ โดยที่ภาระการแก้ไขเพิ่มขึ้น ตัดการใช้งานที่ไม่ได้ผลออกไป
มินิเคสสามอัน
กรณีที่ 1 — เอเจนต์ CLI จัดการการเปลี่ยนชื่อหลายไฟล์ ทีมหนึ่งจะเปลี่ยนชื่อแนวคิดที่กระจายอยู่ในไฟล์ 60 ไฟล์ พวกเขามอบหมายงานให้กับตัวแทน CLI โดยขอแผนก่อน อนุมัติแผน จากนั้นจึงทำการเปลี่ยนแปลงและดำเนินการชุดทดสอบทั้งหมด เจ้าหน้าที่ 3 พลาดกรณี Edge ในไฟล์ การทดสอบจับได้แก้ไขแล้ว งานซึ่งใช้เวลาประมาณ 3 ชั่วโมงด้วยตนเอง และเสร็จสิ้นภายใน 50 นาทีภายใต้การควบคุมดูแล
กรณีที่ 2 — เอกราชที่ไม่ถูกตรวจสอบกลับได้รับผลกระทบ นักพัฒนารายอื่นบอกตัวแทนให้ "ปรับปรุงโมดูลนี้" และเผยแพร่ เอเจนต์แก้ไขไฟล์ 18 ไฟล์และเพิ่มการขึ้นต่อกันสองรายการ การเปลี่ยนแปลงมีวงกว้างมากจนไม่สามารถตรวจสอบได้และต้องถอนออก บทเรียน: ให้ขอบเขตที่แคบแก่ตัวแทน เกณฑ์การยอมรับที่ชัดเจน และมีวินัยในการวางแผนก่อน-ทำในภายหลัง
กรณีที่ 3 — บอทตรวจสอบ CI กลายเป็นตัวกรองแรก ทีมหนึ่งสร้างบอทที่แสดงความคิดเห็นเกี่ยวกับการตรวจสอบ AI อัตโนมัติบน PR เมื่อบอทตรวจพบการละเว้นการตรวจสอบที่เป็นโมฆะและปัญหารูปแบบ ผู้ตรวจสอบที่เป็นมนุษย์ก็สามารถอุทิศเวลาให้กับตรรกะทางธุรกิจได้ อย่างไรก็ตาม ทีมงานแสดงให้เห็นชัดเจนว่าบอทไม่ได้ให้ "การอนุมัติ": ยังคงต้องมีการอนุมัติจากมนุษย์อย่างน้อยหนึ่งรายการ เพื่อลดเสียงรบกวน พวกเขาจึงปรับเรือให้เหลือเฉพาะเสียงรบกวนที่มีความเข้มข้นสูง/ปานกลางเท่านั้น
เทมเพลตที่คัดลอกได้สี่แบบ
ระเบียบวินัย "วางแผนก่อน" สำหรับตัวแทน CLI:
งาน: {{งานที่ชัดเจนและแคบ}}เกณฑ์การยอมรับ: {{ผลลัพธ์ที่วัดได้}}ข้อจำกัด: ใช้งานได้เฉพาะบน {{the following directory/files}}; เพิ่มการพึ่งพาใหม่ ขั้นแรกนำเสนอแผนโดยไม่มีการเปลี่ยนแปลง: ไฟล์ไหน สิ่งที่จะเปลี่ยนแปลง และการทดสอบใดที่จะรัน รอให้ฉันอนุมัติแผน จากนั้นนำไปใช้ทีละขั้นตอน โดยทำการทดสอบในแต่ละขั้นตอน
ไฟล์คำสั่งโครงการ (บริบทถาวรของเครื่องมือ):
กฎถาวรสำหรับเครื่องมือ AI ในโปรเจ็กต์นี้:- ภาษา/เวอร์ชัน: {{...}} รูปแบบ: {{...}}.- ข้อจำกัดทางสถาปัตยกรรม: {{e.g. ทิศทางระหว่างเลเยอร์}}.- ไม่เคย: การฝังความลับ โดยใช้ข้อมูลการผลิต {{ห้องสมุดต้องห้าม}}.- ทุกการเปลี่ยนแปลงจะต้องสามารถทดสอบได้ การเปลี่ยนลายเซ็น API สาธารณะโดยไม่ต้องถาม - เมื่อมีข้อสงสัยให้หยุดและถาม
การตัดสินใจทำแผนที่เครื่องมืองาน:
ฉันกำหนดงานต่อไปนี้: {{task}} ฉันควรใช้เครื่องมือระดับใด: (ก) แก้ไขให้เสร็จสิ้น (ข) ผู้ช่วยแชท (ค) ตัวแทน CLI (ง) ระบบอัตโนมัติของ CI เขียนเหตุผล ความเสี่ยง และระดับความเป็นอิสระที่แนะนำของคุณ (เป็นเพียงคำแนะนำ / เปลี่ยนไฟล์ / คำสั่งเรียกใช้)
CI ตรวจสอบหลักปฏิบัติของบอท:
ปล่อยให้เฉพาะการค้นพบความรุนแรงสูงและปานกลางเป็นความคิดเห็นในการทบทวน PR การค้นพบแต่ละครั้ง: หมวดหมู่, ความรุนแรง, การแก้ไขที่แนะนำ รวบรวมบันทึกในระดับการตั้งค่าสไตล์ไว้ในความคิดเห็นสรุปเดี่ยวที่แยกจากกัน คุณไม่ยินยอม; ต้องได้รับการอนุมัติจากมนุษย์
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
จุดอ่อน: (ถึงตัวแทน CLI) "ทำให้โมดูลการชำระเงินดีขึ้น"
แข็งแกร่ง: (ถึงตัวแทน CLI) "ทำงานภายใต้ src/Payments/ เท่านั้น งาน: แยกตรรกะการตรวจสอบแบบเรียกซ้ำจากฟังก์ชันการคืนเงิน () ลงในตัวช่วยเดียว พฤติกรรมและลายเซ็นต์จะไม่เปลี่ยนแปลง ขั้นแรกนำเสนอแผนและรอการอนุมัติของฉัน จากนั้นดำเนินการและรันการทดสอบ/การชำระเงิน/ แพ็คเกจ เพิ่มการขึ้นต่อกันใหม่"
เวอร์ชันที่แข็งแกร่งทำให้ขอบเขตแคบลง กำหนดเกณฑ์และข้อจำกัดในการยอมรับ และกำหนดระเบียบวินัย "วางแผนไว้ก่อน" ความต้องการที่คลุมเครือว่า "ทำดีกว่า" คือต้นตอของการเปลี่ยนแปลงอันกว้างใหญ่และไม่สามารถควบคุมได้
คลาสยานพาหนะ
สิ่งที่เขาเก่งที่สุด
เอกราช
น้ำหนักการตรวจสอบ
บรรณาธิการเสร็จสิ้น
การเพิ่มในสตรีมเล็กน้อย
ต่ำ
แสง (อ่านทันที)
ผู้ช่วยแชท
ทำความเข้าใจ ทดสอบ รีแฟคเตอร์
ปานกลาง
ปานกลาง (การตรวจสอบเอาต์พุต)
ตัวแทน CLI
หลายไฟล์แบบเรียกซ้ำ
สูง
หนักมาก (แผน + รีวิวฉบับเต็ม)
ซีไออัตโนมัติ
ตัวกรองแรกต่อเนื่อง
ปานกลาง
ปานกลาง (กฎ + การอนุมัติจากมนุษย์)
การกำกับดูแลทีม: จากทักษะส่วนบุคคลไปจนถึงระบบที่ใช้ร่วมกัน
การใช้ AI อย่างดีเป็นรายบุคคลถือเป็นจุดเริ่มต้น วุฒิภาวะที่แท้จริงคือระบบที่สอดคล้องกันในระดับทีม ระบบนี้อิงตามเสาหลักหลายประการ: รายการเครื่องมือที่ได้รับอนุมัติ (เครื่องมือใดบ้างที่สามารถใช้กับข้อมูลใด — จากหน่วยที่ 10), ประตูการตรวจสอบ (การเปลี่ยนแปลง AI จะต้องผ่านประตูการสร้าง/ทดสอบ/ตรวจสอบเดียวกัน — จากหน่วยที่ 11), ความโปร่งใส (ระบุว่าการเปลี่ยนแปลงที่ขับเคลื่อนด้วย AI ให้การตรวจสอบย้อนกลับหากจำเป็น) และความชัดเจนของความรับผิดชอบ (บุคคลที่ลงนามและรับผิดชอบมีความชัดเจน) กรอบการทำงานนี้จำกัดความเสี่ยงในขณะที่รักษาความเร็วและทำให้แน่ใจว่าสมาชิกในทีมใหม่ทำงานด้วยระเบียบวินัยเดียวกัน
ข้อควรระวัง: ยิ่งเครื่องมือมีความเป็นอิสระสูง โดยเฉพาะเอเจนต์ CLI ที่สามารถแก้ไขไฟล์ รันคำสั่งได้ ยิ่งจำกัดไม่ให้เข้าถึงสภาพแวดล้อมการใช้งานจริง ข้อมูลที่เป็นความลับ และการดำเนินการที่ยากต่อการเปลี่ยนกลับได้ยากยิ่งขึ้น ผูกคำสั่งทำลายล้าง (การลบถาวร การปรับใช้) กับการอนุมัติของมนุษย์
ข้อผิดพลาดทั่วไป
- งานหมายถึงความไม่เข้ากัน กำลังพยายามทำงานหลายไฟล์โดยให้โปรแกรมแก้ไขเสร็จสิ้นหรือมีไฟล์แนบขนาดเล็กที่มีเอเจนต์หนักๆ
- ปล่อยตัวแทน. งานตัวแทนที่ได้รับมอบหมายในขอบเขตที่แคบและไม่มี "การวางแผนไว้ก่อน" จะทำให้เกิดการเปลี่ยนแปลงที่ไม่ได้รับการตรวจสอบ
- คลายประตูการตรวจสอบสำหรับ AI "AI ทำได้แล้ว เดินหน้าต่อไปอย่างรวดเร็ว" เป็นข้อยกเว้นที่อันตรายที่สุด ประตูเหมือนกันสำหรับทุกคน
- ให้บริบทด้วยตนเองทุกครั้ง การไม่เขียนกฎของโครงการลงในไฟล์คำสั่งถาวรจะทำให้เกิดความไม่สอดคล้องกันและซ้ำซ้อน
- เข้าใจผิดว่าการอนุมัติของบอท CI สำหรับการอนุมัติของมนุษย์ บอทคือตัวกรอง ต้องได้รับการอนุมัติจากมนุษย์อย่างมีความรับผิดชอบ
โดยสรุป
เครื่องมือการเขียนโค้ด AI แบ่งออกเป็นสี่ประเภทหลัก: การเติมข้อความให้สมบูรณ์ ผู้ช่วยแชท ตัวแทน CLI และระบบอัตโนมัติของ CI ความชำนาญคือการจับคู่งานกับเครื่องมือที่เหมาะสมและระดับความเป็นอิสระที่เหมาะสม เมื่อความเป็นอิสระเพิ่มขึ้น การควบคุมก็เพิ่มขึ้นเช่นกัน ให้บริบทของโปรเจ็กต์ถาวรแก่เครื่องมือ กำหนดระเบียบวินัย "วางแผนก่อน" สำหรับเอเจนต์หลายไฟล์ และส่งต่อการเปลี่ยนแปลง AI ผ่านประตูการตรวจสอบเดียวกันกับการเปลี่ยนแปลงของมนุษย์ ทักษะส่วนบุคคล แปลงเป็นระบบทีมที่สร้างขึ้นจากรายการเครื่องมือที่ได้รับอนุมัติ ประตูตรวจสอบ ความโปร่งใส และความชัดเจนของความรับผิดชอบ AI เป็นตัวคูณความเร็วจากต้นทางถึงปลายทาง ผู้ที่ลงนามและให้บัญชีถือเป็นบุคคลที่มีความสามารถเสมอ
งานสมัคร
เขียนงานจริงสามงานที่คุณจะทำในสัปดาห์หน้า ใช้เทมเพลต "การตัดสินใจจับคู่งานกับยานพาหนะ" สำหรับแต่ละรายการเพื่อระบุประเภทยานพาหนะและระดับความเป็นอิสระที่คุณจะเลือก จากนั้นรันงานแคบๆ สำหรับตัวแทน CLI (หรือผู้ช่วยแชท) โดยมีระเบียบวินัย "วางแผนก่อน": อนุมัติแผน บังคับใช้ รันการทดสอบ และตรวจสอบการเปลี่ยนแปลงเหมือนกับการประชาสัมพันธ์ของมนุษย์ สุดท้าย ร่าง “กฎการใช้งาน AI” 5 จุดสำหรับทีมของคุณ (เครื่องมือที่ได้รับอนุมัติ กฎข้อมูล ประตูการตรวจสอบ ขีดจำกัดความเป็นอิสระ ความรับผิดชอบ)
รายการตรวจสอบ
- [ ] ฉันสามารถแยกแยะระหว่างหมวดหมู่เครื่องมือการเขียนโค้ด AI และจุดที่น่าสนใจของแต่ละหมวดหมู่ได้
- [ ] ฉันแมปงานกับประเภทยานพาหนะที่ถูกต้องและระดับความเป็นอิสระที่เหมาะสม
- [ ] ฉันให้บริบทโครงการถาวร (ไฟล์คำแนะนำ) แก่เครื่องมือ
- [ ] ฉันใช้ขอบเขตที่แคบและมีระเบียบวินัย "วางแผนก่อน" กับตัวแทน CLI
- [ ] ฉันส่งผ่านการเปลี่ยนแปลงของ AI ผ่านประตูตรวจสอบเดียวกันกับการเปลี่ยนแปลงของมนุษย์
- [ ] ฉันสนับสนุนเครื่องมือที่ได้รับการตรวจสอบ กฎข้อมูล ความโปร่งใส และกรอบความรับผิดชอบในระดับทีม
การสอบโมดูล
1. โมเดลภาษาขนาดใหญ่ที่ซ่อนอยู่ของผู้ช่วยเขียนโค้ดทำอะไรได้บ้างเมื่อสร้างโค้ด
- A) ทำนายรูปแบบความต่อเนื่องที่เป็นไปได้มากที่สุดตามบริบทที่กำหนด ✔
- B) รับประกันผลลัพธ์ที่ถูกต้องโดยการคอมไพล์และรันโค้ดจริง
- C) จะสแกนโค้ดทั่วอินเทอร์เน็ตและคัดลอกโค้ดที่แม่นยำที่สุด
- D) เข้าใจตรรกะของโค้ดเหมือนวิศวกรที่เป็นมนุษย์และเข้าใจเจตนา
ชี้แจง: LLM ไม่ 'เข้าใจ' รหัสเหมือนมนุษย์ มันสร้างความต่อเนื่องที่เป็นไปได้มากที่สุดให้กับบริบทที่กำหนด โดยขึ้นอยู่กับรูปแบบที่เรียนรู้จากกลุ่มข้อความและโค้ดขนาดใหญ่มาก ดังนั้นคุณภาพของผลลัพธ์โดยตรงจึงขึ้นอยู่กับคุณภาพของบริบทและคำสั่งที่คุณให้ และแต่ละผลลัพธ์จะต้องได้รับการตรวจสอบความถูกต้อง
2. คุณจะเรียกมันว่าอะไรเมื่อ AI ผสมผสานฟังก์ชันหรือไลบรารี่ที่ไม่มีอยู่จริงได้อย่างน่าเชื่อ และอะไรคือยาแก้พิษที่แท้จริงเท่านั้น
- A) สิ่งนี้เรียกว่าข้อผิดพลาดในการคอมไพล์ ยาแก้พิษคืออุปกรณ์ที่แข็งแกร่งกว่า
- B) สิ่งนี้เรียกว่าภาพหลอน; ยาแก้พิษคือการตรวจสอบโค้ดและแต่ละ API ที่ใช้✔
- C) สิ่งนี้เรียกว่าการถดถอย ยาแก้พิษคือการรีสตาร์ทโมเดล
- D) สิ่งนี้เรียกว่าบริบทล้น ยาแก้พิษคือการลดพรอมต์ให้สั้นลง
คำอธิบาย: สิ่งนี้เรียกว่าอาการประสาทหลอน และทำให้เกิดข้อบกพร่องที่มีราคาแพงที่สุดในซอฟต์แวร์ ยาแก้พิษที่แท้จริงเพียงอย่างเดียวคือการตรวจสอบ: การยืนยันว่าทุกฟังก์ชัน, API และแพ็คเกจที่ใช้มีอยู่จริงและโค้ดใช้งานได้ น้ำเสียงที่มั่นใจของแบบจำลองไม่ใช่หลักฐานยืนยันความถูกต้อง
3. วิธีใดปรับปรุงคุณภาพและความสม่ำเสมอของเอาต์พุตได้มากที่สุดเมื่อสร้างโค้ดด้วย AI
- ก) ปล่อยโมเดลโดยพูดว่า 'เขียนสิ่งนี้ถึงฉัน' โดยไม่ต้องให้บริบทใดๆ
- B) การเขียนพรอมต์ที่ยาวที่สุดและสวยงามที่สุดเท่าที่จะเป็นไปได้
- C) ระบุและให้ตัวอย่างของสัญญาอินพุต/เอาท์พุต, Edge case, เวอร์ชันและสไตล์ ✔
- D) การรวมโค้ดที่สร้างขึ้นโดยตรงโดยไม่ต้องอ่าน
คำอธิบาย: การกำหนดประเภทอินพุต/เอาท์พุตของฟังก์ชัน (สัญญา) กรณีขอบ ภาษา/เวอร์ชัน และข้อจำกัดด้านสไตล์ และการยกตัวอย่างให้กับแบบจำลองทำให้สามารถเปลี่ยนจากการทำนายไปสู่ความแม่นยำได้ คำขอ 'เขียนสิ่งนี้ถึงฉัน' แบบไร้บริบทจะสร้างโค้ดที่แตกต่างกันในแต่ละครั้ง และมักจะข้ามเคส Edge
4. เมื่อสำรวจโค้ดเบสต่างประเทศด้วย AI ชื่อของฟังก์ชันอาจเป็น 'validateAndSave' แต่การย่อย AI อาจไม่ถูกต้อง แนวทางที่ถูกต้องคืออะไร?
- A) มั่นใจอย่างเต็มที่ในการสรุป AI เนื่องจากชื่อนี้อธิบายได้ในตัว
- B) การเปลี่ยนฟังก์ชั่นโดยตรงโดยไม่ต้องอ่าน
- C) ตัดสินใจโดยดูจากชื่อฟังก์ชัน
- D) ถือว่าคำอธิบาย AI เป็นสมมติฐาน และตรวจสอบการกล่าวอ้างที่สำคัญทีละบรรทัดในโค้ด ✔
คำอธิบาย: AI อาจดูชื่อในโค้ดและบอกคุณว่า 'ดูเหมือนว่ามันกำลังทำอะไรอยู่' แต่ในความเป็นจริงแล้ว ตรรกะอาจแตกต่างกัน (หรือแม้แต่กลับกัน) ดังนั้นคำอธิบายของ AI จึงเป็นสมมติฐาน การกล่าวอ้างที่สำคัญ โดยเฉพาะที่เกี่ยวข้องกับความปลอดภัย อำนาจ หรือกระแสเงิน ควรได้รับการตรวจสอบด้วยสายตาในบรรทัดที่เกี่ยวข้อง
5. อะไรคืออันตรายที่ใหญ่ที่สุดในการพูดว่า 'AI มองแล้ว ชัดเจน' ในการตรวจสอบโค้ดที่ได้รับความช่วยเหลือจาก AI
- A) AI อาจสร้างผลลบลวง; ความผิดพลาดที่พลาดจริงทำให้เกิดความมั่นใจแบบผิดๆ ✔
- B) การตรวจสอบ AI ช้าเกินไปจึงทำให้เสียเวลา
- C) ทีมงานไม่เข้าใจเพราะ AI คอมเมนต์เป็นภาษาอังกฤษเท่านั้น
- D) PR ไม่ได้มาบรรจบกันเพราะ AI ตีความมากเกินไปเสมอ
คำอธิบาย: AI สร้างทั้งผลบวกลวง (แจ้งปัญหาที่ไม่มีอยู่) และผลลบลวง (ไม่มีจุดบกพร่องจริง) ผลลบลวงจะเงียบ ข้อผิดพลาดที่อันตรายที่สุดคือข้อผิดพลาดที่ไม่ได้กล่าวถึงในการรีวิวเลย ดังนั้น AI จึงเป็นตัวกรองแรก ไม่ใช่การอนุมัติ การตัดสินใจรวมเป็นของบุคคลที่รับผิดชอบ
6. อะไรคือกับดักที่ร้ายกาจที่สุดที่เกิดขึ้นเมื่อคุณให้รหัสและการทดสอบการพิมพ์แก่ AI?
- ก) AI จะเขียนการทดสอบมากเกินไปและทำให้โค้ดเบสขยายใหญ่ขึ้นเสมอ
- B) AI ทดสอบพฤติกรรมปัจจุบัน (อาจผิด) ของโค้ดว่า 'ถูกต้อง' และแก้ไขข้อบกพร่อง ✔
- C) AI จะลบโค้ดโดยอัตโนมัติเมื่อเขียนการทดสอบ
- D) AI เขียนการทดสอบไม่เพียงแต่สำหรับเส้นทางที่มีความสุขเท่านั้น แต่ยังรวมถึง Edge case ด้วย
คำอธิบาย: AI มีแนวโน้มที่จะดูโค้ดและเขียนการยืนยันที่ทดสอบพฤติกรรมปัจจุบัน หากรหัสผิดตั้งแต่เริ่มต้น AI จะแก้ไขพฤติกรรมที่ไม่ถูกต้องนี้ว่า "ถูกต้อง" ดังนั้นความคาดหวังของการทดสอบควรเขียนตามกฎที่กำหนด (ข้อกำหนด) ไม่ใช่ตามเอาต์พุตปัจจุบันของโค้ด
7. อะไรเป็นตัวกำหนดความถูกต้องของสมมติฐานมากที่สุดเมื่อทำการดีบักจุดบกพร่องด้วย AI
- A) ข้อความแจ้งนั้นเขียนอย่างสุภาพเพียงใด
- B) มีการถามคำถามซ้ำกี่ครั้ง
- C) คุณภาพของหลักฐานที่มอบให้กับโมเดล: ข้อความแสดงข้อผิดพลาดแบบเต็ม การติดตามสแต็ก อินพุต และพฤติกรรมที่คาดหวัง ✔
- D) โค้ดที่เขียนด้วยธีมสีอะไร?
คำอธิบาย: AI ไม่เห็นข้อผิดพลาดในแบบที่คุณทำ เขารู้เพียงหลักฐานที่คุณมอบให้เขาเท่านั้น เมื่อได้รับข้อความแสดงข้อผิดพลาดแบบเต็ม การติดตามสแต็ก อินพุตทริกเกอร์ และลักษณะการทำงานที่คาดไว้ โมเดลจะระบุความเป็นไปได้ที่แท้จริง หากไม่มีหลักฐานก็จะคาดเดา (ภาพหลอน) และนำคุณไปผิดทาง
8. ขั้นตอนที่สำคัญที่สุดก่อนที่จะมอบบันทึกการผลิตให้ AI วิเคราะห์คืออะไร
- A) วางบันทึกตามที่เป็นอยู่ ครอบคลุมทั้งวัน
- B) แปลงบันทึกเป็นตัวพิมพ์ใหญ่ก่อน
- C) การจัดเรียงบรรทัดบันทึกตามลำดับตัวอักษร
- D) การปกปิดข้อมูลส่วนบุคคลและความลับและให้เฉพาะหน้าต่างที่เกี่ยวข้องเท่านั้น ✔
คำอธิบาย: บันทึกการผลิตดิบประกอบด้วย IP, อีเมล, ID เซสชัน, โทเค็น และบางครั้งเป็นความลับแบบเปิด การติดไว้ในเครื่องมือ AI โดยไม่ปิดบังถือเป็นการละเมิดความเป็นส่วนตัวอย่างร้ายแรง นอกจากนี้ ควรกรองบันทึกไปยังกรอบเวลาที่แคบ แต่ความจำเป็นแรกคือการล้างข้อมูลที่ละเอียดอ่อน
9. ควรทำอย่างไรหาก AI บอกว่ามีเหตุการณ์สองเหตุการณ์เกิดขึ้น 'พร้อมกัน' ในการวิเคราะห์บันทึกและประกาศว่าเหตุการณ์หนึ่งเป็นสาเหตุที่แท้จริง
- A) ไม่สนใจความสัมพันธ์ในฐานะสาเหตุและยืนยันการอ้างสิทธิ์ด้วยหน่วยวัดและรหัส ✔
- B) การยอมรับสาเหตุที่แน่ชัดเพราะ AI สร้างความสัมพันธ์ด้านเวลา
- C) รีสตาร์ทส่วนประกอบที่ถูกกล่าวหาแรกทันที
- D) การลบบันทึกทั้งหมดและรวบรวมอีกครั้ง
คำอธิบาย: ข้อผิดพลาดที่พบบ่อยที่สุดในการวิเคราะห์บันทึกคือความสัมพันธ์ที่สับสนกับสาเหตุ ความสัมพันธ์ด้านเวลาที่ AI สร้างขึ้นเป็นเพียงเบาะแส ไม่ใช่หลักฐาน สาเหตุที่แท้จริงต้องใช้เวลา กลไก และหากเป็นไปได้ จะต้องสามารถทำซ้ำได้ การอ้างสิทธิ์จะต้องได้รับการตรวจสอบความถูกต้องด้วยเมตริกและโค้ด
10. กฎทองที่ไม่สามารถเจรจาต่อรองได้เมื่อปรับโครงสร้างใหม่ด้วย AI คืออะไร และอะไรจะรับประกันได้
- A) รหัสควรสั้นกว่านี้ จำนวนบรรทัดรับประกันสิ่งนี้
- B) ไม่มีการเปลี่ยนแปลงพฤติกรรม การทดสอบที่บันทึกพฤติกรรมปัจจุบันทำให้มั่นใจในสิ่งนี้✔
- C) รหัสมีความคิดเห็นเพิ่มเติม AI รับประกันสิ่งนี้
- D) เขียนไฟล์ทั้งหมดใหม่พร้อมกัน ตัวแทนรับประกันสิ่งนี้
คำอธิบาย: การรีแฟคเตอร์กำลังปรับปรุงโครงสร้างภายในของโค้ดโดยไม่เปลี่ยนพฤติกรรมภายนอก กฎทองคือพฤติกรรมจะคงที่ สิ่งที่ทำให้มั่นใจได้ว่านี่คือการทดสอบ: เทสเน็ตที่บันทึกพฤติกรรมปัจจุบันก่อนการเปลี่ยนแปลงจะได้รับการตั้งค่าและรันหลังจากแต่ละขั้นตอน การปรับโครงสร้างใหม่โดยไม่มี testnet ถือเป็นการพนัน
11. ชั้นใดในการผลิตเอกสารที่ AI ไม่สามารถรู้ได้และเป็นอันตรายหากสร้างขึ้น?
- A) วิธีการรันขั้นตอนการติดตั้ง
- B) รายการพารามิเตอร์ของฟังก์ชัน
- C) การให้เหตุผลว่า 'ทำไม' การตัดสินใจออกแบบจึงเกิดขึ้นเช่นนั้น ✔
- D) รหัสที่เขียนเป็นภาษาอะไร?
คำอธิบาย: AI สามารถแยกเลเยอร์ 'อะไร/อย่างไร' (ฟังก์ชันทำอะไร ตั้งค่าอย่างไร) ออกจากโค้ด แต่ไม่สามารถรู้ได้ว่าเลเยอร์ 'ทำไม' (เหตุผลการออกแบบสำหรับการตัดสินใจ เหตุผลของค่าขีดจำกัด) 'เหตุผล' ที่ถูกสร้างขึ้นมานั้นอันตรายมากกว่าการไม่มีเหตุผล เจ้าของโค้ดต้องเพิ่มเลเยอร์นี้
12. นักพัฒนาควรทำอย่างไรหากต้องการวางไฟล์การกำหนดค่าที่มีคีย์ API แบบสดลงในเครื่องมือ AI ที่ไม่ได้รับการอนุมัติในขณะที่แก้ไขข้อบกพร่องเร่งด่วน
- A) เพื่อความรวดเร็ว ให้วางไฟล์ตามที่เป็นอยู่ จากนั้นจึงลบแชท
- B) เพิ่มบันทึก 'ความลับ' ที่ท้ายไฟล์แล้วส่ง
- C) ปล่อยคีย์ไว้และเปลี่ยนเฉพาะชื่อไฟล์
- D) ลบ/ปกปิดความลับและให้เฉพาะบริบทที่ไม่ละเอียดอ่อนที่จำเป็นเท่านั้น ✔
การเปิดเผยข้อมูล: ความลับ ข้อมูลส่วนบุคคล และทรัพย์สินที่เป็นความลับไม่ควรถูกนำไปใช้โดยวิธีการที่ไม่ได้รับการอนุมัติ ความเร่งด่วนไม่ได้ระงับเส้นสีแดงนี้ วิธีการที่ถูกต้องคือการแยก/ปกปิดความลับก่อน และให้เฉพาะบริบทที่จำเป็นและไม่ละเอียดอ่อนเท่านั้น หากความลับยังคงรั่วไหล สิ่งแรกที่ต้องทำคือบิดกุญแจนั้นทันที
13. รหัสที่สร้างโดย AI ผ่านการทดสอบและทำงานจริง สิ่งนี้พิสูจน์ได้ว่ารหัสนั้นปลอดภัยหรือไม่?
- ก) ไม่; 'การทำงาน' ไม่ได้หมายความว่าปลอดภัย การรักษาความปลอดภัยต้องมีการตรวจสอบสิทธิ์แยกต่างหาก ✔
- ข) ใช่; รหัสที่ผ่านการทดสอบมีความปลอดภัยตามคำจำกัดความ
- ค) ใช่; การเรียกใช้งานจริงจะช่วยขจัดช่องโหว่ทั้งหมด
- ง) ไม่; แต่ความปลอดภัยจะมีความสำคัญก็ต่อเมื่อโค้ดช้าเท่านั้น
ชี้แจง: 'การทำงาน' ไม่เหมือนกับ 'ปลอดภัย' แม้ว่าโค้ดจะมีช่องโหว่ เช่น การแทรก SQL แต่ก็สามารถผ่านการทดสอบและทำงานได้อย่างราบรื่น ช่องโหว่จะถูกเปิดเผยเมื่อผู้โจมตีพบเท่านั้น ดังนั้น นอกเหนือจากความถูกต้องแม่นยำแล้ว การตรวจทานและการสแกนที่เน้นความปลอดภัย เช่น SAST ควรดำเนินการเป็นเลเยอร์ที่แยกต่างหาก
14. วินัยที่ปลอดภัยที่สุดเมื่อมอบหมายงานหลายไฟล์ให้กับเอเจนต์ CLI คืออะไร (เครื่องมืออัตโนมัติที่สามารถแก้ไขไฟล์และรันคำสั่ง)
- A) บอกตัวแทน 'ปรับปรุงโมดูลนี้' และให้อิสระอย่างเต็มที่
- B) ให้ขอบเขตและเกณฑ์การยอมรับที่แคบ โดยขอแผนก่อน อนุมัติ นำไปปฏิบัติทีละขั้นตอน และดำเนินการทดสอบ ✔
- C) รวมการเปลี่ยนแปลงทั้งหมดของตัวแทนโดยตรงโดยไม่ต้องตรวจสอบ
- D) ให้ตัวแทนเข้าถึงสภาพแวดล้อมการใช้งานจริงและข้อมูลที่เป็นความลับได้อย่างไม่จำกัด
คำอธิบาย: เมื่อความเป็นอิสระเพิ่มขึ้น การควบคุมก็ควรเพิ่มขึ้นเช่นกัน ให้ขอบเขตที่แคบและเกณฑ์การยอมรับแก่ตัวแทน ขั้นแรกให้ขอแผนโดยไม่มีการเปลี่ยนแปลง อนุมัติแผน จากนั้นให้ดำเนินการทีละขั้นตอนและดำเนินการทดสอบในแต่ละขั้นตอน โดยจะป้องกันการเปลี่ยนแปลงที่กว้างๆ ตรวจสอบไม่ได้ และจำเป็นต้องย้อนกลับ
15. ใครมีความรับผิดที่เกิดจากรหัสที่สร้างโดย AI ในซอฟต์แวร์ที่มีความสำคัญต่อความปลอดภัย (เช่น การชำระเงินหรือการรับรองความถูกต้อง)
- A) เนื่องจากรหัสมาจาก AI จึงอยู่ในผู้ให้บริการยานพาหนะ
- ข) ถ้า AI ได้รับการพัฒนาเพียงพอก็ไม่มีใครมี ไม่จำเป็นต้องตรวจสอบ
- C) ทีมงาน/วิศวกรผู้ตรวจสอบ ประกอบ และแจกจ่ายรหัส AI ไม่ได้แทนที่ความยินยอม ✔
- D) เฉพาะบุคคลที่เขียนข้อความแจ้งเท่านั้น ไม่ใช่ผู้ที่ตรวจสอบ
คำอธิบาย: AI เป็นตัวคูณความเร็วและตัวสร้างพิมพ์เขียว ไม่สามารถรับผิดชอบได้ ความรับผิดชอบต่อข้อผิดพลาด ช่องโหว่ หรือการละเมิดใดๆ ที่เกิดขึ้นจากโค้ดในการผลิตนั้นขึ้นอยู่กับทีมงานที่ตรวจสอบ รวบรวม และแจกจ่ายโค้ดนั้น ในพื้นที่ที่มีความสำคัญด้านความปลอดภัย เอาท์พุต AI ไม่สามารถทดแทนการตรวจสอบและอนุมัติโดยวิศวกรที่ผ่านการรับรองไม่ว่าในสถานการณ์ใดๆ