Cách tốt nhất để bình luận trong một đánh giá mã là gì?


13

Nhóm của tôi mới bắt đầu sử dụng nồi nấu kim loại / mắt cá để bắt đầu đánh giá mã mỗi khi một trong số chúng tôi kiểm tra thứ gì đó. Chỉ có 3 người chúng tôi và mỗi người chúng tôi được khuyến khích xem lại mã và để lại nhận xét phù hợp.

Câu hỏi của tôi là, làm thế nào tốt nhất để tôi nhận xét về một dòng mã tôi thấy có vấn đề với? Tôi muốn có được quan điểm của tôi mà không có vẻ mài mòn.

Tôi không muốn có vẻ như tôi đang ở trên một con ngựa cao và nói " Tôi đã làm theo cách này ... và tôi cũng không muốn có vẻ như tôi đang cố gắng có thẩm quyền và nói điều gì đó như " Điều này nên được thực hiện theo cách này ... " nhưng tôi vẫn cần phải nhận ra rằng những gì họ đang làm không tốt lắm.

Để làm rõ: Đây là một tài nguyên thực sự tốt cho những gì tôi nên tìm kiếm để nhận xét về: Một đánh giá mã là chủ quan hay khách quan (định lượng)? , nhưng tôi đang tìm cách bình luận về nó.


2
ngoài việc ném tên của FishEye và Crucible (công cụ yêu thích của tôi btw) tôi thấy không có gì lập trình cụ thể ở đây. Người ta có thể nhận được nhiều lời khuyên về những thứ như vậy bằng cách tìm kiếm trên web một cái gì đó như cách cung cấp phản hồi mang tính xây dựng
gnat


@caleb, tôi không đồng ý, đây là về cách diễn đạt các bình luận hơn các chủ đề khác.
HLGEM

1
@HLGEM Tôi muốn nói rằng đó chính xác là những gì bản dupe được đề xuất nói về: "Làm thế nào tôi có thể gợi ý một cách khéo léo ...". Nói chung, tập trung vào giải quyết các vấn đề tồn tại trong mã được xem xét, không phải về phong cách hoặc sở thích cá nhân của riêng bạn. Giải thích làm thế nào đề xuất của bạn làm cho mã tốt hơn.
Caleb

@stinkycheeseman chỉ cần cho người khác biết rằng làm theo cách của bạn là tốt hơn. và những người trong nhóm của bạn sẽ học được điều gì đó thông qua quy trình.
upton

Câu trả lời:


8

Vâng, tôi có xu hướng bình luận trong một số lĩnh vực chung và mỗi loại có thể được xử lý khác nhau.

Yêu cầu thay đổi. Đây là những loại thay đổi mà tôi chỉ ra rằng mã không đáp ứng các yêu cầu chức năng hoặc không hoạt động và phải được sửa trước khi được đưa vào sản xuất. Tôi có xu hướng rất thẳng thắn trong những bình luận này. Các yêu cầu nói ..., điều này không làm điều đó. Hoặc điều này sẽ thất bại nếu giá trị được gửi vào là null (đặc biệt là khi bạn biết trường hợp đó sẽ xảy ra dựa trên dữ liệu sẽ được gửi vào).

Sau đó, có "ý kiến ​​này hoạt động nhưng đây là một cách tốt hơn để thực hiện ý kiến ​​đó". Bạn phải nhẹ nhàng hơn trong những điều này và làm nhiều hơn một doanh số bán hàng. Tôi có thể nói rằng tôi sẽ làm điều này thay vì bởi vì nó có khả năng hoạt động tốt hơn (tôi thường xem lại mã SQL trong đó hiệu suất rất quan trọng). Tôi có thể thêm một số chi tiết về lý do tại sao nó là một lựa chọn tốt hơn giống như tôi sẽ làm khi trả lời một câu hỏi trên Stack Overflow. Tôi có thể chỉ ra rằng không cần thiết phải thay đổi mã này cho mã cụ thể này, nhưng phải xem xét sự thay đổi trong mã hóa trong tương lai. Về cơ bản với những loại bình luận này, tôi đang giáo dục những người ít kinh nghiệm về những gì có thể làm việc tốt hơn.

