กำไร:
- ความสามารถในการรับรู้และตรวจสอบว่า AI อาจสร้าง API ปลอม รหัสที่ไม่ปลอดภัย และเนื้อหาที่มีลิขสิทธิ์
- ความสามารถในการจัดการการใช้งาน AI ภายในขอบเขตการรักษาความลับของซอร์สโค้ด ข้อมูลส่วนบุคคล และนโยบายองค์กร
- การทำความเข้าใจว่าความรับผิดชอบสูงสุดในการปฏิบัติตามใบอนุญาต ความปลอดภัย และจริยธรรมยังคงเป็นของวิศวกร
การสอบโมดูล
1. ในฐานะวิศวกรคอมพิวเตอร์ เมื่อทำงานกับเครื่องมือสร้างโค้ด AI ความรับผิดชอบสูงสุดในข้อใดต่อไปนี้ควรคงอยู่กับมนุษย์เสมอ
- A) การอนุมัติขั้นสุดท้ายเกี่ยวกับความถูกต้อง การรักษาความปลอดภัย และการทบทวนและการทดสอบโค้ดที่นำไปใช้จริง ✔
- B) การสร้างโครงกระดูกโค้ดแรกสำหรับฟังก์ชัน
- C) จัดทำรายการข้อเสนอแนะสำหรับชื่อตัวแปร
- D) การเตรียมข้อความร่างสำหรับความคิดเห็นของโค้ด
คำอธิบาย: เอไอ; สามารถเพิ่มความเร็วให้กับงานต่างๆ เช่น โครงสร้างโค้ด แบบร่างการทดสอบ และเอกสารประกอบ อย่างไรก็ตาม เป็นความรับผิดชอบของวิศวกรที่จะต้องตรวจสอบ ทดสอบ และอนุมัติโค้ดที่สร้างขึ้นเพื่อให้แน่ใจว่าถูกต้อง ปลอดภัย และเป็นไปตามข้อกำหนด และเพื่อนำไปใช้จริง สิ่งนี้ไม่สามารถมอบหมายให้กับ AI ได้หากไม่มีการตรวจสอบโดยอิสระ
2. AI ได้สร้างฟังก์ชันสำหรับคุณและดูเหมือนว่าจะทำงานในเส้นทางที่มีความสุข ขั้นตอนที่ดีที่สุดก่อนที่จะนำไปผลิตคืออะไร?
- A) เนื่องจากฟังก์ชันนี้ดูเหมือนว่าจะใช้งานได้ ให้นำมันเข้าสู่การใช้งานจริงโดยตรง
- B) ตรวจสอบพฤติกรรมโดยการเขียนและรันการทดสอบหน่วยขนาดเล็กที่มี Edge Case ✔
- C) เพียงแค่ดูจำนวนบรรทัดของฟังก์ชัน
- D) ทำให้ชื่อของฟังก์ชันมีคำอธิบายมากขึ้น
คำอธิบาย: การปรากฏตัวในการทำงานไม่ได้หมายความว่าถูกต้อง การเขียนและการเรียกใช้การทดสอบหน่วยขนาดเล็กที่ครอบคลุม Edge Case เช่น อินพุตว่าง ศูนย์ ลบ ค่าที่มีขนาดใหญ่มาก และไม่ตรงกันจะตรวจสอบพฤติกรรมที่แท้จริงของฟังก์ชันโดยไม่ต้องย้ายไปยังสภาพแวดล้อมจริง
3. AI แนะนำวิธีการที่เรียกว่า 'array.sortStable()' ซึ่งไม่มีในภาษาของคุณและอธิบายอย่างชัดเจน การดำเนินการที่ถูกต้องอันดับแรกที่ต้องทำคืออะไร?
- A) ใช้วิธีการโดยตรงเพราะ AI ดูมั่นใจ
- B) กำหนดวิธีการด้วยตนเองและใช้ชื่อของมันให้ตรงกันทุกประการ
- C) การตรวจสอบการมีอยู่ของวิธีการจากเอกสารอย่างเป็นทางการของภาษา/ห้องสมุด ✔
- D) ปิดคำเตือนคอมไพเลอร์และดำเนินการต่อ
คำอธิบาย: โมเดลภาษาสามารถสร้างชื่อไลบรารี แพ็คเกจ หรือวิธีการที่ไม่มีอยู่จริงได้ (ภาพหลอน) API ที่นำเสนอแต่ละรายการควรได้รับการตรวจสอบทุกคำโดยเทียบกับเอกสารอย่างเป็นทางการและปัจจุบันของภาษาหรือห้องสมุด ถ้าไม่รวมอยู่ในเอกสารก็ไม่ควรใช้
4. คุณต้องการวางซอร์สโค้ดที่เป็นความลับของบริษัทของคุณและคีย์ API ที่ฝังไว้ในเครื่องมือ AI สาธารณะแล้วขอความช่วยเหลือ วิธีใดคือแนวทางที่ถูกต้องที่สุด?
- A) การวางโค้ดเช่นเดียวกับคีย์ API เพื่อความรวดเร็ว
- B) แค่ลบชื่อบริษัทและแบ่งปันอย่างอื่นก็เพียงพอแล้ว
- C) แชร์โค้ดแล้วขอให้ AI ลบออก
- D) การลบความลับและตรรกะที่ซ่อนอยู่และลดปัญหาให้เป็นตัวอย่างที่เป็นตัวแทนหรือการใช้เครื่องมือของสถาบัน ✔
คำอธิบาย: ซอร์สโค้ดลับและข้อมูลประจำตัว (คีย์ API, รหัสผ่าน, สตริงการเชื่อมต่อ); มีความเสี่ยงทั้งในด้านความลับและความปลอดภัยของบริษัท จำเป็นต้องดึงความลับและตรรกะทางธุรกิจที่ซ่อนอยู่ออก และลดปัญหาให้เหลือเพียงตัวอย่างที่ไม่เปิดเผยตัวตน/เป็นตัวแทน หรือใช้เครื่องมือการแบ่งปันระดับองค์กร/ที่ไม่ใช่ข้อมูล
5. AI กล่าวว่าความซับซ้อนของฟังก์ชันการค้นหาที่เขาเขียนคือ O(n); แต่มีสองลูปซ้อนกันในโค้ด พฤติกรรมทางวิศวกรรมที่ถูกต้องคืออะไร?
- A) วิเคราะห์โค้ดด้วยตนเองและแยกความซับซ้อนด้วยตนเอง แล้ววัดหากจำเป็น ✔
- B) ยอมรับ O(n) และดำเนินการต่อเนื่องจาก AI กล่าว
- C) สมมติว่าจำนวนรอบไม่เกี่ยวข้องกับประสิทธิภาพการทำงาน
- D) เพียงเปลี่ยนชื่อของฟังก์ชัน
คำอธิบาย: ความซับซ้อนของเวลา (Big-O) แสดงให้เห็นว่าจำนวนการดำเนินการเพิ่มขึ้นอย่างไรเมื่ออินพุตเพิ่มขึ้น โดยปกติแล้ว 2 ลูปที่ซ้อนกันจะหมายถึง O(n^2) การกล่าวอ้างความซับซ้อนของ AI ควรได้รับการตรวจสอบโดยการวิเคราะห์โค้ดด้วยตนเอง และการวัดด้วยอินพุตที่เพิ่มขึ้นหากจำเป็น การอาศัยข้อเรียกร้องทำให้เกิดสมมติฐานที่ผิดพลาดในการปฏิบัติงาน
6. AI สร้างโค้ดที่แทรกอินพุตของผู้ใช้ลงในแบบสอบถาม SQL โดยตรงโดยการเชื่อมข้อความเข้าด้วยกัน ปัญหาหลักและแนวทางแก้ไขที่ถูกต้องคืออะไร?
- ก) ไม่มีปัญหา; การรวมข้อความเป็นวิธีที่เร็วที่สุด
- B) มีความเสี่ยงของการฉีด SQL; ควรใช้แบบสอบถามแบบกำหนดพารามิเตอร์ (คำสั่งที่เตรียมไว้) ที่แยกอินพุต✔
- C) เพียงแปลงแบบสอบถามเป็นตัวพิมพ์ใหญ่ก็เพียงพอแล้ว
- D) การเขียนแบบสอบถามให้สั้นลงจะช่วยแก้ปัญหาได้
คำอธิบาย: การเพิ่มข้อมูลเข้าของผู้ใช้โดยตรงลงในข้อความสืบค้นจะสร้างช่องโหว่ในการแทรก SQL ผู้โจมตีสามารถแก้ไขแบบสอบถามด้วยการป้อนข้อมูล วิธีแก้ไขที่ถูกต้องคือการใช้แบบสอบถามแบบกำหนดพารามิเตอร์ (คำสั่งที่เตรียมไว้) ที่แยกอินพุตออกจากข้อความแบบสอบถาม นี่เป็นหนึ่งในข้อผิดพลาดด้านความปลอดภัยที่พลาดบ่อยที่สุดในโค้ด AI
7. คุณมีเวลาจำกัดในการตรวจสอบโค้ดที่ AI สร้างขึ้น ประเด็นใดควรจัดลำดับความสำคัญได้ดีที่สุด?
- A) เฉพาะรายละเอียดรูปแบบ เช่น การเยื้องและการเว้นวรรค
- B) เฉพาะความยาวของชื่อตัวแปร
- C) ความถูกต้องเชิงตรรกะ ช่องโหว่ และพฤติกรรมของ Edge Case ✔
- D) เฉพาะจำนวนบรรทัดทั้งหมดของไฟล์เท่านั้น
คำอธิบาย: ความเสี่ยงสูงสุดในการตรวจสอบโค้ด ปัญหาเหล่านี้คือปัญหาที่ก่อให้เกิดอันตรายร้ายแรง เช่น ข้อผิดพลาดเชิงตรรกะ ช่องโหว่ด้านความปลอดภัย และการรั่วไหลของข้อมูลที่เป็นความลับ ปัญหารูปแบบและสไตล์ได้รับการแก้ไขด้วยเครื่องมืออัตโนมัติ ความสนใจหลักของมนุษย์ควรมุ่งเน้นไปที่ความแม่นยำ ความปลอดภัย และพฤติกรรม Edge Case
8. คุณต้องการให้ AI แก้จุดบกพร่อง ข้อมูลใดจะช่วยให้ AI ค้นหาสาเหตุได้ดีที่สุด
- A) แค่พูดว่า 'โค้ดใช้งานไม่ได้ แก้ไขมัน'
- B) เพียงระบุชื่อไฟล์
- C) เพียงพูดผลลัพธ์ที่คาดหวังโดยไม่มีข้อความแสดงข้อผิดพลาด
- D) ระบุข้อความแสดงข้อผิดพลาดแบบเต็ม การติดตามสแต็ก รหัสที่เกี่ยวข้อง และตัวอย่างการทำซ้ำขั้นต่ำ ✔
คำอธิบาย: เพื่อให้การแก้ไขจุดบกพร่องมีประสิทธิภาพ จำเป็นต้องแจ้งข้อความแสดงข้อผิดพลาดแบบเต็ม การติดตามสแต็ก ข้อมูลโค้ดที่เกี่ยวข้อง และตัวอย่างที่เล็กที่สุดที่สามารถทำซ้ำได้ซึ่งก่อให้เกิดข้อผิดพลาดแก่ AI ข้อความที่คลุมเครือว่า 'ใช้งานไม่ได้' บังคับให้ AI เดาและให้คำแนะนำแบบครอบคลุม
9. การทดสอบหน่วยทั้งหมดที่ผลิตโดย AI ผ่านการทดสอบครั้งแรก ความเสี่ยงใดที่ไม่ควรมองข้ามในสถานการณ์นี้?
- A) การทดสอบอาจยืนยันสถานะปัจจุบันของโค้ด แต่ไม่ใช่พฤติกรรมที่เกิดขึ้นจริง/ที่คาดหวัง ✔
- B) รหัสไม่มีข้อผิดพลาดอย่างแน่นอนเนื่องจากผ่านการทดสอบทั้งหมด
- C) รับประกันคุณภาพหากจำนวนการทดสอบมีขนาดใหญ่
- ง) การผ่านการทดสอบพิสูจน์ว่าความคุ้มครองครบถ้วน
คำอธิบาย: การทดสอบอาจตรวจสอบพฤติกรรมปัจจุบัน (อาจเป็นข้อผิดพลาด) ของโค้ด ไม่ใช่พฤติกรรมที่ตั้งใจไว้ หรืออาจไม่มีข้อยืนยันที่มีความหมายใด ๆ และผ่านเสมอไป หากต้องการดูว่าการทดสอบกำลังตรวจสอบความคาดหวังที่แท้จริง จำเป็นต้องทำลายโค้ดอย่างมีสติและยืนยันว่าการทดสอบเปลี่ยนเป็นสีแดง
10. AI ได้สร้างบล็อกโค้ดสำเร็จรูปสำหรับปัญหาให้คุณ คุณสงสัยว่าโค้ดอาจถูกคัดลอกแบบคำต่อคำจากโครงการโอเพ่นซอร์ส แนวทางใดคือแนวทางที่ถูกต้อง?
- A) การใช้ลิขสิทธิ์โดยไม่ต้องคิดเพราะโค้ดใช้งานได้
- B) ตรวจสอบแหล่งที่มา/ใบอนุญาตของรหัส เขียนใหม่หากจำเป็น และปฏิบัติตามนโยบายองค์กร ✔
- C) เพียงเปลี่ยนชื่อตัวแปรและพิจารณาปัญหาที่ได้รับการแก้ไข
- D) สมมติว่าใบอนุญาตเกี่ยวข้องกับบริษัทขนาดใหญ่เท่านั้น
คำอธิบาย: AI สามารถทำซ้ำรหัสที่มีลิขสิทธิ์/ได้รับอนุญาตในข้อมูลการฝึกอบรมแบบคำต่อคำ การละเมิดใบอนุญาตในผลิตภัณฑ์เชิงพาณิชย์ก่อให้เกิดความเสี่ยงทางกฎหมายที่ร้ายแรง จำเป็นต้องตรวจสอบแหล่งที่มาและใบอนุญาตของรหัส เขียนใหม่ด้วยคำพูดของคุณเองหากจำเป็น และปฏิบัติตามนโยบายการออกใบอนุญาตของสถาบัน
11. AI แนะนำให้คุณเปลี่ยนไปใช้สถาปัตยกรรมไมโครเซอร์วิสสำหรับโปรเจ็กต์ของคุณทันที แนวทางทางวิศวกรรมที่เหมาะสมที่สุดเมื่อประเมินข้อเสนอนี้คืออะไร
- A) แบ่งระบบทั้งหมดออกเป็นไมโครเซอร์วิสทันทีเนื่องจาก AI แนะนำ
- B) สมมติว่าไมโครเซอร์วิสเป็นตัวเลือกที่ดีที่สุดเสมอ
- C) ประเมินข้อเสนอตามความต้องการที่แท้จริง ปริมาณงาน โครงสร้างทีม และยอดคงเหลือบวก-ลบ ✔
- D) การตัดสินใจขึ้นอยู่กับความนิยมของสถาปัตยกรรมเท่านั้น
คำอธิบาย: การตัดสินใจทางสถาปัตยกรรมขึ้นอยู่กับบริบท ไมโครเซอร์วิสเพิ่มมูลค่าให้กับความต้องการ เช่น ขนาดและการแยกทีม แต่มาพร้อมกับต้นทุน เช่น ความซับซ้อนในการปฏิบัติงาน การดีบักแบบกระจาย และต้นทุน ประเมินข้อเสนอตามความต้องการที่แท้จริง ปริมาณงาน โครงสร้างทีม และความสมดุลระหว่างข้อดีและข้อเสีย คำแนะนำทั่วไปไม่ควรปฏิบัติตามแบบสุ่มสี่สุ่มห้า
12. AI สร้างเอกสาร README และ API ที่มีประสิทธิภาพสำหรับโค้ดของคุณ แต่จุดสิ้นสุดและพารามิเตอร์บางอย่างไม่ตรงกันในโค้ด พฤติกรรมที่ถูกต้องคืออะไร?
- A) การเผยแพร่เอกสารตามที่เป็นอยู่เนื่องจากข้อความคล่องแคล่ว
- B) เพียงแก้ไขชื่อเรื่องและปล่อยให้ส่วนที่เหลือเป็นไปตามที่เป็นอยู่
- C) การเพิ่มเอกสารเข้าคลังสินค้าโดยไม่ต้องอ่าน
- D) เปรียบเทียบจุดสิ้นสุดและพารามิเตอร์แต่ละรายการกับโค้ดจริง และแก้ไขจุดปลายและพารามิเตอร์ที่ไม่ตรงกัน ✔
คำอธิบาย: เอกสารควรสะท้อนถึงโค้ดจริงที่ถูกต้อง เอกสารที่ไม่ถูกต้องจะผลักดันให้นักพัฒนาที่อ่านเอกสารไปใช้อย่างไม่ถูกต้อง จุดสิ้นสุด พารามิเตอร์ และค่าที่ส่งคืนทั้งหมดควรได้รับการตรวจสอบเทียบกับโค้ดจริง และควรแก้ไขความไม่ตรงกัน
13. วิธีการป้อนข้อมูลใดที่เหมาะกับเอาต์พุตคุณภาพสูงสุดเมื่อขอโค้ดจาก AI
- A) ระบุภาษา/เวอร์ชัน สัญญาอินพุต-เอาท์พุต ข้อจำกัด และสถานการณ์ข้อผิดพลาดอย่างชัดเจน ✔
- B) แค่พูดว่า 'เขียนโค้ดที่ใช้งานได้ให้ฉันหน่อย'
- C) เขียนคำขอที่สั้นที่สุดโดยไม่ต้องให้บริบทใดๆ
- D) เพียงระบุจำนวนโค้ดที่จะมีกี่บรรทัด
คำอธิบาย: พรอมต์อันทรงพลัง; รวมถึงภาษาและเวอร์ชันที่ใช้ สัญญาอินพุต-เอาท์พุต ข้อจำกัดด้านประสิทธิภาพและรูปแบบ เงื่อนไขข้อผิดพลาด และคำสั่ง 'คงอยู่ภายในขอบเขตที่ร้องขอเท่านั้น' คำขอ 'เขียนฟังก์ชันให้ฉัน' แบบไม่มีบริบทนั้นเป็นคำขอทั่วไปและมักจะสร้างโค้ดที่ไม่เหมาะสม
14. AI สร้างการกำหนดค่าสำหรับไปป์ไลน์ CI/CD (การรวม/ปรับใช้อย่างต่อเนื่อง) ของคุณและฝังรหัสผ่านฐานข้อมูลไว้ในข้อความธรรมดา ข้อใดคือการแก้ไขที่ถูกต้อง?
- A) ปล่อยให้รหัสผ่านเป็นข้อความธรรมดาเพราะใช้งานได้
- B) การย้ายความลับออกผ่านตัวแปรสภาพแวดล้อมหรือเครื่องมือการจัดการความลับ โดยไม่ใส่ข้อความธรรมดาในที่เก็บ ✔
- C) ย้ายรหัสผ่านไปที่บรรทัดแสดงความคิดเห็นเท่านั้น
- D) การเปลี่ยนชื่อไฟล์ช่วยแก้ปัญหาได้
คำอธิบาย: การเขียนความลับ เช่น รหัสผ่านและคีย์เป็นข้อความธรรมดาลงในไฟล์คอนฟิกูเรชันมีความเสี่ยงที่การควบคุมเวอร์ชันจะรั่วไหลและการเข้าถึงโดยไม่ได้รับอนุญาต ความลับ; ควรเก็บไว้โดยตัวแปรสภาพแวดล้อมหรือผู้จัดการความลับพิเศษ และไม่ควรเข้าสู่ที่เก็บในรูปแบบข้อความธรรมดา