# โค้ด

> ให้ Dvina เขียนโค้ดในโปรเจ็กต์บนคอมพิวเตอร์ของคุณ ตรวจสอบทุกการเปลี่ยนแปลง แล้วคอมมิตและเปิดคำขอ Pull Request จากแชต

Dvina เขียนโค้ดในโปรเจ็กต์บนคอมพิวเตอร์ของคุณ โดยมีโน้ต บทสนทนา และเหตุผลประกอบอยู่ในบริบท คุณบอกสิ่งที่ต้องการ ตรวจสอบสิ่งที่ Dvina เปลี่ยนแปลง แล้วส่งงานได้ในแอปเดียวกับที่คุณใช้ทำอย่างอื่น

## ก่อนเริ่มต้น

โค้ดเป็นส่วนหนึ่งของแอป Dvina บนเดสก์ท็อปสำหรับ Mac, Windows และ Linux ไม่ต้องติดตั้งอะไรเพิ่ม คุณต้องมี Dvina บนคอมพิวเตอร์อย่างน้อยหนึ่งเครื่อง ส่วนอุปกรณ์อื่นทุกเครื่องสามารถเริ่มงานและติดตามงานได้

หากต้องการแอปเดสก์ท็อป ดู [ดาวน์โหลดและติดตั้ง Dvina](/docs/use-dvina/get-started/install)

## เปิดโปรเจ็กต์

โปรเจ็กต์คือโฟลเดอร์บนคอมพิวเตอร์ของคุณ ซึ่งอาจเป็นที่เก็บโค้ดหรือโฟลเดอร์ทั่วไปก็ได้

1. ในแอปเดสก์ท็อป เปิด Dock แล้วเลือกแถวโปรเจ็กต์ (**โปรเจ็กต์**)
2. เลือก **เปิด…** เพื่อเลือกโฟลเดอร์หรือที่เก็บโค้ด หรือเลือก **โปรเจ็กต์ใหม่…** เพื่อสร้างโฟลเดอร์ใหม่บนคอมพิวเตอร์เครื่องนี้

เมื่อสร้างโปรเจ็กต์ใหม่ ให้เปิด **สร้างที่เก็บ Git** เพื่อเก็บประวัติทุกการเปลี่ยนแปลงไว้ คุณจึงสามารถเลิกทำการแก้ไขของ Dvina ได้

แชตจะทำงานในโปรเจ็กต์ที่คุณเลือก หากเป็นโปรเจ็กต์โค้ด Dock จะแสดงบรานช์ของโปรเจ็กต์ด้วย

## บอกงานที่ต้องการ

อธิบายสิ่งที่คุณต้องการ เช่น "ทำให้การส่งออก CSV ใช้วันที่ที่ถูกต้อง" Dvina จะทำงานนั้นเป็นทาสก์บนคอมพิวเตอร์ของคุณ และคุณสามารถคุยต่อหรือเริ่มทาสก์เพิ่มเติมได้ หลายทาสก์สามารถทำงานในที่เก็บโค้ดเดียวกันและตกลงกันเองได้ว่าทาสก์ใดจะคอมมิตก่อน

ก่อนเขียนโค้ด Dvina จะอ่านโปรเจ็กต์พร้อมบริบทที่เกี่ยวข้อง โดยค้นหาแชตและไฟล์ที่ผ่านมาของคุณเพื่อให้เข้าใจเหตุผลประกอบ อีกทั้งยังทำตาม AGENTS.md หรือ CLAUDE.md ในโปรเจ็กต์ของคุณด้วย

## ตรวจสอบการเปลี่ยนแปลง

คำตอบของแต่ละทาสก์จะมาพร้อมการเปลี่ยนแปลงในการ์ดที่ใช้ชื่อทาสก์ และแสดงสถานะ **พร้อมให้ตรวจสอบ**

