2009-08-20 26 views
26

Tôi đã quản lý để giới thiệu ReviewBoard cho quy trình mã hóa trong công ty của tôi, trong khi "giới thiệu" có nghĩa là đã cài đặt và trình bày nó. Chúng tôi cũng có một thỏa thuận chung rằng chúng tôi cần đánh giá mã một cách nghiêm túc, tuy nhiên, chúng tôi không hoàn toàn chắc chắn cách chúng tôi muốn làm điều đó.Chiến lược xem xét mã thành công với SVN và ReviewBoard?

Điều khiển sửa đổi chính của chúng tôi là SVN, vì vậy chúng tôi chỉ giới hạn trong phân nhánh và hợp nhất. Một số chiến lược tôi đã nghĩ đến:

  1. Đánh giá trước cam kết từ thân cây. Ưu điểm bao gồm có một bản vá duy nhất, không có mã chưa được xem xét trong kho lưu trữ. Độ tương phản phải giữ cho thanh toán của bạn sạch sẽ hoặc thực hiện phân nhánh của người nghèo với một số lần kiểm tra
  2. Đánh giá sau cam kết từ thân cây. Làm việc tốt với Hội đồng xét duyệt, tuy nhiên nó không ngăn cản mọi người thực hiện mã bẩn và cũng cho phép họ bỏ qua các yêu cầu xem xét.
  3. Đánh giá sau cam kết từ một chi nhánh tính năng. Ưu điểm là rõ ràng vì một tính năng có thể được làm việc độc lập, tuy nhiên có một nỗi đau lớn trong việc tạo ra các nhánh dựa trên máy chủ và cũng là một nỗi đau lớn hơn nhiều trong việc giữ các nhánh khác nhau được đồng bộ hóa. Đồng thời xem mục 2.

Tôi muốn làm điều này càng không đau càng tốt, vì vậy có thể có một số bổ sung tự động cho quy trình làm việc, như robot có mã kiếm được ít nhất X "Gửi hàng!" bình chọn và làm cho Hội đồng xét duyệt "theo dõi" một chi nhánh tính năng với các commit-hooks. Tuy nhiên, tôi không chắc chắn quy trình xem xét mã nào có thể là tốt nhất cho nhóm của chúng tôi gồm khoảng 8 người lập trình. Chúng tôi sẽ không thể thay đổi các hệ thống kiểm soát sửa đổi, tức là git-svn và SVK không nằm trong câu hỏi (trong khi câu hỏi sau vẫn bị chết).

Bạn có thể đề xuất bất kỳ điều gì từ trải nghiệm của mình không?

Trả lời

4

cơ sở bạn hệ thống trên sự tin tưởng và trách nhiệm giải trình và giữ cho nó trọng lượng nhẹ:

  1. Sử dụng phán đoán tốt: 'Bạn có thể kiểm tra bất cứ điều gì trong bất cứ lúc nào. Yêu cầu xem xét mã khi bạn cần. Thêm 'được xem xét' vào các nhận xét nếu nó được xem xét để tạo điều kiện đánh giá nhanh.
  2. Ban đánh giá chịu trách nhiệm giám sát các thay đổi thông qua các móc cam kết. Nếu họ nhìn thấy một cái gì đó họ không thích, mang nó lên với các nhà phát triển. Các thành viên khác nhau có thể xem xét các phần khác nhau.
  3. Nếu nhà phát triển tiếp tục kiểm tra trong crap mà không yêu cầu xem xét, hãy kích hoạt chúng.
  4. Nếu có các phần của hệ thống phức tạp bất thường/trung tâm/dễ gây rối - hãy khóa những thứ đó và yêu cầu phê duyệt để đăng ký.
  5. Mọi người đều có thể theo dõi đăng ký. Việc đánh giá không chỉ dành cho ban đánh giá.

Tôi đã nhìn thấy công việc này với 2 nhà phát triển và với 100.

+5

Tôi nghĩ bạn đã đọc sai "Bảng đánh giá" là "bảng đánh giá". Nó không phải là một ủy ban, mà là một phần mềm: http://www.review-board.org –

5

Một combo của bạn # 2 và # 3 (có lẽ với đánh giá thân cây viết tắt nếu chi nhánh tính năng đã được xem xét) có thể làm việc tốt . Tôi thấy các đánh giá trước cam kết một chút của một quá trình ngột ngạt - tốt hơn để có một sự nhiệt tình (giữ kindled của bạn?) Để xem xét lây nhiễm toàn bộ nhóm.

