Bạn biết nó diễn ra như thế nào: có một số nhiệm vụ lặp đi lặp lại nhỏ mà bạn đã tìm ra cách để tự động hóa nhanh chóng 95% công việc. Bạn tạo một tập lệnh, chạy nó, sửa thủ công đầu ra và bạn đã hoàn thành. Tất nhiên, bạn không cam kết kịch bản, vì nó không phù hợp với yêu cầu chất lượng của công ty (nó không có tài liệu, cũng không có bất kỳ thử nghiệm nào).
Một thời gian sau bạn thấy một đồng nghiệp đang làm một nhiệm vụ tương tự. Bạn nói "Này! Tôi đã tạo một kịch bản cho điều đó. Hãy để tôi xem nó. [Có vẻ] Ồ, nó đã được lưu trên máy tính xách tay trước của tôi nên tôi không có nó nữa. Quá tệ."
Các tập lệnh này thường có thể tiết kiệm rất nhiều thời gian và là người lãnh đạo của nhóm, tôi muốn chúng được lưu trữ trong kiểm soát phiên bản. Tuy nhiên, nếu tôi áp đặt các tiêu chuẩn khắt khe tương tự như phần còn lại của cơ sở mã cho các tập lệnh này, tôi sợ hầu hết các nhà phát triển sẽ giữ chúng cho riêng mình.
Tùy chọn duy nhất khác mà tôi có thể đưa ra là cho phép các nhà phát triển lưu trữ các tập lệnh trong một phần đặc biệt của kiểm soát phiên bản, trong đó không có kiểm soát chất lượng (giống như GitHub Gists). Rủi ro là những người khác sẽ không thể sử dụng mã bởi vì họ không thể tìm hoặc hiểu nó.
Làm thế nào vấn đề này có thể được giải quyết? Hay nó không nên được giải quyết?
Sometime later you see a colleague working on a similar task. You go "Hey! I made a script for that. Let me look that up. [looks] Oh, it was stored on my previous laptop so I don't have it anymore
. Đó là một cách tốt để bỏ công sức, thời gian và tiền bạc cùng với các kịch bản. Phải không?
The risk is that others will not be able to use the code because they cannot find or understand it.
Giống như bất kỳ đoạn mã nào, chúng tôi không quen thuộc. Tôi nghĩ rằng đó là một lý do tồi để không kiểm tra các tập lệnh vào bất kỳ SCM nào.