- **ดูสิ่งที่เปลี่ยนแปลง:** เลือก **การเปลี่ยนแปลง** เพื่อดูการเปลี่ยนแปลงของแต่ละไฟล์ในแผงด้านข้าง ส่วน **ไฟล์** ให้คุณเรียกดูโปรเจ็กต์ได้
- **ย้อนกลับหนึ่งรอบ:** ใต้คำตอบที่เปลี่ยนแปลงไฟล์ เลือกบรรทัดที่ระบุจำนวนไฟล์ที่เปลี่ยนแปลง แล้วเลือก **ย้อนกลับ** และยืนยัน **ย้อนกลับรอบนี้หรือไม่?** ไฟล์จะกลับไปเป็นเหมือนก่อนรอบนั้น โดยการเปลี่ยนแปลงที่ทำหลังจากนั้นจะยังคงอยู่

## คอมมิตและเปิดคำขอ Pull Request

1. ในการ์ดของทาสก์ เลือก **คอมมิต**
2. **คอมมิตการเปลี่ยนแปลง** จะแสดงรายการไฟล์ที่จะคอมมิตในบรานช์ของคุณ พร้อม **ชื่อเรื่อง** และ **ข้อความ** ที่แนะนำ เลือก **คอมมิต** ขั้นตอนนี้จะยังไม่พุชอะไร
3. หากต้องการเปิดคำขอ Pull Request ให้เลือก **พุชและสร้าง PR** Dvina จะพุชบรานช์ปัจจุบันก่อน แล้วจึงเปิดคำขอ Pull Request โดยไม่รวมไฟล์ที่ยังไม่ได้คอมมิต

คำขอ Pull Request จะใช้บัญชี Git ที่คุณลงชื่อเข้าใช้เอง Dvina จะเปิดคำขอนี้บน GitHub หรือ GitLab ส่วนบริการโฮสต์อื่นจะเปิดหน้าสร้างคำขอ Pull Request ของบริการนั้นในเบราว์เซอร์ของคุณ เมื่อเสร็จแล้ว เลือก **ดู PR**

## การอนุมัติ

การบิลด์และการทดสอบจะทำงานได้ทันที ส่วนการลบไฟล์ การพุช การเปลี่ยนแปลงฐานข้อมูล การปรับใช้ และทุกอย่างที่เกี่ยวข้องกับข้อมูลลับจะรอให้คุณอนุมัติก่อน การ์ดจะบอกเหตุผล เช่น **เรียกใช้คำสั่งนี้หรือไม่?** พร้อมข้อความ **ลบไฟล์** หรือ **เปลี่ยนแปลงฐานข้อมูล** แล้วให้คุณเลือก **อนุญาต** หรือ **ปฏิเสธ** ผู้ดูแลระบบของคุณกำหนดได้ว่าจะให้ขออนุมัติทุกครั้งมากน้อยแค่ไหน

> [!IMPORTANT]
> จะไม่มีการพุชจนกว่าคุณจะอนุมัติ โปรเจกต์ของคุณเป็นโฟลเดอร์ในคอมพิวเตอร์ และเมื่อใช้ Git คุณจะย้อนกลับการแก้ไขทุกอย่างที่ Dvina ทำได้

## ทดสอบบนเครื่องจำลอง

ในแอปเดสก์ท็อป Dvina สามารถลองใช้แอปของคุณบนคอมพิวเตอร์เครื่องนี้ได้แบบเดียวกับที่ผู้ใช้ของคุณจะใช้งาน ไม่ว่าจะในเบราว์เซอร์ ใน iOS Simulator บน Mac หรือใน Android Emulator บน Mac, Windows หรือ Linux

1. เปิด Dock แล้วเลือกแถวที่ระบุว่า **อุปกรณ์**
2. ใต้ **อุปกรณ์นี้** ให้เลือก **เบราว์เซอร์**, **iOS Simulator** หรือ **Android Emulator**