Sau đó, có những bình luận "điều này hoạt động nhưng chúng tôi làm mọi thứ theo cách này". Đây có lẽ cũng sẽ được yêu cầu thay đổi. Chúng sẽ bao gồm các ý kiến ​​về các tiêu chuẩn của công ty hoặc kiến ​​trúc mà chúng tôi mong đợi chúng sử dụng. Tôi sẽ tham khảo tài liệu tiêu chuẩn hoặc kiến ​​trúc và bảo họ sửa theo tiêu chuẩn. Nhận xét sẽ đơn giản nhưng trung lập, do đó nó bị thiếu và do đó hoặc các tên biến không phù hợp với tiêu chuẩn đặt tên hoặc các điều tương tự của chúng tôi. Chẳng hạn, kiến ​​trúc của chúng tôi cho các gói SSIS yêu cầu gói sử dụng cơ sở dữ liệu siêu dữ liệu của chúng tôi để lưu trữ thông tin cụ thể về gói và yêu cầu ghi nhật ký cụ thể. Gói sẽ hoạt động mà không có những thứ này nhưng chúng được yêu cầu vì lý do công ty (chúng tôi cần báo cáo về tỷ lệ nhập khẩu thành công chẳng hạn hoặc phân tích các loại lỗi chúng tôi nhận được.)

Điều duy nhất bạn không muốn làm trong các nhận xét đánh giá mã là tấn công cá nhân ai đó. Nó cũng có thể giúp nếu bạn tìm thấy một cái gì đó họ đã làm tốt và chỉ ra rằng đó là tốt. Đôi khi tôi học được điều gì đó mới từ đánh giá mã và nếu tôi đã nói với người đó.


1
Đoạn 3: Kinh nghiệm của tôi là chỉ giải thích một kỹ thuật tốt hơn hiếm khi đủ tốt (trừ khi nó rõ ràng). Bạn thường phải viết lại mã trước khi họ sẽ đánh giá đầy đủ các lợi ích và trở thành một tín đồ. Trong một hệ thống đánh giá chỉ nhận xét, điều này là khó thực hiện. Bạn có thể cần kết thúc bình luận của mình bằng câu "Hãy đến gặp tôi và chúng ta sẽ thảo luận về nó." để làm cho nó đáng giá.
mcmcc

@mcmcc, đó là một điểm công bằng hoặc bạn có thể giới thiệu họ đến một nơi khác trong mã nơi sử dụng một techinique tương tự. Tôi thường chỉ sử dụng các bình luận để kích hoạt một cuộc thảo luận thực tế sau đó trừ khi tất cả chúng đều tầm thường.
HLGEM

6

Nếu mã tuân theo các tiêu chuẩn mã hóa của bạn, nhưng bạn sẽ làm theo cách khác, bạn phải tự hỏi liệu những gì họ đã làm là sai.

Nếu không phải ... đó không phải là cách bạn sẽ làm nó và bạn không thể rời bỏ nó, hãy thử hỏi 'Tại sao bạn lại làm theo cách này thay vì cách đó?' Sau đó, bạn sẽ khiến họ đủ điều kiện tại sao họ làm theo cách họ đã làm mà không nói 'Tôi sẽ làm theo cách này và bạn cũng nên ...'

Bạn cũng có thể học được điều gì đó trong quá trình này.


4

Tôi muốn có được quan điểm của tôi mà không có vẻ mài mòn.

