16 คะแนน โดย GN⁺ 2024-11-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • สำหรับคนที่ต้องทำงานกับโค้ดเบสขนาดใหญ่ การเขียนโปรแกรมบนแล็ปท็อปอาจเป็นภาระได้
  • พัดลมหมุนตลอด, 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 ความคิดเห็น

 
GN⁺ 2024-11-01
ความคิดเห็นใน Hacker News
  • การเขียนโปรแกรมบน Mac โดยใช้ Zed, SSH Remoting และ Orbstack เป็นสภาพแวดล้อมในฝัน

    • สามารถรันเครื่อง Linux บน Orbstack ได้ภายในไม่กี่วินาที แล้วเชื่อมต่อผ่าน SSH จาก Zed เพื่อให้ได้สภาพแวดล้อมพัฒนา Linux ที่รวดเร็ว
    • คล้ายกับ WSL เวอร์ชันของ macOS และ VSCode แต่ให้ความรู้สึกที่ดีกว่า
    • ได้รับแรงบันดาลใจจากงานในอดีตของ Mitchell Hashimoto
    • เคยใช้ VMware และ Docker Desktop แต่รู้สึกว่าหนักเกินไปสำหรับการได้สภาพแวดล้อมพัฒนาที่ลื่นไหลและรวดเร็ว
    • ด้วย Zed และ Orbstack จึงได้ระบบที่รวดเร็วและสง่างาม
  • มีความสงสัยเกี่ยวกับโมเดลรายได้ของ Zed และการเป็นโอเพนซอร์สหรือไม่

    • กังวลกับการสร้างเวิร์กโฟลว์ที่ต้องพึ่งพาผลิตภัณฑ์ของบริษัท
  • ฟีเจอร์พัฒนาแบบรีโมตของ Zed จะติดตั้งและรันไบนารีบนโฮสต์ระยะไกล

    • เครื่องโลคัลจะเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน SSH และ Zed จะดาวน์โหลดเซิร์ฟเวอร์แล้วเริ่มทำงาน
  • ใช้ Zed สำหรับการพัฒนา C, C++, Rust และ Angular และพอใจมาก

    • เคยใช้เครื่องมือต่าง ๆ อย่าง JetBrains, vscode, vim เป็นต้น แต่ Zed เหนือกว่าสำหรับการเขียนโค้ดในชีวิตประจำวัน
    • ยังใช้พัฒนา C# ไม่ได้เพราะขาดฟีเจอร์ดีบัก
    • มีความเร็วในการตอบสนองที่ยอดเยี่ยมมาก
  • เมื่อพัฒนางานข้ามหลายคอมพิวเตอร์ จะใช้ tmux และ nvim เพื่อคงเซสชันไว้

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

    • ตอนนี้ Zed IDE ให้ความรู้สึกเหมือนโปรแกรมแก้ไขข้อความน้ำหนักเบาที่มี AI ช่วยมากกว่า
  • การแชร์หน้าจอแบบอิงภาพอาจเป็นตัวเลือกที่ดีกว่า

    • ฟีเจอร์ทำงานร่วมกันของ Zed นั้นดี แต่ต้องคำนึงถึงปัญหาความเข้ากันได้กับแอปอื่น ๆ
  • ต้องการโซลูชันแก้ไขแบบรีโมตที่พกพาได้จริง

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

    • การจัดการทุกอย่างบนเครื่องโลคัลจะเร็วกว่า
    • สามารถใช้ความสามารถในตัวของ SSH เพื่อจัดการไฟล์ได้
  • รู้สึกกังวลที่ไม่มีการพูดถึง Emacs หรือ Tramp

    • ดูเหมือนว่าจะมุ่งสนใจแค่กระแส AI เท่านั้น