หน้าต่างจะเปิดในแผงด้านข้าง เครื่องจำลองที่ปิดอยู่จะเริ่มทำงานเมื่อคุณเปิดหน้าต่าง หากต้องการใช้เครื่องอื่น ให้เลือก **เลือกอุปกรณ์** ที่ด้านบนของหน้าต่าง อุปกรณ์แต่ละเครื่องจะแสดงระบบที่ใช้และสถานะว่า **กำลังทำงาน** หรือ **ปิดอยู่**

หากต้องการแสดงหรือซ่อนเบราว์เซอร์ ให้กด <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd> บน Mac หรือ <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> บน Windows และ Linux ขณะที่ Dvina ทำงานในหน้าต่างที่คุณไม่ได้ดูอยู่ แถว **อุปกรณ์** จะมีจุดแสดง

### อนุญาตให้ Dvina ใช้อุปกรณ์

ครั้งแรกที่ Dvina ใช้เครื่องจำลอง จะมีคำถามขออนุญาต เช่น **อนุญาตให้ Dvina ใช้ iPhone 17 Pro หรือไม่?** เนื่องจาก Dvina มองเห็นหน้าจอของอุปกรณ์ได้ จึงไม่ควรลงชื่อเข้าใช้บัญชีจริงของคุณบนอุปกรณ์นั้น เลือก **อนุญาต** หรือ **ปฏิเสธ** อุปกรณ์จะจำคำตอบของคุณไว้ จึงไม่ถามซ้ำในแชทอื่น จนกว่าคุณจะอนุญาต หน้าต่างจะแสดงตัวเลือก **อนุญาตให้ Dvina ใช้อุปกรณ์นี้**

ขณะที่ Dvina ทำงาน หน้าต่างจะแสดงข้อความ **Dvina กำลังใช้อุปกรณ์นี้** และแชทจะแสดงภาพจากอุปกรณ์แบบสด เลือก **ดูแบบขยาย** เพื่อดูภาพที่ใหญ่ขึ้น การส่ง การชำระเงิน และการลบบนอุปกรณ์จะรอให้คุณอนุมัติทุกครั้ง

หากต้องการใช้อุปกรณ์ด้วยตัวเอง ให้เลือก **ควบคุมเอง** การแตะและการกดแป้นของคุณจะส่งไปยังอุปกรณ์ และคุณสามารถกด **หน้าหลัก** รวมถึง **ย้อนกลับ** และ **แอปล่าสุด** บน Android ได้ เมื่อเสร็จแล้ว ให้เลือก **คืนการควบคุม** แล้ว Dvina จะทำงานต่อ

### ตั้งค่า iOS Simulator

หากยังไม่ได้ตั้งค่า iOS Simulator เมื่อเลือกแถวของเครื่องจำลองนี้ รายการตรวจสอบ **ตั้งค่า iOS Simulator** จะเปิดขึ้น แต่ละขั้นตอนจะถูกทำเครื่องหมายว่าเสร็จแล้วโดยอัตโนมัติเมื่อทำเสร็จ แม้ว่าคุณจะทำจากที่อื่นก็ตาม

1. **ติดตั้ง Xcode:** เลือก **เปิด App Store** Xcode ใช้ได้ฟรีและมีขนาดประมาณ 7 GB เมื่อติดตั้งเสร็จ ให้เปิดหนึ่งครั้ง
2. **เลือก Xcode:** เลือก **คัดลอกคำสั่ง** แล้วเรียกใช้ใน Terminal คำสั่งนี้จะขอรหัสผ่านของคุณ Dvina จึงจะไม่เรียกใช้ให้คุณ
3. **เพิ่มเครื่องจำลอง iOS:** ใน Xcode ไปที่ Settings › Components แล้วดาวน์โหลด iOS หรือเรียกใช้คำสั่งใน Terminal
4. **สร้างอุปกรณ์:** เลือก **สร้าง iPhone** ขั้นตอนนี้ไม่มีการดาวน์โหลด

### ตั้งค่า Android Emulator