Đừng nhầm lẫn sự căng thẳng với mài mòn. Khi một cái gì đó là một vấn đề, tài liệu theo cách mà bất cứ ai sẽ sửa chữa nó có thể hiểu. Bám sát sự thật và đừng viết một bài luận. Để dí dỏm:

  • Điều này sẽ khiến frobnitz gặp trục trặc khi fooble nằm trong 5 điểm yếu của yếu tố snorgatz.

  • Quy ước được thiết lập để thực hiện điều này là gọi fazzatz () với một Squall mới được khởi tạo. Biến điều này thành một phương thức để nó luôn diễn ra theo cùng một cách và không bị trùng lặp.

    Tôi cũng không muốn có vẻ như tôi đang cố tỏ ra có thẩm quyền và nói điều gì đó như "Điều này nên được thực hiện theo cách này ..." nhưng tôi vẫn cần phải nhận ra rằng những gì họ đang làm không tốt lắm .

Mục đích của việc xem xét mã là đặt một cặp mắt thứ hai, thường có nhiều kinh nghiệm hơn vào nó để giải quyết các vấn đề. Nếu bạn ở vị trí chuyển phán quyết cho công việc của người khác và có lý do chính đáng để nói điều gì đó không tốt, bạn sẽ bỏ qua trách nhiệm của mình với tư cách là người đánh giá nếu bạn không làm vậy.

Sẽ có những bất đồng, và đó là những cơ hội để người đánh giá và người được đánh giá bảo vệ vị trí của họ. Nếu bạn khác và bạn gặp khó khăn, hãy tìm một người cao cấp để phá vỡ mối quan hệ.


+1 chỉ cho yếu tố snorgatz (tôi cũng thích phần còn lại của câu trả lời)
HLGEM

3

Nó phụ thuộc vào loại vấn đề đã được chú ý

  • thiếu thông báo copywrite - một vấn đề phổ biến và nhàm chán chỉ là một nhận xét ngắn gọn nêu rõ vấn đề và tiếp tục
  • những nơi mà tôi có thể làm điều đó khác đi - thường có xu hướng đặt câu hỏi ở đây hơn là đưa ra tuyên bố, đôi khi câu trả lời sẽ biện minh cho giải pháp ban đầu vào lúc khác và sau đó tôi có thể giải quyết những câu hỏi đó một cách rõ ràng hơn
  • những nơi có khiếm khuyết rõ ràng, ví dụ như ghi đè bằng nhau có thể xếp chồng lên nhau - với bút đỏ - đánh dấu nó là một khiếm khuyết và rất rõ ràng tại sao nó bị hỏng - cũng kiểm tra các khu vực tương tự khác để kiểm tra xem có vấn đề hệ thống nào không.

1

Từ kinh nghiệm của tôi:

  1. Luôn có tác giả của mã với bạn trong khi xem xét mã của mình. Tốt nhất là mã được chiếu trên bảng trắng và cả hai bạn có thể thấy rõ mã rất tốt.

  2. Có một cuộc trò chuyện thân thiện. Đánh giá cao phần tốt của mã hóa. Nói với anh ta rằng "đây là điều tốt nhất tôi đã thấy" nếu bạn thấy một số phần hay trong mã.

  3. Yêu cầu anh ta xem lại mã của bạn và chấp nhận và đồng ý với các điểm hợp lệ và sửa lỗi cho anh ta. Hãy tôn trọng ý kiến ​​của anh ấy trong mã của bạn và anh ấy sẽ tự động tôn trọng nhận xét đánh giá mã của bạn.
  4. Xử lý ở cấp độ nhà phát triển trừ khi nó rất quan trọng hoặc cần thêm thời gian để sửa các vấn đề xem xét mã. Đừng leo thang cho các nhà quản lý đơn giản nếu điều kiện thiếu các vấn đề.
  5. Nhìn với quan điểm "Học từ mã khác" thay vì chỉ ra lỗi trong mã.
  6. Trong các buổi đánh giá mã, hãy trích dẫn những sai lầm trong quá khứ mà bạn đã mắc phải và cách đánh giá mã đã giúp bạn và tránh các vấn đề sản xuất lớn vì một đôi mắt khác đã giúp bạn.
  7. Khiêm tốn. Đánh giá cao hơn và ít bình luận hơn cho anh ấy :) Bạn sẽ học được rất nhiều trong quá trình xem xét mã và anh ấy cũng sẽ sẵn sàng chấp nhận ý kiến ​​của bạn.
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.