Tiện ích mở rộng GitHub CLI 'gh-signoff' gây tranh cãi về phương pháp CI cục bộ và đám mây

BigGo Editorial Team
Tiện ích mở rộng GitHub CLI 'gh-signoff' gây tranh cãi về phương pháp CI cục bộ và đám mây

Trong bối cảnh phát triển phần mềm đang bị thống trị bởi các dịch vụ tích hợp liên tục (CI) trên đám mây, một tiện ích mở rộng mới cho GitHub CLI có tên là gh-signoff đã xuất hiện, thách thức quan điểm thông thường về tự động hóa kiểm thử. Công cụ này, được phát triển bởi Basecamp, cho phép các nhà phát triển chạy kiểm thử cục bộ và tự xác nhận công việc của họ, tạo ra trạng thái kiểm tra đạt yêu cầu mà không cần sử dụng các trình chạy CI từ xa.

Những điểm chính về gh-signoff

  • Mục đích: Cho phép các nhà phát triển chạy kiểm thử cục bộ và tự xác nhận công việc của họ
  • Cách hoạt động: Tạo ra trạng thái kiểm tra GitHub đạt yêu cầu thông qua lệnh gh signoff
  • Kiểm tra thực hiện: Chỉ xác minh không có thay đổi Git chưa được commit
  • Không thực hiện: Tự động chạy kiểm thử hoặc công bố kết quả kiểm thử
  • Cài đặt: gh extension install basecamp/gh-signoff
  • Giấy phép: MIT

CI cục bộ và CI đám mây: Cộng đồng chia rẽ

Sự ra đời của gh-signoff đã gây ra cuộc tranh luận đáng kể trong cộng đồng phát triển. Những người ủng hộ cho rằng các máy tính của nhà phát triển hiện đại đủ mạnh để xử lý khối lượng công việc kiểm thử mà trước đây cần đến hạ tầng đám mây. Như mô tả của tiện ích này: Laptop của các nhà phát triển ngày nay rất nhanh. Chúng thường xuyên bị sử dụng dưới công suất. Và bạn đã sở hữu chúng. Các dịch vụ CI đám mây thường chậm, đắt đỏ và phải thuê.

Tuy nhiên, nhiều nhà phát triển bày tỏ những lo ngại nghiêm trọng về phương pháp này. Chỉ trích chính tập trung vào khả năng tái tạo và độ tin cậy. Một người bình luận lưu ý rằng công cụ này về cơ bản tạo ra trạng thái đạt yêu cầu mà không có bất kỳ xác minh nào rằng các bài kiểm tra thực sự đã được chạy:

Điều này đơn giản chỉ tạo ra trạng thái đạt yêu cầu trong kho lưu trữ để PR có thể được hợp nhất. Không có bắt buộc nào đối với nhà phát triển phải thực sự chạy các bài kiểm tra cục bộ, vì vậy bạn có thể tiết kiệm thời gian bằng cách vô hiệu hóa các kiểm tra trạng thái.

Điều này làm nổi bật căng thẳng cơ bản giữa sự tin tưởng và xác minh trong quy trình phát triển phần mềm.

Yếu tố tin cậy trong các đội phát triển

Phương pháp gh-signoff được xây dựng trên nền tảng tin tưởng trong các đội phát triển. Những người bảo vệ công cụ này chỉ ra rằng ngay cả với CI truyền thống, các nhà phát triển quyết tâm có thể bỏ qua các kiểm tra bằng cách sửa đổi mã kiểm thử. Họ lập luận rằng việc làm cho quy trình xác nhận trở nên rõ ràng sẽ tạo ra trách nhiệm giải trình.

Những người phê bình phản bác rằng vấn đề không phải là về sự tin tưởng mà là lỗi của con người. Như một nhà phát triển có kinh nghiệm với hơn 25 năm lập trình giải thích, ngay cả những nhà phát triển cẩn thận nhất cũng mắc lỗi—quên xóa đầu ra gỡ lỗi, cập nhật xử lý ngoại lệ, hoặc đảm bảo tương thích đa nền tảng. Việc chạy các bản dựng trên các máy riêng biệt giúp phát hiện những lỗi này bất kể ý định hay sự chú ý của nhà phát triển.

Lo ngại về tính nhất quán của môi trường và sự cô lập

Nhiều người bình luận nhấn mạnh rằng giá trị của CI đến từ việc cung cấp môi trường nhất quán và cô lập. Khi các bài kiểm tra chạy trên máy của nhà phát triển, chúng có thể đạt yêu cầu do các phụ thuộc hoặc cấu hình đặc thù cho môi trường đó—dẫn đến vấn đề cổ điển chạy tốt trên máy của tôi. Một số nhà phát triển đề xuất rằng nếu muốn thực thi cục bộ, việc sử dụng container hóa hoặc máy ảo sẽ là cần thiết để đảm bảo tính nhất quán của môi trường.

Đối với các tổ chức làm việc với hệ thống phức tạp đòi hỏi kiểm thử trên nhiều hệ điều hành hoặc cấu hình phần cứng, CI cục bộ trở nên ngày càng không thực tế. Như một nhà phát triển PyTorch đã lưu ý, CI đám mây cung cấp khả năng song song hóa và đa dạng môi trường cần thiết mà không thể sao chép cục bộ được.

Đánh đổi giữa chi phí và kiểm soát

Khía cạnh tài chính của CI không thể bỏ qua. Khi tổ chức phát triển, chi phí CI đám mây có thể trở nên đáng kể. Một người bình luận nhận xét rằng một khi tổ chức kỹ thuật của bạn đạt đến quy mô nhất định, bạn có thể phải chi một khoản tiền khổng lồ cho tính toán CI. Phương pháp gh-signoff tiềm năng mang lại tiết kiệm chi phí đáng kể bằng cách tận dụng phần cứng nhà phát triển hiện có.

Tuy nhiên, điều này đi kèm với sự đánh đổi về khả năng kiểm toán và tuân thủ. Một số người bình luận chỉ ra rằng hệ thống CI tập trung cung cấp bằng chứng được ghi lại về quy trình kiểm thử—điều đặc biệt quan trọng đối với các tổ chức phải chịu kiểm toán hoặc yêu cầu quy định.

Công cụ gh-signoff đại diện cho một thử nghiệm thú vị trong việc suy nghĩ lại về quy trình phát triển, nhưng sự đồng thuận của cộng đồng cho thấy nó có thể phù hợp nhất với các đội nhỏ có mức độ tin cậy cao, ứng dụng đơn giản và yêu cầu tuân thủ tối thiểu. Đối với hầu hết các tổ chức, đặc biệt là những tổ chức có quy mô lớn, hệ thống CI truyền thống tiếp tục mang lại lợi ích vượt trội so với chi phí của chúng.

Tham khảo: gh-signoff