1. บทนำ
ใน codelab นี้ คุณจะได้เรียนรู้วิธีวางแผนและสร้างแอปพลิเคชันซอฟต์แวร์ด้วยส่วนขยาย Gemini CLI Conductor โดยจะเริ่มจากการสร้างแอปพลิเคชัน "greenfield" ตั้งแต่ต้น จากนั้นจะถือว่าแอปพลิเคชันนี้เป็นโปรเจ็กต์ "brownfield" และทำซ้ำเพื่อเพิ่มการตรวจสอบสิทธิ์และการจัดเก็บข้อมูล
สิ่งที่คุณจะได้ทำ
- ติดตั้ง Gemini CLI และส่วนขยาย Conductor
- สร้างเว็บแอป "วงล้อสุ่ม" ตั้งแต่ต้นโดยใช้ความสามารถในการวางแผนและการติดตั้งใช้งานของ Conductor
- เพิ่มการปรับเปลี่ยนในแบบของคุณลงในแอปพลิเคชันโดยเพิ่มการตรวจสอบสิทธิ์และการจัดเก็บข้อมูลโดยใช้ Firebase
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ส่วนขยาย Conductor เพื่อวางแผน ติดตั้งใช้งาน และตรวจสอบแอปพลิเคชัน "greenfield"
- วิธีใช้ส่วนขยาย Conductor เพื่อเพิ่มฟีเจอร์ลงในแอปพลิเคชัน "brownfield"
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์ เช่น Chrome
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
- ติดตั้ง Node.js แล้ว (แนะนำเวอร์ชัน 18 ขึ้นไป)
- เครื่องมือแก้ไขโค้ดในเครื่อง เช่น Visual Studio Code
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์ Google Cloud
- ในคอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว
เริ่มต้น Cloud Shell
Cloud Shell คือสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud ซึ่งมาพร้อมกับเครื่องมือที่จำเป็น
- คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud
- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ยืนยันการตรวจสอบสิทธิ์โดยทำดังนี้
gcloud auth list - ยืนยันว่าได้กำหนดค่าโปรเจ็กต์แล้ว
gcloud config get project - หากโปรเจ็กต์ไม่ได้ตั้งค่าตามที่คาดไว้ ให้ตั้งค่าดังนี้
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
เปิดใช้ API
เปิดใช้ Firebase Management API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google
gcloud services enable firebase.googleapis.com
เพิ่ม Firebase ลงในโปรเจ็กต์
Firebase CLI ติดตั้งไว้ล่วงหน้าใน Cloud Shell ลงชื่อเข้าใช้ Cloud Shell ด้วยบัญชี Google เดียวกันกับที่ให้สิทธิ์เข้าถึงโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud หากคุณทำงานในเครื่อง ให้ติดตั้ง Firebase CLI โดยทำตามวิธีการ
firebase login
เรียกใช้คำสั่งต่อไปนี้เพื่อเพิ่ม Firebase ลงในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google
firebase projects:addfirebase
หากคุณเรียกใช้ firebase CLI เป็นครั้งแรก ให้ตอบคำถามที่ระบบถาม
ออกจาก Cloud Shell
คุณสามารถปิดหน้าต่าง Cloud Shell ได้ ในส่วนถัดไป เราจะกำหนดค่าสภาพแวดล้อมในเครื่อง
3. ติดตั้ง Gemini CLI และ Conductor ในเครื่อง
ในขั้นตอนนี้ คุณจะต้องเตรียมสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่อง โดยติดตั้ง Gemini CLI และส่วนขยาย Conductor โดยใช้ตัวแก้ไขโค้ดและเทอร์มินัลในเครื่อง
ติดตั้ง Gemini CLI
- ติดตั้ง Gemini CLI เวอร์ชันล่าสุดทั่วโลก โดยใช้ npm ดังนี้
npm install -g @google/gemini-cli - รีสตาร์ทเทอร์มินัล เพื่อให้ระบบเพิ่ม
geminiลงใน PATH - ยืนยันการติดตั้ง ว่าได้ติดตั้ง เวอร์ชันล่าสุด แล้ว
gemini --version - สร้างและเปลี่ยนเป็นไดเรกทอรีโปรเจ็กต์ใหม่: ในส่วนถัดไป เราจะสร้างโปรเจ็กต์ในไดเรกทอรี
picker-wheelสร้างไดเรกทอรีดังกล่าวตอนนี้และเปลี่ยนเป็นไดเรกทอรีนี้mkdir picker-wheel cd picker-wheel - ตรวจสอบสิทธิ์:
- เริ่ม Gemini CLI
gemini - เมื่อระบบถามว่า "คุณเชื่อถือไฟล์ในโฟลเดอร์นี้ไหม" ให้เลือกเชื่อถือโฟลเดอร์ (picker-wheel)
- เมื่อระบบถามว่า "คุณต้องการตรวจสอบสิทธิ์สำหรับโปรเจ็กต์นี้ด้วยวิธีใด" ให้เลือก Vertex AI ทำตามคำแนะนำการตรวจสอบสิทธิ์เพื่อรับคีย์ API ของ Google Cloud และตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_API_KEYใช้เวลาสักครู่เพื่อสำรวจระดับการใช้งานต่างๆ และขีดจำกัดอัตรา API ที่เกี่ยวข้อง
- เริ่ม Gemini CLI
- ออกจาก Gemini CLI: พิมพ์
/quitจากเทอร์มินัล CLI เพื่อสิ้นสุดเซสชัน Gemini CLI ที่ใช้งานอยู่ก่อนดำเนินการต่อ
ติดตั้งส่วนขยาย Conductor
Conductor เป็นส่วนขยาย Gemini CLI แบบโอเพนซอร์สที่ Google สร้างขึ้น ซึ่งช่วยให้ใช้ฟีเจอร์การพัฒนาที่ขับเคลื่อนด้วยบริบท เช่น การวางแผนและการติดตามการติดตั้งใช้งาน
- ติดตั้งส่วนขยาย โดยทำดังนี้
gemini extensions install https://github.com/gemini-cli-extensions/conductor - ยืนยันการติดตั้ง:
- เริ่ม Gemini CLI
gemini - พิมพ์
/conductorแล้วคุณจะเห็นรายการคำสั่ง เช่นsetup,newTrack,implementเป็นต้น
- เริ่ม Gemini CLI
- ออกจาก Gemini CLI: พิมพ์
/quitจากเทอร์มินัล CLI เพื่อสิ้นสุดเซสชัน Gemini CLI ที่ใช้งานอยู่ก่อนดำเนินการต่อ
4. การพัฒนาแบบ Greenfield: วงล้อสุ่ม
เมื่อตั้งค่าสภาพแวดล้อมเรียบร้อยแล้ว คุณจะสร้างแอปพลิเคชันใหม่ตั้งแต่ต้น โดยจะสร้าง "วงล้อสุ่ม" ซึ่งเป็นเว็บแอปขนาดเล็กที่หมุนเพื่อเลือกตัวเลือกแบบสุ่ม
ตั้งค่าบริบทของผลิตภัณฑ์
- ยืนยันว่าคุณอยู่ในไดเรกทอรี
picker-wheelที่คุณสร้างขึ้นในส่วนก่อนหน้า โดยทำดังนี้pwd - เริ่ม Gemini CLI: เริ่มเซสชัน Gemini CLI ใหม่จากไดเรกทอรีโปรเจ็กต์
gemini - เริ่มต้น Conductor: เรียกใช้คำสั่ง setup เพื่อสร้างโครงสร้างโปรเจ็กต์และตั้งค่าสภาพแวดล้อม Conductor
/conductor:setup - ทำตามข้อความแจ้งแบบโต้ตอบ: ข้อความแจ้งแบบโต้ตอบที่คุณเห็นอาจไม่ตรงกับตัวอย่างเหล่านี้ มุ่งเน้นไปที่การออกแบบที่เรียบง่ายเพื่อทำความคุ้นเคยกับเวิร์กโฟลว์ Conductor
- เป้าหมายของผลิตภัณฑ์: เว็บแอปพลิเคชันที่แสดงวงล้อหมุนที่กำหนดค่าได้เพื่อเลือกรายการแบบสุ่มจากรายการ
- กลุ่มเป้าหมาย → บุคคลทั่วไป
- การโต้ตอบ → แตะ/คลิกเพื่อหมุน
- การปรับแต่ง → พื้นฐาน
- แพลตฟอร์ม → เดสก์ท็อปเป็นหลัก
- หลักเกณฑ์ของผลิตภัณฑ์: สร้างอัตโนมัติ
- ชุดซอฟต์แวร์โครงสร้างพื้นฐาน:
- ภาษา → TypeScript/JavaScript - เหมาะสำหรับเว็บแบบ Full-Stack
- ฟรอนท์เอนด์ → Vue.js - อินเทอร์เฟซเว็บที่ใช้งานง่าย
- แบ็กเอนด์ → Express.js - แบ็กเอนด์ Node ที่รวดเร็ว
- ฐานข้อมูล → ไม่มี - ไม่จำเป็นต้องมีฐานข้อมูล
- เวิร์กโฟลว์: มาตรฐาน
- ข้อกำหนดของผลิตภัณฑ์:
- เรื่องราวของผู้ใช้ → ตัวเลือกที่ปรับแต่งได้, แสดงผู้ชนะอย่างชัดเจน
- ฟีเจอร์หลัก → รายการตัวเลือกที่แก้ไขได้, สีแบบสุ่ม
- ข้อจำกัด → ฝั่งไคลเอ็นต์เท่านั้น, ประสิทธิภาพสูง
- ไม่ใช่ฟังก์ชัน → การทดสอบครอบคลุมสูง, TypeScript และ Vue.js, การออกแบบที่ตอบสนองตามอุปกรณ์
conductor/ - เป้าหมายของผลิตภัณฑ์: เว็บแอปพลิเคชันที่แสดงวงล้อหมุนที่กำหนดค่าได้เพื่อเลือกรายการแบบสุ่มจากรายการ
สร้างแทร็กใหม่
"แทร็ก" ใน Conductor แสดงถึงฟีเจอร์หรือหน่วยงาน
- เริ่มแทร็กใหม่ โดยใช้
/conductor:newTrackConductor อาจเสนอแทร็กเริ่มต้นตามบริบทของผลิตภัณฑ์ หรือคุณจะเสนอแทร็กของคุณเองหรือขอให้ Conductor แนะนำแทร็กก็ได้ - ตรวจสอบแผนที่สร้างขึ้น: Conductor จะสร้างไฟล์
index.md,spec.mdและplan.mdภายในconductor/tracks/{track-id}/ใช้เวลาสักครู่เพื่ออ่านไฟล์ดังกล่าว หากทุกอย่างดูดีแล้ว Conductor จะแจ้งให้คุณบันทึกและคอมมิตไฟล์การตั้งค่าเริ่มต้น
ติดตั้งใช้งานแทร็ก
- เริ่มการติดตั้งใช้งาน โดยทำดังนี้
ตอนนี้ Conductor จะดำเนินการตามแผน โดยเขียนโค้ดสำหรับโปรเจ็กต์/conductor:implement - ยืนยันแอปพลิเคชัน: ตลอดระยะเวลาการติดตั้งใช้งาน Conductor จะแจ้งให้คุณทดสอบแอปพลิเคชันด้วยตนเอง เช่น ระบบจะขอให้คุณเปิดเว็บเซิร์ฟเวอร์ในเครื่อง แสดงตัวอย่างแอปพลิเคชันในเบราว์เซอร์ และยืนยันการเปลี่ยนแปลง เมื่อการติดตั้งใช้งานเสร็จสมบูรณ์แล้ว คุณควรเห็นวงล้อสุ่มที่ใช้งานได้
- ตรวจสอบการติดตั้งใช้งาน: ในขั้นตอนสุดท้าย คุณสามารถขอให้ Conductor ตรวจสอบการติดตั้งใช้งานได้ โดยระบบจะตรวจสอบซอร์สโค้ด ซิงค์เอกสารประกอบโปรเจ็กต์ และเก็บแทร็ก
/conductor:review
5. การทำซ้ำแบบ Brownfield: เพิ่มการปรับเปลี่ยนในแบบของคุณ
ตอนนี้คุณจะเปลี่ยนไปเป็นการพัฒนาแบบ "brownfield" โดยจะปรับปรุงเว็บแอปพลิเคชันวงล้อสุ่มจากส่วนก่อนหน้าเพื่อให้ผู้ใช้ที่ลงชื่อเข้าใช้สามารถบันทึกและกู้คืนการกำหนดค่าวางล้อสุ่มได้
สร้างแทร็กการปรับเปลี่ยนในแบบของคุณ
- ในตัวอย่าง "brownfield" ต่อไปนี้ เราจะใช้ Firebase สำหรับการตรวจสอบสิทธิ์และการจัดเก็บข้อมูล ติดตั้งส่วนขยาย Gemini CLI Firebase เพื่อให้ Conductor ใช้งานได้
gemini extensions install https://github.com/firebase/agent-skills - เริ่ม Gemini CLI: เริ่มเซสชัน Gemini CLI ใหม่จากไดเรกทอรีโปรเจ็กต์
gemini - เริ่มแทร็กใหม่ โดยทำดังนี้
/conductor:newTrack "I want users to be able to log in to their accounts and save their picker wheel configurations." - ทำตามข้อความแจ้งแบบโต้ตอบ: ข้อความแจ้งแบบโต้ตอบที่คุณเห็นอาจไม่ตรงกับตัวอย่างเหล่านี้ มุ่งเน้นไปที่การออกแบบที่เรียบง่ายเพื่อทำความคุ้นเคยกับเวิร์กโฟลว์ Conductor
- เป้าหมายของแทร็ก:
- ผู้ให้บริการการตรวจสอบสิทธิ์ → Firebase Auth
- การกำหนดค่าที่บันทึกไว้ → ตัวเลือกวงล้อ
- การจัดเก็บข้อมูล → Firestore
- UI การเข้าสู่ระบบ Firestore → การวางซ้อนแบบโมดัล
conductor/tracks/{track-id} - เป้าหมายของแทร็ก:
- ตรวจสอบแผนที่สร้างขึ้น: ใช้เวลาสักครู่เพื่ออ่านไฟล์
index.md,spec.mdและplan.mdภายในconductor/tracks/{track-id}/ - ติดตั้งใช้งาน: หากทุกอย่างดูดีแล้ว คุณก็เริ่มการติดตั้งใช้งานได้
/conductor:implement - ยืนยัน: โหลดแอปพลิเคชันซ้ำ คุณควรเห็นแอปพลิเคชันที่อัปเดตแล้ว

