- Với những người làm việc với các codebase lớn, lập trình trên laptop có thể là một gánh nặng
- Quạt chạy liên tục, language server thiếu bộ nhớ và thời gian build lại rất lâu
- Trong Zed, bạn có thể mở dự án trên bất kỳ thiết bị nào thông qua SSH
- UI chạy hoàn toàn ở máy cục bộ, mang lại đồ họa mượt mà ở 120 fps, trong khi language server, tác vụ và terminal chạy trên máy chủ từ xa để tận dụng phần cứng đám mây
Thiết lập môi trường phát triển từ xa
- Để chỉnh sửa mã từ xa, Zed đã thực hiện các thay đổi về hạ tầng nhằm hỗ trợ SSH
- Cần giải quyết nhiều vấn đề như duy trì kết nối SSH, thiết lập máy chủ từ xa và tích hợp tính năng
- Đối với kết nối SSH, Zed sử dụng cấu hình ControlMaster để duy trì một kết nối duy nhất cho mỗi host
- Sau khi kết nối, Zed tải xuống máy chủ từ xa phù hợp với hệ điều hành và kiến trúc
- Máy chủ từ xa được biên dịch bằng
musl không cần liên kết động nên có thể hoạt động cả trên các bản phân phối cũ
- Ngay cả khi kết nối bị ngắt, máy chủ từ xa vẫn tiếp tục chạy và khi kết nối lại, language server vẫn được giữ nguyên trạng thái đã khởi tạo hoàn chỉnh
- Các thay đổi chưa được lưu được sao lưu cục bộ nên không bị mất việc đang làm
Cộng tác và dự án SSH
- Việc làm cho dự án SSH hoạt động cùng tính năng cộng tác là một thách thức
- Tối thiểu 4 node có thể tham gia vào một phiên cộng tác 2 người qua SSH, nên giao thức đồng bộ cộng tác đã được kiểm thử
Project được chia thành các phần logic để client có thể kích hoạt trong chế độ từ xa và cục bộ tùy theo việc nó là host cộng tác, host SSH hay khách cộng tác
- Thông qua các bài kiểm thử mới, từng vai trò và máy chủ cộng tác được khởi tạo để xác nhận việc đồng bộ diễn ra chính xác
- Khi làm dự án cùng bạn bè hoặc đồng nghiệp, việc dự án nằm trên laptop hay trên thiết bị có thể truy cập qua SSH đều được xử lý một cách minh bạch
Tóm tắt của GN⁺
- Zed mang đến môi trường phát triển hiệu quả cho các nhà phát triển làm việc với codebase lớn bằng cách tận dụng máy chủ từ xa
- Tính năng phát triển từ xa qua SSH giúp cải thiện hiệu năng bằng cách khai thác phần cứng đám mây
- Tính năng cộng tác hỗ trợ đồng bộ giữa nhiều node, giúp cộng tác diễn ra mượt mà
- Zed có thể sử dụng trên macOS và Linux, mang đến trải nghiệm mới cho các nhà phát triển
- Một dự án khác cung cấp tính năng tương tự là Remote Development Extension của Visual Studio Code
1 bình luận
Ý kiến trên Hacker News
Dùng Zed cùng SSH Remoting và Orbstack để lập trình trên Mac là một môi trường trong mơ
Có thắc mắc về mô hình doanh thu của Zed và việc nó có phải mã nguồn mở hay không
Tính năng phát triển từ xa của Zed cài đặt và chạy một binary trên máy chủ từ xa
Dùng Zed cho phát triển C, C++, Rust và Angular và rất hài lòng
Khi phát triển qua lại trên nhiều máy tính thì dùng tmux và nvim để giữ nguyên session
Tốc độ nhanh của Zed là điểm tốt nhưng vẫn thiếu các tính năng thiết yếu như đánh dấu lỗi nội tuyến và nút chạy code
Chia sẻ màn hình dựa trên hình ảnh có thể là lựa chọn tốt hơn
Muốn có một giải pháp chỉnh sửa từ xa thực sự cơ động
Chạy một ứng dụng không rõ nguồn gốc trên máy chủ từ xa đáng tin cậy không phải là ý hay
Việc không hề nhắc đến Emacs hay Tramp khiến người ta lo ngại