Làm thế nào mã trong kiểm soát phiên bản được lưu trữ?


19

Làm thế nào mã trong kiểm soát phiên bản được lưu trữ?

Nhà phát triển thân thiện ? để lập trình viên có thể nhanh chóng lấy bản mới nhất và có thể chạy từ trình soạn thảo của mình mà không cần thực hiện nhiều thay đổi? (như các tệp cấu hình trỏ đến dev DB..etc)

hoặc là

Có nên thân thiện với sản xuất ? nguồn phải theo cách dễ triển khai trên môi trường sản xuất và khi nhà phát triển mới nhất, anh ta nên thực hiện các thay đổi theo nhu cầu phát triển của mình.

Câu trả lời:


56

Tại sao chọn ? Nó nên là cả hai.

Môi trường phát triển của bạn nên được định cấu hình sao cho dễ dàng như thực hiện kiểm tra, mở, xây dựng, chạy, gỡ lỗi (ví dụ: không có đường dẫn tuyệt đối!). Bạn có thể thực hiện điều đó một cách dễ dàng với các chỉ thị biên dịch, lớp cấu hình + nội dung phụ thuộc hoặc thậm chí các thủ thuật như Perso.config trong ASP.NET

Kịch bản xây dựng tự động của bạn nên được tùy chỉnh đủ để chăm sóc cấu hình sản xuất cụ thể, dọn dẹp, đóng gói, v.v.


Perso.config là gì? Một google nhanh chóng đã không giúp tôi.
Tim Murphy

1
Trong tệp cấu hình ứng dụng .NET, bạn có thể tham chiếu tệp cấu hình ứng dụng khác mà khi tìm thấy sẽ ghi đè cài đặt đã chỉ định. Vì vậy, bạn có thể tạo một tệp dev.config ghi đè lên những thứ như chuỗi kết nối và các thứ khác và loại trừ nó khỏi repos.

5
+1 - nhà phát triển không nên suy nghĩ để có được nguồn chính xác. Ngoài ra việc triển khai sản xuất không nên xảy ra trực tiếp từ kiểm soát nguồn, mà với các phần được xây dựng, kiểm tra và theo dõi đúng cách . Quá trình này nên hoàn toàn tự động.

9

Khi đó là một dự án nguồn mở nơi mọi người dự kiến ​​sẽ đóng góp, tôi chắc chắn sẽ chọn thân thiện với nhà phát triển.

Điều tôi không thích nhất về các dự án nguồn mở là rất hiếm khi kho chứa tất cả các phụ thuộc cần thiết để xây dựng mã (đôi khi vì lý do thực tế hoặc pháp lý), nhưng khi chúng không - một số thậm chí không bận tâm cho bạn biết phụ thuộc nào bạn cần, hoặc quan trọng hơn, bạn cần phiên bản nào của chúng. (và tốt nhất là nơi để có được chúng từ)

Đôi khi bạn có thể dành hơn nửa ngày để tìm nạp và biên dịch một số dự án khác để xây dựng dự án mà bạn đang theo đuổi.

Tất nhiên, điều này thực sự chỉ liên quan đến phát triển trên Windows.


1
Nó làm tôi thất vọng. Bạn thậm chí tìm thấy nó trên OSS rất nổi tiếng.
Tim Murphy

1
Có những hệ thống làm giảm bớt vấn đề đó bằng cách tự động tìm nạp các phụ thuộc. Ví dụ: Apache Maven, Ivy hoặc scons.
sleske

4

Cả hai, nhưng nó phụ thuộc vào tần suất bạn thực hiện sản xuất của bạn. Đối với nhiều ứng dụng tùy chỉnh, việc triển khai được thực hiện thủ công và cục bộ. Mặt khác, nhà phát triển sẽ liên tục cam kết mã, bất kể dự án nhỏ hay lớn. Theo tôi, tôi nghĩ điều quan trọng hơn là đảm bảo nhà phát triển có thể sử dụng điều khiển phiên bản một cách chính xác, do đó làm cho cuộc sống của họ dễ dàng hơn để họ có thời gian tập trung vào mã hơn là tìm cách kiểm soát phiên bản.


Việc triển khai sản xuất sẽ không thành vấn đề nếu bạn sử dụng công cụ triển khai liên tục để xây dựng.

1

Nó phải thân thiện với sản xuất, nếu không thì việc duy trì các bản dựng tự động là vấn đề.


8
Tại sao? Một tập lệnh xây dựng tự động có thể làm cho tất cả các bản dịch cần thiết để cơ cấu lại nguồn thành một dạng có thể triển khai. Không bao giờ làm phiền mọi người với một cái gì đó tự động hóa có thể giải quyết.
Joeri Sebrechts

1

Tôi là tất cả để giảm ma sát để dễ dàng hoàn thành công việc hơn, nhưng bạn cũng cần tính đến các chế độ thất bại.

Nếu phiên bản kho lưu trữ nguồn luôn được cấu hình để sử dụng sản xuất, kết quả của nhà phát triển không thể cấu hình lại trước khi chạy hệ thống là gì? Một nhà phát triển chạy mã chống lại sản xuất.

Bất kể liệu có những rào cản khác trong cách nhà phát triển thực hiện các thay đổi ngẫu nhiên trong sản xuất, xây dựng trong chế độ thất bại khuyến khích điều đó xảy ra có vẻ nguy hiểm.

Tôi đề nghị rằng các giá trị mặc định được bao gồm trong mã cam kết phải luôn an toàn . Kiểm tra các tệp cấu hình sản xuất thành kiểm soát nguồn, nếu bạn thích - tôi hầu như luôn luôn làm - nhưng giữ chúng ở một nơi nào đó "không tồn tại".


0

Tôi có xu hướng phấn đấu cho sản xuất thân thiện. Nó giữ cho các bản dựng của bạn sạch sẽ và ngăn các cài đặt bên ngoài đưa nó vào sản xuất.


0

Chắc chắn nhà phát triển thân thiện, với các tập lệnh để tự động hóa các thay đổi cho QA & sản xuất.


-1

Tại sao không có một nhánh (tùy thuộc vào kiểm soát phiên bản nào bạn sử dụng - Tôi sử dụng Git) cho mã có thể triển khai và khác cho phiên bản sẵn sàng của nhà phát triển? Điều này nghe có vẻ tốt hơn nhiều và không khó để thiết lập.

Bạn có thể làm việc và cam kết các thay đổi của mình và sau đó hợp nhất chúng trên phiên bản có thể triển khai.


Bởi vì các chi nhánh tồn tại lâu rất tốn kém để quản lý và có xu hướng khó hợp nhất. Bạn phải nhớ thực hiện tất cả các thay đổi trên cả hai nhánh. Tốt hơn nhiều để làm cho cả hai phiên bản giống nhau và / hoặc có một tập lệnh để tạo ra artifcat có thể triển khai từ mã sẵn sàng của nhà phát triển.
bdsl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.