นี่คือโค้ดที่สมบูรณ์แบบสำหรับการติดตั้งใช้งานอ้างอิง คุณต้องระบุโปรเจ็กต์ Firebase ใน .firebaserc และการกำหนดค่า Firebase ใน firebase.ts เพื่อเริ่มแอปพลิเคชันอย่างถูกต้อง
6. ล้างข้อมูล
หากต้องการหลีกเลี่ยงการเรียกเก็บเงินอย่างต่อเนื่องกับบัญชี Google Cloud ให้ลบทรัพยากรที่สร้างขึ้นระหว่าง codelab นี้
ลบโปรเจ็กต์ Firebase (และโปรเจ็กต์ Google Cloud)
วิธีที่ง่ายที่สุดในการล้างข้อมูลคือการลบโปรเจ็กต์ทั้งหมด
- ในคอนโซล Google Cloud ให้เลือกโปรเจ็กต์ที่สร้างขึ้น
- คลิกลบ
หรือหากต้องการเก็บโปรเจ็กต์ไว้แต่ลบทรัพยากร ให้ทำดังนี้
- ลบฐานข้อมูล Firestore: ไปที่ คอนโซล Firebase > Firestore แล้วลบฐานข้อมูล
- ลบการตรวจสอบสิทธิ์: ไปที่ คอนโซล Firebase > การตรวจสอบสิทธิ์วิธีการลงชื่อเข้าใช้ แล้วปิดใช้ Google
7. ขอแสดงความยินดี
ขอแสดงความยินดี คุณใช้ส่วนขยาย Gemini CLI Conductor เพื่อสร้างเว็บแอปพลิเคชันตั้งแต่ต้นและทำซ้ำด้วยฟีเจอร์ที่ซับซ้อน เช่น การตรวจสอบสิทธิ์และการผสานรวมฐานข้อมูล ได้สำเร็จแล้ว
ขั้นตอนถัดไป
- สำรวจโหมดแผนของ Gemini CLI สำหรับการวางแผนแบบเบา
- สำรวจเพิ่มเติม Gemini CLI