หากยังไม่ได้ตั้งค่า Android Emulator เมื่อเลือกแถวของเครื่องจำลองนี้ รายการตรวจสอบ **ตั้งค่าเครื่องจำลอง Android** จะเปิดขึ้น

1. **ติดตั้ง Android Studio:** เลือก **ดาวน์โหลด Android Studio** โปรแกรมนี้จะติดตั้งสิ่งที่เครื่องจำลองต้องใช้ในการทำงาน เมื่อติดตั้งเสร็จ ให้เปิดหนึ่งครั้ง
2. **เพิ่มเครื่องจำลองและเครื่องมือแพลตฟอร์ม:** เรียกใช้คำสั่งในเทอร์มินัล หรือเพิ่มใน Android Studio › SDK Manager
3. **เปิดการเร่งด้วยฮาร์ดแวร์:** บน Windows และ Linux ให้เรียกใช้คำสั่งด้วยตัวเอง เพราะต้องใช้รหัสผ่านของคุณหรือสิทธิ์ผู้ดูแลระบบ จากนั้นออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้งบน Linux หรือรีสตาร์ทบน Windows สำหรับ Mac ไม่ต้องทำอะไรในขั้นตอนนี้
4. **เพิ่มอิมเมจระบบ:** เรียกใช้คำสั่งในเทอร์มินัล หรือเพิ่มอิมเมจใน Android Studio › SDK Manager ไฟล์ดาวน์โหลดมีขนาดใหญ่
5. **สร้างเครื่องจำลอง:** เลือก **สร้างเครื่องจำลอง** ขั้นตอนนี้ไม่มีการดาวน์โหลด

หากผู้ดูแลระบบของคุณปิดการใช้เครื่องจำลองไว้ แถวเหล่านี้จะแสดงข้อความ **ผู้ดูแลระบบของคุณปิดไว้**

## ทำงานได้จากทุกที่

สั่งงานในแชตจากโทรศัพท์หรือเว็บได้เลย Dvina จะทำงานในโปรเจกต์บนคอมพิวเตอร์ของคุณ แล้วรอให้คุณตรวจสอบการเปลี่ยนแปลง โดยคอมพิวเตอร์ต้องเปิดอยู่และเปิด Dvina ไว้

## ใช้เมื่อใด

- คุณกำลังพัฒนาซอฟต์แวร์ที่ใช้งานจริง และต้องการให้มีบริบททั้งหมดประกอบการทำงาน ทั้งบันทึก การตัดสินใจ และบทสนทนาจากเดือนที่แล้ว
- คุณต้องการให้งานแก้ไขเสร็จระหว่างที่คุณไม่อยู่ที่โต๊ะทำงาน
- คุณต้องการให้ทำการเปลี่ยนแปลงหลายอย่างพร้อมกัน โดยแต่ละอย่างพร้อมให้ตรวจสอบ

## เคล็ดลับ

- **เขียนกติกาการทำงานของคุณไว้ให้ชัดเจน** ระบุวิธีทำงานของคุณไว้ใน AGENTS.md หรือ CLAUDE.md แล้ว Dvina จะทำตาม
- **ทดสอบบนโทรศัพท์** กำลังสร้างแอปอยู่ใช่ไหม? Dvina สามารถทดสอบแอปใน iPhone simulator หรือ Android emulator โดยแตะใช้งานแบบเดียวกับผู้ใช้ของคุณ ดู [ทดสอบบน simulator หรือ emulator](#test-on-a-simulator-or-emulator)
- **คุณไม่ใช่นักพัฒนาใช่ไหม?** หากต้องการสร้างแอปและหน้าเว็บที่ใช้งานได้ ให้ใช้ [สร้าง](/docs/use-dvina/features/create) แทน

## ที่เกี่ยวข้อง

- [โปรเจกต์](/docs/use-dvina/features/projects)
- [งาน](/docs/use-dvina/features/tasks)
- [การใช้คอมพิวเตอร์](/docs/use-dvina/features/computer-use)
- [ติดตั้ง](/docs/use-dvina/get-started/install)
