- Toàn bộ đội ngũ Zed tổ chức họp hằng tuần ngay bên trong trình soạn thảo Zed, sử dụng môi trường cộng tác nơi chia sẻ màn hình và chỉnh sửa đồng thời diễn ra theo thời gian thực
- Zed là trình soạn thảo mã được thiết kế với mục tiêu khả năng phản hồi không độ trễ, giao diện không làm gián đoạn sự tập trung và cộng tác tự nhiên như trong văn phòng
- Thông qua kiến trúc dựa trên CRDT, Zed bảo đảm chỉnh sửa đồng thời không xung đột và độ trễ thấp, đồng thời có thể cộng tác ngay chỉ với xác thực GitHub
- Bảng cộng tác được cấu thành từ không gian họp toàn công ty, không gian theo dự án và không gian tập trung cá nhân, tạo nên cấu trúc văn phòng ảo
- Nhờ cấu trúc này, đội ngũ Zed có thể thực hiện toàn bộ việc họp, phát triển và giao tiếp bên trong Zed mà không cần văn phòng thực, hướng tới môi trường phát triển multiplayer của tương lai
Cấu trúc cộng tác diễn ra bên trong Zed
- Đội ngũ Zed Industries tổ chức họp toàn thể vào 12 giờ trưa mỗi thứ Hai hằng tuần, và toàn bộ quá trình đều được chia sẻ theo thời gian thực bên trong trình soạn thảo Zed
- Người tham gia đồng thời chỉnh sửa và ghi lại lịch trình tuần, các chỉ số chính, phản hồi từ người dùng, v.v.
- Hình ảnh nhiều con trỏ cùng chỉnh sửa một tệp được hiển thị theo thời gian thực
- Ba mục tiêu cốt lõi của Zed được xác định là khả năng phản hồi, mức độ tập trung và tính cộng tác
- Cộng tác không phải chỉ là một tính năng đơn thuần mà được thiết kế như DNA cốt lõi của sản phẩm
Nền tảng kỹ thuật của tính năng cộng tác
- Zed sử dụng kiến trúc CRDT (Conflict-free Replicated Data Type) để mọi chỉnh sửa được hợp nhất mà không xảy ra xung đột
- Hệ thống hội tụ về cùng một trạng thái bất kể độ trễ mạng hay vị trí
- Vẫn duy trì ổn định mà không suy giảm hiệu năng ngay cả khi nhiều người cùng chỉnh sửa đồng thời
- Có thể cộng tác chỉ bằng đăng nhập tài khoản GitHub, không cần cài thêm extension hay chia sẻ liên kết riêng
- Tích hợp sẵn gọi thoại và chia sẻ màn hình, cho phép giao tiếp mà không cần công cụ bên ngoài
- Hệ thống cộng tác này là hạ tầng thiết yếu mà đội ngũ Zed tạo ra để trực tiếp sử dụng trong chính quá trình phát triển của họ
Bảng cộng tác và cấu trúc kênh
- Bảng cộng tác được cấu thành từ không gian ảo dựa trên ‘Channel’
- Channel được sắp xếp theo cấu trúc phân cấp, có thể tạo channel cấp trên và cấp dưới
- Mỗi channel bao gồm các tính năng avatar người tham gia, ghi chú, điều khiển thoại, chia sẻ màn hình
- Channel có thể được đặt là công khai (🛜) hoặc giới hạn (#️⃣), đồng thời có hệ thống quyền Guest / Member / Admin
- Người dùng có thể nhấp vào avatar của thành viên khác để chuyển sang theo dõi con trỏ hoặc xem màn hình
Văn phòng ảo mà Zed tạo ra
- ‘Văn phòng’ của đội ngũ Zed chính là bảng cộng tác, được cấu thành từ không gian thảo luận toàn công ty, cộng tác theo dự án và không gian tập trung cá nhân
- Không gian họp toàn công ty
- Trong channel
this week, nhóm xem xét kế hoạch tuần và các chỉ số
- Trong channel
retrospectives, cứ mỗi 6 tuần nhóm sẽ tổ chức retrospective và bình chọn các điểm làm tốt cùng các điểm cần cải thiện
- Trong channel
demos, vào mỗi thứ Sáu hằng tuần các thành viên trình diễn trực tiếp tính năng hoặc kết quả sửa lỗi
- Không gian theo dự án
- Mỗi dự án (
git 1.0, edit predictions v2, delta db, cloud, v.v.) đều có channel chuyên dụng
- Trong ghi chú của channel có tổng hợp thành viên nhóm, mục tiêu, liên kết GitHub liên quan và tiến độ thực hiện
- Các channel cấp dưới được dùng làm không gian họp cho từng thành phần chi tiết
- Một số channel được mở công khai để người dùng bên ngoài có thể xem
- Không gian tập trung cá nhân
- Bên dưới channel
people, mỗi thành viên tạo một channel con mang tên mình và dùng nó làm không gian làm việc cá nhân
- Đây đóng vai trò như tín hiệu của “chế độ tập trung”, đồng thời đồng nghiệp có thể ghé vào khi cần
- Bài blog này cũng được tác giả soạn bản nháp trong channel cá nhân
blog của mình
Định hướng và tầm nhìn sắp tới
- Các tính năng cộng tác hiện tại là nền tảng giúp Zed Industries có thể vận hành ngay bên trong Zed
- Về dài hạn, mục tiêu là một môi trường cộng tác liên tục nơi hội thoại, chỉnh sửa và insight được gắn kết với mã nguồn
- Trước đây nhóm tập trung vào các tính năng do người dùng yêu cầu (công cụ agent, debugging, hỗ trợ Windows·Git, v.v.),
nhưng giờ đây lại đặt trọng tâm vào nâng cao mức độ hoàn thiện như một công cụ phát triển multiplayer
- Tính năng cộng tác hiện đang ở phiên bản alpha và được cung cấp miễn phí cho mọi người dùng
- Có bản tải xuống cho macOS, Windows và Linux, đồng thời đang tuyển dụng nhà phát triển
1 bình luận
Ý kiến Hacker News
Tôi thích hướng đi mà Zed theo đuổi, nhưng thấy khó chịu vì độ ổn định của các tính năng chỉnh sửa cơ bản còn thiếu
Khi file bị sửa từ bên ngoài thì cửa sổ project hoặc git diff không phản ánh, còn trong môi trường container thì các tính năng AI bị lỗi
ACP trông cũng hay, nhưng trên thực tế lại bất tiện hơn phần lớn CLI
Hiện tại tôi đã quay lại NeoVIM. Khi Zed ổn định hơn, tôi sẽ thử lại
Vấn đề liên quan: github.com/zed-industries/zed/issues/38109
Đến năm 2025 rồi, vẫn có nhiều cách khác để dựng toolchain có thể tái lập mà không làm bẩn hệ thống
Demo Agentic editing trước đây khá thú vị, nhưng hiện tại các công cụ CLI hiệu quả hơn nhiều
Tôi chủ yếu làm việc với Claude code - plan mode rồi chỉnh lại trong editor. Việc có tích hợp AI hay không giờ không còn quá quan trọng
Điều này rất bất tiện khi xem các file log lớn. Nếu là editor thì khả năng chỉnh sửa phải được ưu tiên hàng đầu
Dù vậy, việc có thể sửa trực tiếp từ kết quả tìm kiếm toàn cục thì khá tốt
Thảo luận liên quan: github.com/zed-industries/zed/discussions/26344
Tôi rất muốn thử tính năng cộng tác, nhưng phải hỗ trợ self-host
Nếu dữ liệu dự án đi qua server của Zed thì trong môi trường doanh nghiệp có lẽ sẽ không được chấp nhận nếu không có SLA
Tham khảo: github.com/zed-industries/zed/issues/8260#issuecomment-1965463519
Tôi không muốn IDE có công cụ giao tiếp hay tính năng multiplayer
Đó là không gian tôi dùng để tập trung, nên tôi không thích đưa thêm những yếu tố gây xao nhãng vào
Tôi cảm thấy chất lượng của Zed tốt hơn các công cụ remote pair programming khác
Tiêu chí chọn IDE của tôi là khả năng mở rộng và tính linh hoạt hơn là sự hoàn hảo
Tôi hầu như không pair programming, và chỉ khi có bug nghiêm trọng mới cần chia sẻ
Tôi đang đăng ký Zed Pro và thích tính năng agent tích hợp
Nhưng với các nhóm nhỏ, hướng đi “công cụ để tạo ra công cụ” mà đội Zed theo đuổi không hẳn là cần thiết
Điều tôi muốn là trải nghiệm nhẹ, nhanh để khám phá, hiểu và sửa code
So với hỗ trợ Swift hay Kotlin, tôi cần hơn một UI có thể xem đồng thời panel thư mục và panel outline
Tôi thấy bất an với trình soạn thảo code dựa trên cloud do công ty kiểm soát
Đặc biệt là các dạng tích hợp công cụ cộng tác như Zoom hay Slack thì tôi càng không thích
Và việc từ chối mọi IDE thương mại có lẽ chỉ là quan điểm của số ít
Đổ lỗi vấn đề hiệu năng của Atom cho Electron có vẻ như né tránh trách nhiệm
VSCode cũng dựa trên Electron nhưng nhanh hơn nhiều. Trình duyệt cũng vậy
Vì thế mới có chênh lệch hiệu năng
Công nghệ web rất tuyệt, nhưng về hiệu năng thì rõ ràng vẫn có giới hạn
Tính năng cộng tác quy mô lớn của Zed khá thú vị, nhưng chỉ tưởng tượng đến việc nhiều người cùng code theo thời gian thực thôi cũng đã thấy áp lực
Có thể tạo phản hồi tức thì và hiệu ứng kích thích năng suất
Tuy vậy, nếu tổ chức không ép buộc thì vẫn có khả năng phát triển thành một mô hình mới
Hiệu quả hơn chia sẻ màn hình rất nhiều
Hình dung một môi trường có thể sửa theo thời gian thực mà không cần quản lý phiên bản
Thông qua Feature Toggle và triển khai hot-swap, có thể tạo vòng lặp phản hồi nhanh
Bài liên quan: martinfowler.com/articles/feature-toggles.html
Tính năng thì thú vị, nhưng thực tế không có nhiều dịp để dùng
Nó làm tôi nhớ đến thời trước dùng PabloDraw để nhiều người cùng tạo ANSI art cùng lúc
Tôi cũng từng dùng tính năng cộng tác của VSCode, nhưng do chính sách công ty nên có rất nhiều ràng buộc về self-host
Sẽ rất hay nếu server cộng tác được chuẩn hóa như LSP để tương thích với nhiều IDE
Tôi cũng muốn có thể làm việc cùng người dùng VSCode
Đội Zed có thể không cảm nhận vấn đề này từ nội bộ, nhưng khả năng tương thích giữa các editor khác nhau là cần thiết
Ai còn nhớ gói teletype của Atom thì sẽ nghĩ ngay đến lịch sử của chỉnh sửa cộng tác
Hydra và SubEthaEdit từ đầu những năm 2000 chính là những ví dụ đầu tiên
Lần này, điểm “mở khóa mới” có vẻ là khả năng chia sẻ ở cấp độ tổ chức
Liên kết liên quan: wiki SubEthaEdit, Apple Design Awards 2003
Nó cũng từng được giới thiệu trong “The Mother of All Demos”
Gần đây, khi công nghệ CRDTs trưởng thành hơn, cộng tác thời gian thực đã ổn định hơn rất nhiều
Tham khảo: The Mother of All Demos, bài viết về CRDT trên blog Zed
Giờ đây có cảm giác những cơ hội đổi mới kiểu “độ khó thấp” như vậy đang ngày càng ít đi
Nỗ lực của Zed rất đáng nể, nhưng nguồn lực phát triển cần để tạo ra editor thế hệ tiếp theo đã lớn hơn nhiều
Thật vui khi nó đến giờ vẫn còn tồn tại như một ứng dụng miễn phí