Chia sẻ một dự án qua mạng không di chuyển Xcode, vì ứng dụng vẫn chạy trên Mac của bạn và vẫn yêu cầu máy chủ cung cấp dữ liệu dự án. Chạy Xcode trên Mac từ xa và xem màn hình của nó là một cách bố trí khác, trong đó ứng dụng và các tệp của nó ở cùng nhau và đường truyền chỉ mang hình ảnh cùng thao tác nhập của bạn. Quyết định bạn muốn cách nào, trước khi cấu hình bất cứ thứ gì, giải quyết phần lớn sự nhầm lẫn về sau.

Ba cách bố trí bao quát các trường hợp thông thường, và chúng khác nhau ở chỗ không gian làm việc sống ở đâu và máy nào biên dịch. Hãy ghi lại câu trả lời cho cả hai điểm đó trước khi tiếp tục.

Đặt tên cho máy chạy Xcode

Trong cách bố trí đầu tiên, mọi thứ đều cục bộ: bản sao làm việc, chỉ mục và bản build đều sống trên Mac của bạn, và mạng chỉ mang lưu lượng của kho mã và các phụ thuộc. Trong cách thứ hai, dự án ở lại trên Mac từ xa cùng với Xcode, nên việc lập chỉ mục và biên dịch diễn ra bên cạnh các tệp trong khi đường truyền mang nội dung màn hình và các lần gõ phím. Trong cách thứ ba, việc chỉnh sửa diễn ra cục bộ và một bản build chạy trên máy chủ từ xa sau khi bàn giao mã nguồn rõ ràng. Bảng nêu tên thứ mà mỗi cách di chuyển.

ArrangementWhere the source livesWhat crosses the link
Everything localLocal diskRepository and dependency traffic
Remote Xcode, screen sharedRemote diskDisplay frames and input events
Local edit, remote buildBoth, with a handoffSource transfer, then build output

Hãy đọc cột giữa trước, vì nó quyết định nơi các lỗi sẽ xuất hiện. Một quy trình làm việc có mã nguồn từ xa thất bại khi đường truyền chậm, trong khi quy trình có trình biên dịch từ xa thất bại khi việc bàn giao mơ hồ. Chỉ cách thứ ba khiến bạn chịu trách nhiệm cho cả hai.

Đếm các vòng khứ hồi, không phải megabyte

Một trình soạn thảo và một trình lập chỉ mục phát ra nhiều thao tác tệp nhỏ, và mỗi thao tác trở thành một vòng khứ hồi khi hệ thống tệp ở xa. Điều đó khiến một không gian làm việc được gắn kết nhạy cảm với độ trễ theo cách mà một bản sao lớn duy nhất không nhạy cảm, đó là lý do việc đo thời gian truyền tệp gần như không nói lên điều gì về cảm giác của quy trình làm việc. Hiển thị từ xa có hồ sơ ngược lại: nó di chuyển một luồng liên tục và chịu đựng thông lượng tốt hơn so với độ trễ. So sánh hai cách bằng một con số tạo ra một câu trả lời sai đầy tự tin.

Không cách bố trí nào nhanh nhất một cách tự nhiên. Lựa chọn đúng phụ thuộc vào công việc bạn thực sự làm, đó là lý do bước tiếp theo là thử công việc đó thay vì một bài đo chuẩn.

Hãy làm cho việc bàn giao mã nguồn rõ ràng

Khi cả hai máy đều giữ một bản sao làm việc, hãy quyết định bản nào có thẩm quyền và bản build từ xa đã dùng bản sửa đổi nào. Một commit là một lần bàn giao rõ ràng hơn hai công cụ cùng chỉnh sửa một cây làm việc được gắn kết, vì commit có danh tính còn việc gắn kết thì không. Đầu ra được tạo và dữ liệu chỉ mục cũng cần một chủ sở hữu, vì chúng được xây dựng lại từ mã nguồn và không nên di chuyển như thể chúng là mã nguồn. Một tấm gương hai chiều không có quy tắc xung đột không phải là quy trình làm việc, đó là một cuộc đua.

Việc build từ xa cũng đòi hỏi máy chủ từ xa phải có chuỗi công cụ phù hợp và thông tin đăng nhập cho các phụ thuộc riêng tư. Một VPN cho phép bạn tiếp cận máy chủ không cho nó mượn quyền truy cập tài khoản của bạn và không cài Xcode ở đó.

Kiểm tra đường đi trước khi bạn cam kết với một quy trình làm việc

Xác minh máy chủ từ xa trước khi thiết kế xoay quanh nó, sau đó đo đường truyền bằng những thao tác mà quy trình làm việc sẽ thực sự thực hiện. Các lệnh bên dưới kiểm tra chuỗi công cụ, thư mục nhà phát triển đang hoạt động và chi phí theo dõi tệp khiến không gian làm việc từ xa trở nên khó chịu. Hãy chạy lệnh cuối qua đường mạng thay vì cục bộ.

xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain

Một máy chủ không có bản cài Xcode đầy đủ trả về lỗi từ xcodebuild, đó là vấn đề chuỗi công cụ chứ không phải mạng. Thư mục nhà phát triển cho thấy bản build sẽ dùng Xcode nào, và một đường dẫn chỉ trỏ tới các công cụ dòng lệnh nghĩa là ứng dụng chưa được cài. Việc đo thời gian lệnh trạng thái kho mã qua phần chia sẻ được gắn kết phơi bày trực tiếp chi phí vòng khứ hồi, và so sánh với một lần chạy cục bộ cho ra con số quan trọng. Nếu khoảng cách đó đã khó chịu, quy trình làm việc với không gian làm việc được gắn kết sẽ tệ hơn dưới một trình soạn thảo thực sự.

Ghi lại cách bố trí bạn đã chọn, máy nào sở hữu mã nguồn và việc bàn giao hoạt động ra sao. Ghi chú đó biến lần giới thiệu nhân viên mới hoặc thay laptop tiếp theo thành một nhiệm vụ cấu hình thay vì một cuộc điều tra.

Bài viết liên quan