Tôi khuyên bạn nên sử dụng cuốn sách miễn phí của SmartBear, Best Kept Secrets of Peer Code Review, một đặc điểm điều trị khá đồng đều. xem xét tác giả của nó bán bộ đánh giá mã thương mại. (Tôi không làm việc cho họ, cũng không sử dụng sản phẩm của họ, FWIW.)

Sách đó sẽ giúp bạn suy nghĩ qua cả quy trình công việc có thể cho môi trường của bạn và cách giới thiệu quy trình công việc, giải thích cho nhóm biết tại sao bạn có thể muốn đánh giá x-trăm LoC hoặc ít hơn của chuyến tham quan có hướng dẫn trước khi đánh giá, v.v.

4

Chúng tôi đang ở vị trí tương tự.

Bạn có cấu hình svn để gửi email cho tất cả các nhà phát triển của mình với mọi cam kết không? Đây là một bước đầu tiên tốt trong việc giữ cho mọi người trung thực. Chúng tôi gửi một email với thông điệp tường trình, 200 dòng đầu tiên của svn diff, và một liên kết đến toàn bộ diff trong trac (mà về cơ bản chỉ sử dụng để hiển thị svn diffs).

Nếu nhà phát triển cho rằng thay đổi cần được xem xét sau khi thực tế, chúng tôi sử dụng ReviewBoard để thực hiện đánh giá.

Mặt khác, nhà phát triển cũng có thể yêu cầu xem xét trước khi đăng ký. Cho dù họ đã phát triển các thay đổi trên chi nhánh tính năng hoặc trong hộp cát cố định, sẽ không có sự khác biệt. Chúng tôi đã xem xét việc điều chỉnh kịch bản để tải lên yêu cầu đánh giá từ dòng lệnh, nhưng quá trình này đơn giản đến nỗi chúng tôi chưa làm như vậy, ít nhất là.

Đề xuất tổng thể của tôi là giới thiệu một hệ thống thủ công và tự động hóa nó, và có thể thực thi nó bằng các kịch bản trước khi cam kết, một khi bạn hài lòng với quy trình. Với một nhóm nhỏ đặc biệt là tốt hơn là sai lầm về phía thực thi áp lực ngang hàng vì bạn muốn giảm thiểu số lượng quy trình giết chết năng suất ít.

4

Gần đây, chúng tôi đã giới thiệu ReviewBoard vào quy trình của chúng tôi. Trước khi chúng tôi thêm ReviewBoard, chúng tôi có những điều sau đây tại chỗ:

  1. SVN với e-mail tự động được gửi đến tất cả các nhà phát triển cho mọi lần đăng ký.
  2. ViewCV tích hợp với để cho phép các khác biệt được xem sau cam kết với trình duyệt.
  3. Tập lệnh SCM-lỗi được tích hợp với SVN để các nhà phát triển phải bao gồm một id lớn có đăng ký của họ.
  4. Buildbot được tích hợp với SVN để tự động chạy kiểm tra sau mỗi lần đăng ký.

Vì chúng tôi đã có công cụ hậu cam kết khá tốt với các nội dung khác, chúng tôi sử dụng ReviewBoard làm công cụ tiền cam kết và chỉ sau khi chúng tôi nhấn 'hoàn thành tính năng' cho một bản phát hành nhất định.

0

Trong những phát triển lớn hơn, các nhánh tính năng là không thể tránh khỏi. Với SVN, không thể "cập nhật" nhánh tính năng từ thân cây ra khỏi bản sao làm việc. Tuy nhiên, bạn có thể thường xuyên sáp nhập và tạo ra các chi nhánh mới.

Nhân tiện, RB cũng biết xử lý các đánh giá trước cam kết.

1

Tôi đồng ý với ý kiến ​​thứ nhất: Pre-cam kết xem xét từ thân cây

Kể từ khi việc sử dụng các công cụ codereview, chắc chắn rằng không có mã chưa được xem xét trong kho, và để giữ thanh toán của bạn sạch

+3

Đây không phải là một câu trả lời mới. Tốt nhất, điều này nên là một bình luận về câu trả lời bạn đồng ý. – David

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