Bạn có sử dụng điều này hoặc một quy trình phân nhánh git tương tự?
Chúng tôi sử dụng một quy trình công việc tương tự tại nơi làm việc, nhưng ít phức tạp hơn một chút. Tuy nhiên, nó được truyền cảm hứng rất nhiều bởi quy trình làm việc này, vì tôi đã đọc bài viết này nhiều lần. Tôi thậm chí còn có bản pdf của mô hình phân nhánh được in màu bên cạnh bàn của mình :)
Bạn có xem đây là một cách tiếp cận hiệu quả?
Năng suất. Làm thế nào để bạn xác định năng suất? Vâng, trong suy nghĩ của tôi, điều quan trọng nhất là phải có chất lượng cao, ít nhất là cố gắng và đạt được chất lượng tốt hơn mọi lúc. Không ngừng cải tiến quy trình, vv Nếu bạn có thể tạo ra mã chất lượng, năng suất sẽ được hưởng lợi từ nó. Vì vậy, câu hỏi thực sự là: Điều này có cải thiện chất lượng của phần mềm không? Và câu trả lời của tôi cho điều đó chắc chắn là có.
Điều tôi thích nhất với kiểu mô hình phân nhánh này là nó giới thiệu các nhánh ở các lớp chất lượng khác nhau. Càng nhiều bên phải trong hình ảnh, độ ổn định cao hơn và chất lượng cao hơn. Nhánh chính là thánh và tất cả các cam kết trên nó nên được coi là phiên bản ổn định của phần mềm. Bạn càng đi bên trái, bạn càng thử nghiệm nhiều hơn và độ ổn định bạn nhận được càng thấp.
Ngay khi bạn kiểm tra các tính năng mới và sửa lỗi, bạn có thể chuyển dần chúng từ trái sang phải và do đó chuyển mã với chất lượng cao chính xác khi bạn biết rằng mã đáp ứng các yêu cầu chất lượng mà bạn yêu cầu về mã. Vâng, ít nhất là về mặt lý thuyết, vì bạn không thể kiểm tra mọi thứ đến 100% và biết chắc chắn rằng mã không chứa bất kỳ lỗi nào, bởi vì nó sẽ luôn có lỗi. Nhưng nó cho phép bạn giữ một sự tự tin cao.
Không có gì hấp dẫn hơn với tư cách là một lập trình viên, hơn là làm việc trong một hệ thống mà không ai tin tưởng vào mã, bởi vì họ biết nó chỉ hút và có vô số lỗi trong đó.
Bạn có thấy bất kỳ sai sót với phương pháp này? Bất kỳ nhược điểm tiềm năng?
Điều quan trọng là phải suy nghĩ thông qua mô hình phân nhánh của bạn để nó phù hợp với nhu cầu của tổ chức của bạn. Chỉ vì mô hình này hoạt động tốt với một số người, không nhất thiết có nghĩa là nó tối ưu hay mong muốn cho người khác.
Luôn có sự đánh đổi và thậm chí trong trường hợp này. Một sự đánh đổi là số lượng chi nhánh so với độ phức tạp. Bằng cách giới thiệu rất nhiều loại nhánh khác nhau, bạn tăng độ phức tạp của quy trình làm việc. Ví dụ, có thể chỉ sai khi luôn buộc mọi người tạo một nhánh tính năng mới, khi họ đang cố gắng sửa một lỗi đơn giản bằng cách thay đổi một vài dòng mã.
Chúng ta đều biết rằng các lỗi ít nhiều phức tạp để giải quyết. Vì vậy, khi một lỗi nhỏ được phát hiện, bạn có thể muốn cắt giảm sự phức tạp và quản trị để thoát khỏi chi phí phụ và chỉ để mọi người cam kết trực tiếp, ví dụ như chủ hoặc phát triển chi nhánh. Nhưng khi bản chất của các bản sửa lỗi của bạn trở nên phức tạp hơn, thì đáng để chi phí thêm đó để tạo ra các nhánh mới cho chúng. Đặc biệt là nếu bạn không chắc chắn về kích thước và độ dài của nó hoặc nếu bạn muốn cải thiện sự hợp tác giữa bạn và các nhà phát triển khác.
Nếu bạn có một cách tiếp cận tốt hơn, bạn có phiền chia sẻ, hoặc cung cấp một liên kết đến một bài viết hoặc thảo luận về nó?
Đây chắc chắn là một cách tiếp cận tốt và nó có thể phù hợp với hầu hết các trường hợp vì hầu hết chúng ta đều có quá trình phát triển tương tự, nhưng nó có thể không phù hợp với tất cả mọi người. Tôi đặc biệt khuyên bạn nên suy nghĩ về cách bạn xử lý mã của mình ngay bây giờ và cố gắng tạo một mô hình phân nhánh phù hợp với mô hình bạn đã có.
Điểm quan trọng nhất là bắt đầu với git và phần còn lại sẽ diễn ra tự nhiên. Bắt đầu đơn giản và dần dần cải thiện! Sáng tạo!
Chúc mừng