2009-08-24 22 views
15

Tôi muốn biết tần suất mọi người đang thực hiện đánh giá mã và tần suất bạn cho rằng đó là quyền thực hiện đánh giá. Ngoài ra, tôi muốn nghe cách bạn thực hiện đánh giá mã của mình. Tôi đang sử dụng TTC cho bây giờ và tôi khá hài lòng với nó, nhưng tôi không nghĩ rằng nó được bao gồm tất cả các phần của mã.Tần suất đánh giá mã nên được thực hiện?

Trả lời

14

Chúng tôi luôn thực hiện đánh giá mã trước khi mã được cam kết vào thân cây. Tôi đồng ý với bình luận của Neil Butterworth rằng các cam kết thường xuyên là một cái gì đó được khuyến khích và yêu cầu đánh giá mã trước khi mọi cam kết đều ngăn cản điều này.

Điều kiện chính xác sẽ hoạt động phụ thuộc vào môi trường và dự án. môi trường của chúng tôi là như vậy:

  • Giữ đường chính của chúng ta về sự phát triển trong thân cây
  • Có một quy tắc rằng thân cây phải luôn làm việc (tức là không cam kết điều cần thân cây mà không biên dịch hoặc không kiểm tra , vv)
  • Chi nhánh cho từng trường hợp (tính năng, sửa chữa lỗi, vv)
  • Thực hiện xem xét mã khi làm việc tại một chi nhánh cho xong
  • Merge chi nhánh xuống thân cây khi nó đi xét
  • Khi bản phát hành được tạo, chúng tôi gắn thẻ bản sửa đổi và bản phát hành vàng. Tất cả các bản sửa lỗi mới cho một bản phát hành cụ thể diễn ra trong nhánh đó. Phát hành các chi nhánh không bao giờ sáp nhập trở lại vào thân cây.

Trong môi trường của chúng tôi, điều này cho phép các nhà phát triển để thực hiện thường xuyên (trong vòng giới hạn của chi nhánh riêng của họ) và cho mã đánh giá được thực hiện mỗi đơn vị làm việc (nhưng không phải tất cả các cam kết).

Làm thế nào để tiến hành đánh giá mã, đó là một câu hỏi đầy tham vọng hơn nhiều. Một xứng đáng câu hỏi riêng của nó trên SO (và có thực sự đã nhiều):

https://stackoverflow.com/questions/89163/how-to-conduct-a-successful-code-review Best Peer Code Review Software https://stackoverflow.com/questions/tagged/code-review

+0

Cách tiếp cận thú vị, bạn sử dụng công cụ nào để hợp lý hóa việc này để không có một bước gazillion nào liên quan khi bắt đầu làm việc trên một lỗi/tính năng/bất cứ điều gì? –

+0

+1: Đây là thực hành tiêu chuẩn khá nhiều cho tất cả các dự án tôi đã làm việc. Dễ dàng và đơn giản. –

+0

Chúng tôi sử dụng FogBugz để theo dõi trường hợp của chúng tôi và Subversion để kiểm soát nguồn của chúng tôi. Khi chúng tôi bắt đầu làm việc trên một trường hợp, chúng tôi chỉ chi nhánh từ thân cây với TortoiseSVN và chuyển đổi bản sao làm việc của chúng tôi. Sau đó, khi công việc hoàn tất và sẵn sàng để xem xét, chúng tôi chỉ giao trường hợp cho người đánh giá. Khi quá trình xem xét hoàn tất, nhà phát triển ban đầu sẽ hợp nhất nó vào trong thân cây với TortoiseSVN. Tôi tin rằng FogBugz 7 (chúng tôi vẫn còn trên 6) cung cấp quản lý dòng công việc, vì vậy bạn có thể tự động hóa một chút công việc, nhưng không phải là các bước SVN. Chúng tôi đã không thấy rằng khó khăn hoặc tẻ nhạt để làm theo quy trình làm việc này. –

1

Trước khi đăng ký. Đăng ký thường được kết nối với kết thúc logic của hàm/mô-đun (tùy thuộc vào người lập trình), vì vậy đây là thời điểm tốt. Khi mã được kiểm tra trong nó đã được khó khăn để theo dõi những người được mã hóa những gì và khi nào.

+3

Tôi hoàn toàn không đồng ý rằng một bài đánh giá mã phải diễn ra trước khi một check-in. Thường xuyên kiểm tra là một cái gì đó để được khuyến khích, và xem xét mã, mặc dù một công cụ cần thiết, chỉ có thể nhận được trong cách này. –

+0

@ Neil, bạn có thể trả lời bằng các lựa chọn thay thế của bạn không? –

+0

Cũng là một ý kiến ​​hay khi có mỗi đánh giá về quy mô nhóm của bạn cảm thấy thoải mái. Bạn đang tìm kiếm một sự cân bằng giữa kích thước của các thay đổi và tần suất mà các đánh giá được thực hiện. Các đoạn quá lớn và người đánh giá mất hứng thú và có thể che đậy hơn là chú ý kỹ. Các đánh giá quá thường xuyên có thể bị trì hoãn vì lợi ích của công việc thực tế của người đánh giá. –

1

Bất kỳ lúc nào bất kỳ mã nào sẽ được đăng ký, vì vậy trước khi đăng ký. Tuy nhiên, bạn có thể muốn thực hiện thường xuyên hơn tùy thuộc vào dự án.

Nếu ai đó đang làm việc trong một dự án sẽ mất vài tuần và họ sẽ không kiểm tra bất kỳ mã nào trong khoảng thời gian đó, mã sẽ được nhận khi các thành phần khác nhau của dự án được thực hiện. Lý do cho việc này là nó sẽ có mã liên tục được xem xét để đảm bảo một mẫu thiết kế xấu không được lặp lại thông qua toàn bộ dự án và các thay đổi cần thiết từ đánh giá ít hơn.

Tôi cũng sẽ đề xuất nhà phát triển cơ sở hơn là mã thường xuyên hơn nên được xem xét.

+4

Không nhận phòng trong tuần? Mã nên được kiểm tra trong nhiều lần trong ngày. –

+0

Có thể một cách tốt hơn là quảng cáo cho chi nhánh cha mẹ thay vì đăng ký. –

Các vấn đề liên quan