- สำหรับคนที่ต้องทำงานกับโค้ดเบสขนาดใหญ่ การเขียนโปรแกรมบนแล็ปท็อปอาจเป็นภาระได้
- พัดลมหมุนตลอด, language server หน่วยความจำไม่พอ, และเวลา rebuild ก็นาน
- ใน Zed สามารถเปิดโปรเจ็กต์บนอุปกรณ์ใดก็ได้ผ่าน SSH
- UI ทำงานทั้งหมดบนเครื่องโลคัล มอบกราฟิกที่ลื่นไหลสมบูรณ์แบบที่ 120 เฟรม ขณะที่ language server, งานต่าง ๆ และเทอร์มินัลทำงานบนเซิร์ฟเวอร์ระยะไกล จึงใช้ประโยชน์จากฮาร์ดแวร์คลาวด์ได้
การสร้างสภาพแวดล้อมการพัฒนาแบบระยะไกล
- เพื่อรองรับการแก้ไขโค้ดระยะไกล Zed ได้ดำเนินการปรับเปลี่ยนโครงสร้างพื้นฐานเพื่อรองรับ SSH มาอย่างต่อเนื่อง
- ต้องแก้ปัญหาหลายอย่าง เช่น การคงการเชื่อมต่อ SSH, การตั้งค่าเซิร์ฟเวอร์ระยะไกล, และการผสานรวมฟีเจอร์
- สำหรับการเชื่อมต่อ SSH ใช้การตั้งค่า ControlMaster เพื่อคงการเชื่อมต่อเดียวไว้ต่อโฮสต์แต่ละตัว
- หลังเชื่อมต่อแล้ว จะดาวน์โหลด remote server ที่ตรงกับระบบปฏิบัติการและสถาปัตยกรรม
- remote server ที่คอมไพล์ด้วย
musl ไม่ต้องใช้ dynamic linking จึงทำงานได้แม้บนดิสโทรรุ่นเก่า
- แม้การเชื่อมต่อจะหลุด remote server ก็ยังทำงานต่อ และเมื่อเชื่อมต่อใหม่ language server จะยังคงอยู่ในสถานะที่เริ่มต้นไว้อย่างสมบูรณ์
- การเปลี่ยนแปลงที่ยังไม่ได้บันทึกจะถูกสำรองไว้ในเครื่องโลคัล จึงไม่สูญเสียงาน
การทำงานร่วมกันและโปรเจ็กต์ผ่าน SSH
- การทำให้โปรเจ็กต์ผ่าน SSH ทำงานร่วมกับฟีเจอร์ collaboration ได้เป็นความท้าทาย
- ในการทำงานร่วมกัน 2 คนผ่าน SSH อาจมีอย่างน้อย 4 โหนดเข้ามาเกี่ยวข้อง จึงได้ทดสอบโปรโตคอลการซิงก์สำหรับ collaboration
- มีการแบ่ง
Project ออกเป็นส่วนเชิงตรรกะ เพื่อให้ไคลเอนต์เปิดใช้งานได้ทั้งในโหมด remote และ local ตามบทบาทว่าเป็น collaboration host, SSH host หรือ collaboration guest
- ผ่านการทดสอบใหม่ที่สร้างแต่ละบทบาทและ collaboration server ขึ้นมา เพื่อตรวจสอบว่าการซิงก์ทำงานได้อย่างถูกต้อง
- เมื่อต้องทำโปรเจ็กต์กับเพื่อนหรือเพื่อนร่วมงาน ไม่ว่าโปรเจ็กต์จะอยู่บนแล็ปท็อปหรืออยู่บนอุปกรณ์ที่เข้าถึงได้ผ่าน SSH ก็ถูกจัดการอย่างโปร่งใส
สรุปโดย GN⁺
- Zed มอบสภาพแวดล้อมการพัฒนาที่มีประสิทธิภาพแก่ผู้พัฒนาที่ทำงานกับโค้ดเบสขนาดใหญ่ โดยอาศัยเซิร์ฟเวอร์ระยะไกล
- ฟีเจอร์การพัฒนาแบบระยะไกลผ่าน SSH ช่วยยกระดับประสิทธิภาพด้วยการใช้ฮาร์ดแวร์คลาวด์
- ฟีเจอร์ collaboration รองรับการซิงก์ระหว่างหลายโหนด ทำให้ทำงานร่วมกันได้อย่างราบรื่น
- Zed ใช้งานได้บน macOS และ Linux และมอบประสบการณ์ใหม่ให้แก่นักพัฒนา
- โปรเจ็กต์อื่นที่มีฟีเจอร์คล้ายกันคือ Remote Development Extension ของ Visual Studio Code
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
การเขียนโปรแกรมบน Mac โดยใช้ Zed, SSH Remoting และ Orbstack เป็นสภาพแวดล้อมในฝัน
มีความสงสัยเกี่ยวกับโมเดลรายได้ของ Zed และการเป็นโอเพนซอร์สหรือไม่
ฟีเจอร์พัฒนาแบบรีโมตของ Zed จะติดตั้งและรันไบนารีบนโฮสต์ระยะไกล
ใช้ Zed สำหรับการพัฒนา C, C++, Rust และ Angular และพอใจมาก
เมื่อพัฒนางานข้ามหลายคอมพิวเตอร์ จะใช้ tmux และ nvim เพื่อคงเซสชันไว้
ความเร็วของ Zed นั้นดี แต่ยังขาดฟีเจอร์จำเป็นอย่างการไฮไลต์ข้อผิดพลาดแบบอินไลน์และปุ่มรันโค้ด
การแชร์หน้าจอแบบอิงภาพอาจเป็นตัวเลือกที่ดีกว่า
ต้องการโซลูชันแก้ไขแบบรีโมตที่พกพาได้จริง
การรันแอปที่ไม่รู้จักบนเซิร์ฟเวอร์ระยะไกลที่เชื่อถือได้นั้นไม่ใช่ความคิดที่ดี
รู้สึกกังวลที่ไม่มีการพูดถึง Emacs หรือ Tramp