กำไร:
- ความสามารถในการแยกแยะว่าจุดใดที่ปัญญาประดิษฐ์ให้ความเร็วที่แท้จริงในการพัฒนาอุปกรณ์เคลื่อนที่ (โค้ดรูปแบบ ร่าง การเรียนรู้) และจุดใด (สถาปัตยกรรม การอนุญาต ความปลอดภัย การเผยแพร่) การตัดสินใจเป็นหน้าที่ของมนุษย์ ขึ้นอยู่กับระดับความเสี่ยงของงาน
- ความสามารถในการใช้วินัยในการตรวจสอบผลลัพธ์ของปัญญาประดิษฐ์แต่ละรายการผ่านขั้นตอนการคอมไพล์ ทดสอบ และทบทวน
- ความสามารถในการพัฒนานิสัยในการเขียนข้อความแจ้งเตือนที่มีบริบทชัดเจน และปกป้องข้อมูลส่วนบุคคลและรหัสลับโดยไม่ต้องมอบให้กับ AI
การพัฒนาแอปพลิเคชั่นมือถือเป็นหนึ่งในสาขาซอฟต์แวร์ที่มีการแข่งขันสูงที่สุดในโลก เรากำลังพูดถึงผลิตภัณฑ์ที่ทำงานบนอุปกรณ์นับพันล้านเครื่อง ซึ่งวงจรการอัปเดตขึ้นอยู่กับการอนุมัติของร้านค้า และวัดผลอยู่ในกระเป๋าของผู้ใช้ตลอดเวลา ปัญญาประดิษฐ์ (AI — ระบบซอฟต์แวร์ที่สามารถสร้างข้อความ โค้ด และโซลูชันได้เหมือนมนุษย์) ได้เข้าสู่สาขานี้ในสองวิธี: วิธีแรกเป็นตัวช่วยที่เร่งกระบวนการพัฒนา (การสร้างโค้ด การดีบัก การเขียนทดสอบ) และวิธีที่สองในฐานะความสามารถที่ฝังอยู่ในแอปพลิเคชัน (การจดจำรูปภาพบนอุปกรณ์ ผู้ช่วยแชท กลไกการแนะนำ) โมดูลนี้จะสอนทั้งแบบ end-to-end แต่มาตอกย้ำประโยคหนึ่งตั้งแต่เริ่มต้น: AI ไม่ได้แทนที่นักพัฒนามือถือ ขยายประสิทธิภาพและขอบเขต คุณต้องรับผิดชอบต่อรหัสทุกบรรทัดที่ออก ทุกการอนุญาตที่ร้องขอ และทุกธุรกรรมที่ทำกับข้อมูลผู้ใช้
ในหน่วยนี้ เราจะดูว่าจุดไหนที่ AI สร้างมูลค่าที่แท้จริงในการพัฒนาอุปกรณ์เคลื่อนที่ จุดไหนที่ต้องยอมจำนนต่อมนุษย์ วิธีตรวจสอบแต่ละผลลัพธ์ และเหตุใดวินัยและความปลอดภัยความเป็นส่วนตัวจึงไม่สามารถต่อรองได้
AI มีประโยชน์อย่างไรในการพัฒนาอุปกรณ์เคลื่อนที่?
การพัฒนาอุปกรณ์พกพาประกอบด้วยงานที่ทำซ้ำและมีรูปแบบมากมาย: การเขียนโค้ดมุมมอง การตั้งค่าเลเยอร์คำขอเครือข่าย การกำหนดโมเดลข้อมูล การสร้างกรณีทดสอบ การแก้ไขข้อความแสดงข้อผิดพลาด AI สร้างรูปแบบเหล่านี้อย่างรวดเร็ว ในทางตรงกันข้าม การตัดสินใจทางสถาปัตยกรรม การตั้งค่าประสบการณ์ผู้ใช้ ขอบเขตความปลอดภัย และความถูกต้องของตรรกะทางธุรกิจ ถือเป็นโดเมนของมนุษย์
การแบ่งงานออกเป็นสามกลุ่มตามระดับความเสี่ยงจะเป็นประโยชน์:
ประเภทงาน
บทบาทของเอไอ
บทบาทของผู้ชาย
รหัสเทมเพลต (ต้นแบบ), หน้าจอตัวอย่าง, การแปลง
สร้างร่าง เพิ่มความเร็ว
รีวิวบูรณาการ
ตรรกะทางธุรกิจ กระแสข้อมูล การรวม API
ให้คำแนะนำและร่าง
ตรวจสอบ ทดสอบ ตรวจสอบ
สถาปัตยกรรม การขออนุญาต ความปลอดภัย การตัดสินใจออกอากาศ
แสดงรายการตัวเลือกและเหตุผล
ตัดสินใจและรับผิดชอบ
ตารางนี้จะเป็นเข็มทิศของเราตลอดทั้งโมดูล คอลัมน์ด้านขวาจะไม่ถูกส่งมอบให้กับ AI
เคล็ดลับ: คิดว่า AI เป็นเหมือน “เด็กฝึกงานที่เร็วมากแต่ไม่มีประสบการณ์” คุณให้งานที่ชัดเจนแก่เขา อ่านเอกสารของเขา ทดสอบเขา และคุณต้องรับผิดชอบ คุณไม่ได้ส่งรหัสที่ผู้ฝึกงานสร้างไปยังฝ่ายผลิต (สภาพแวดล้อมการทำงานจริง) โดยไม่ได้อ่าน กฎเดียวกันนี้ใช้กับ AI
วินัยในการตรวจสอบ: สามขั้นตอน
ข้อความ AI ลื่นไหลและดูมั่นใจ แต่ความคล่องไม่แม่นยำ บางครั้ง AI ก็เหมาะกับฟังก์ชันห้องสมุดที่ไม่มีอยู่จริง (ซึ่งเรียกว่าภาพหลอน ซึ่งเป็นแบบจำลองที่สร้างสิ่งที่ไม่มีอยู่จริงอย่างมั่นใจ) ต่อไปนี้คือตัวกรองสามขั้นตอนที่นักพัฒนาอุปกรณ์เคลื่อนที่ใช้กับทุกๆ เอาท์พุต AI:
- คอมไพล์และรัน โค้ดคอมไพล์จริงหรือไม่ แอปพลิเคชันเปิดหรือไม่ API ที่แนะนำโดย AI อยู่ใน SDK จริง ๆ หรือไม่ (ชุดพัฒนาซอฟต์แวร์ - ชุดเครื่องมือสำเร็จรูปที่แพลตฟอร์มนำเสนอ)
- ทดสอบเลย ทดสอบพฤติกรรมที่คาดหวังโดยอัตโนมัติหรือด้วยตนเอง “ดูเหมือนว่าจะได้ผล” ยังไม่เพียงพอ ลองใช้กรณี Edge (ข้อมูลไม่ได้ใช้งาน ไม่มีเครือข่าย การอนุญาตถูกปฏิเสธ)
- ทบทวนและให้เหตุผล เข้าใจไหมว่าทำไมถึงเขียนโค้ดแบบนี้? อย่าเผยแพร่รหัสที่คุณไม่เข้าใจ ถาม AI ว่า "บรรทัดนี้ทำอะไร ทำไมถึงต้องใช้" ถาม.
ข้อควรสนใจ: หมายเลขเวอร์ชัน ชื่อไลบรารี และลายเซ็น API ที่ YZ มอบให้อาจเป็นข้อมูลเก่าหรือถูกประดิษฐ์ขึ้น ไม่สามารถทราบเกี่ยวกับการอัปเดตที่เผยแพร่หลังจากวันที่ตัดยอด (วันสุดท้ายที่โมเดลได้รับการฝึก) ตรวจสอบการพึ่งพาที่สำคัญจากเอกสารอย่างเป็นทางการเสมอ (นักพัฒนา Apple, นักพัฒนา Android)
มินิเคสสามอัน
กรณีที่ 1 — การเร่งการพัฒนาหน้าจอ ทีมอีคอมเมิร์ซร่างหน้าจอรายละเอียดผลิตภัณฑ์ด้วยความช่วยเหลือ AI จาก Jetpack Compose (ชุดเครื่องมืออินเทอร์เฟซที่ทันสมัยของ Android) ร่างแรกซึ่งปกติจะใช้เวลา 2 วันจะออกมาใน 3 ชั่วโมง แต่ทีมงานได้รับการทดสอบว่าการจัดรูปแบบราคาที่ AI สร้างขึ้นนั้นทำการปัดเศษเพนนีไม่ถูกต้อง: 19.99 TL ปรากฏเป็น 20 TL บนอุปกรณ์บางตัว หากไม่มีการยืนยัน ข้อผิดพลาดนี้จะยังคงปรากฏอยู่ กำไรนั้นมีอยู่จริง แต่การควบคุมเป็นสิ่งจำเป็น
กรณีที่ 2 — มีอาการประสาทหลอน นักพัฒนาได้รับโค้ดจาก AI เพื่อขออนุญาตระบุตำแหน่งบน iOS AI เสนอฟังก์ชันที่เรียกว่า requestPreciseLocationOnce() ไม่มี API ดังกล่าว สิ่งที่ถูกต้องคือ requestWhenInUseAuthorization() ข้อผิดพลาดในการรวบรวมเปิดเผยสิ่งนี้ทันที บทเรียน: คอมไพเลอร์คือผู้ตรวจสอบ AI ที่ซื่อสัตย์ที่สุด
กรณีที่ 3 — กับดักความเป็นส่วนตัว ทีมหนึ่งวางรายงานข้อผิดพลาดของผู้ใช้ลงใน AI และขอวิธีแก้ไข รายงานประกอบด้วยอีเมลและรหัสอุปกรณ์ของผู้ใช้ นี่หมายถึงการรั่วไหลของข้อมูลส่วนบุคคลไปยังบริการของบุคคลที่สามและเป็นการละเมิดในแง่ของ KVKK (กฎหมายคุ้มครองข้อมูลส่วนบุคคล) วิธีแก้ไข: การล้าง (มาสก์) ฟิลด์ส่วนบุคคลก่อนที่จะให้ข้อมูลแก่ AI
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
ความแตกต่างระหว่างสองพร้อมท์สำหรับงานเดียวกันจะกำหนดคุณภาพของเอาต์พุต
ข้อความเตือนที่อ่อนแอ: "เขียนหน้าจอเข้าสู่ระบบให้ฉัน"
ข้อความแจ้งที่มีประสิทธิภาพ: "สร้างหน้าจอเข้าสู่ระบบโดยใช้ Jetpack Compose สำหรับ Android ข้อกำหนด: - ฟิลด์อีเมลและรหัสผ่าน การตรวจสอบรูปแบบอีเมล รหัสผ่านอย่างน้อย 8 ตัวอักษร - ปุ่ม 'ลงชื่อเข้าใช้' ถูกปิดใช้งานขณะโหลดและแสดงตัวหมุน - ข้อความแสดงข้อผิดพลาดปรากฏเป็นข้อความสีแดงใต้ฟิลด์ - สถาปัตยกรรม MVVM: ระบุใน ViewModel, UI ที่เขียนได้เท่านั้น - Kotlin, วัสดุ 3, minSdk 24เพียงให้รหัส จากนั้นแต่ละส่วนอธิบายใน 1 ประโยค"
พรอมต์ที่สองจะบอกแพลตฟอร์ม เครื่องมือ สถาปัตยกรรม ขอบเขต และรูปแบบเอาต์พุต ไม่มีอะไรให้ AI เดาได้ ดังนั้นจึงมีประโยชน์มากกว่าและง่ายต่อการตรวจสอบผลลัพธ์
เทมเพลตเริ่มต้นที่คัดลอกได้
ใช้เทมเพลตด้านล่างโดยกรอกบริบทของคุณเอง
เทมเพลตบทบาทและบริบท:"คุณเป็นนักพัฒนาอาวุโส [iOS/Android/Flutter] โครงการของฉัน: [ประเภทแอป], แพลตฟอร์มเป้าหมาย [เวอร์ชัน] สถาปัตยกรรม [MVVM/สะอาด] งาน: [สิ่งที่คุณต้องการ] ข้อจำกัด: [ภาษา ไลบรารี เวอร์ชัน] ขั้นแรกสรุปแผนเป็น 3 รายการ จากนั้นสร้างโค้ด จากนั้นแสดงรายการความเสี่ยง"
เทมเพลตการตรวจสอบโค้ด:"ตรวจสอบโค้ด [ภาษา] ต่อไปนี้ ระบุ:1) จุดบกพร่องและความเสี่ยงในการขัดข้อง2) ปัญหาเกี่ยวกับหน่วยความจำ/ประสิทธิภาพ3) ช่องโหว่ด้านความปลอดภัยและความเป็นส่วนตัว4) ตำแหน่งที่สามารถเขียนได้ง่ายขึ้น หมายเลขบรรทัดสำหรับแต่ละรายการและแนะนำการแก้ไข [รหัส]"
เทมเพลตการเรียนรู้: "อธิบาย [แนวคิด เช่น async/await ใน Swift] จากมุมมองของนักพัฒนามือถือ ยกตัวอย่างง่ายๆ พูดถึงข้อผิดพลาดทั่วไป 3 ข้อ และชี้ให้เห็นว่าเมื่อใดฉันไม่ควรใช้มัน"
เทมเพลตการยืนยัน: "คุณแนะนำ API/ฟังก์ชันนี้: [ชื่อ] ตรวจสอบ: มี SDK เวอร์ชันใด ต้องใช้สิทธิ์ใดบ้าง และเลิกใช้แล้วหรือไม่ หากไม่แน่ใจ ให้พูดว่า 'ไม่แน่ใจ ให้ตรวจสอบในเอกสารอย่างเป็นทางการ'"
ข้อผิดพลาดทั่วไป
- วางผลลัพธ์โดยไม่อ่าน ข้อผิดพลาดที่พบบ่อยที่สุดและอันตรายที่สุด แม้ว่าเรียบเรียงแล้วตรรกะก็อาจจะผิด
- การให้ข้อมูลที่เป็นความลับแก่ AI คีย์ API ข้อมูลผู้ใช้ ใบรับรองการลงนามจะไม่ถูกวางลงในคำขอ
- ไม่ตรวจสอบเวอร์ชันและ API AI อาจแนะนำ API ที่ล้าสมัยหรือสร้างขึ้น เอกสารอย่างเป็นทางการมีคำกล่าวสุดท้าย
- ปล่อยให้การตัดสินใจทางสถาปัตยกรรมเป็นหน้าที่ของ AI “สถาปัตยกรรมที่ดีที่สุดคืออะไร?” คำตอบสำหรับคำถามนั้นขึ้นอยู่กับโครงการของคุณ AI ให้คำตอบทั่วไป คุณจะรู้บริบท
- เขียนพรอมต์ยักษ์อันหนึ่ง พยายามแก้ไขงานที่ซับซ้อนด้วยคำขอเดียว จะปลอดภัยกว่าถ้าแบ่งเป็นขั้นตอนเล็กๆ ที่ตรวจสอบได้
- การขออนุญาต “เผื่อไว้” บางครั้ง AI จะเพิ่มการอนุญาตเกินความจำเป็น การอนุญาตทุกครั้งมีความเสี่ยงต่อการอนุมัติร้านค้าและความไว้วางใจของผู้ใช้
โดยสรุป
AI มีบทบาทสองประการในการพัฒนาอุปกรณ์เคลื่อนที่: ผู้ช่วยที่เร่งกระบวนการพัฒนา และความสามารถในการฝังแอปพลิเคชัน โค้ดรูปแบบช่วยเพิ่มความเร่งอย่างมากสำหรับการร่างและการเรียนรู้ แต่การตัดสินใจทางสถาปัตยกรรม ความปลอดภัย การอนุญาต และการตีพิมพ์เป็นเรื่องของมนุษย์ แต่ละเอาต์พุตได้รับการตรวจสอบผ่านสามขั้นตอน: คอมไพล์รัน ทดสอบ และทบทวน ข้อมูลที่เป็นความลับและข้อมูลส่วนบุคคลจะไม่ถูกมอบให้กับ AI แพลตฟอร์มความต้องการที่แข็งแกร่งระบุเครื่องมือ ข้อจำกัด และรูปแบบผลลัพธ์ไว้อย่างชัดเจน วินัยนี้เป็นพื้นฐานสำหรับส่วนที่เหลือของโมดูล
งานสมัคร
เลือกหน้าจอจากโปรเจ็กต์มือถือของคุณเอง (หรือ "แอปจดบันทึก" ในจินตนาการ) เขียนพรอมต์สำหรับหน้าจอนั้นโดยใช้ "เทมเพลตบทบาทและบริบท" ด้านบน ลองรวบรวมโค้ดที่สร้างโดย AI ลงในโปรเจ็กต์และส่งผ่านตัวกรองการยืนยันสามขั้นตอน: คอมไพล์หรือไม่ ทำงานตามที่คาดไว้ คุณเข้าใจทุกบรรทัดหรือไม่ จดบันทึกจุดบกพร่องหรือ API ปลอมที่คุณพบอย่างน้อยหนึ่งรายการ
รายการตรวจสอบ
- [ ] ฉันพิจารณาแล้วว่างานจะจัดอยู่ในกลุ่มใดในสามกลุ่มโดยพิจารณาจากระดับความเสี่ยง
- [ ] ฉันระบุแพลตฟอร์ม เวอร์ชัน สถาปัตยกรรม และข้อจำกัดในคำขอ
- [ ] ฉันรวบรวมผลลัพธ์แล้วรัน
- [ ] ฉันทดสอบกรณีจำกัด (ข้อมูลไม่ได้ใช้งาน ไม่มีเครือข่าย การอนุญาตถูกปฏิเสธ)
- [ ] ฉันแน่ใจว่าฉันเข้าใจทุกบรรทัด
- [ ] ฉันไม่ได้ให้ข้อมูลส่วนบุคคลหรือคีย์ส่วนตัวแก่ AI
- [ ] ฉันตรวจสอบ API ที่สำคัญจากเอกสารอย่างเป็นทางการ