Ý tưởng thực sự rất hay. Trái với quy trình công việc thông thường, bạn giữ đánh giá trực tiếp bằng mã, vì vậy về mặt kỹ thuật, bạn không cần bất cứ điều gì ngoài trình soạn thảo văn bản để sử dụng quy trình công việc này. Sự hỗ trợ trong IDE cũng rất tốt, đặc biệt là khả năng hiển thị danh sách các đánh giá ở phía dưới.
Nó hoạt động tốt cho các nhóm rất nhỏ, nhưng các đội lớn hơn sẽ yêu cầu theo dõi những gì đã được xem xét, khi nào, bởi ai và với kết quả nào. Mặc dù bạn thực sự có loại theo dõi này (kiểm soát phiên bản cho phép biết tất cả những điều đó), nhưng việc sử dụng và tìm kiếm cực kỳ khó khăn và thường sẽ yêu cầu tìm kiếm thủ công hoặc bán thủ công thông qua các phiên bản.
Tôi không tin rằng người đánh giá có đủ phản hồi từ người đánh giá để biết các điểm đánh giá đã thực sự được áp dụng như thế nào .
Hãy tưởng tượng tình huống sau đây. Alice đang xem xét lần đầu tiên mã của Eric. Cô nhận thấy rằng Eric, một nhà phát triển trẻ tuổi, đã sử dụng cú pháp không phải là mô tả nhất trong ngôn ngữ lập trình thực sự được sử dụng.
Alice đề xuất một cú pháp thay thế và gửi lại mã cho Eric. Anh ta viết lại mã bằng cú pháp thay thế này mà anh ta tin là hiểu chính xác và xóa // BLA
bình luận tương ứng .
Tuần sau, cô nhận được mã cho lần đánh giá thứ hai. Liệu cô ấy có thể thực sự nhớ rằng cô ấy đã đưa ra nhận xét này trong lần đánh giá đầu tiên của mình, để xem Eric đã giải quyết nó như thế nào không?
Trong một quy trình đánh giá chính thức hơn, Alice có thể thấy ngay rằng cô ấy đã nhận xét và xem sự khác biệt của mã liên quan, để nhận thấy rằng Eric đã hiểu sai cú pháp mà cô ấy nói với anh ta.
Mọi người vẫn là người. Tôi khá chắc chắn rằng một số ý kiến đó sẽ kết thúc bằng mã sản xuất và một số sẽ vẫn là rác trong khi đã hoàn toàn lỗi thời .
Tất nhiên, cùng một vấn đề tồn tại với bất kỳ bình luận nào khác; ví dụ, có rất nhiều bình luận TODO trong sản xuất (bao gồm cả bình luận hữu ích nhất: "TODO: Nhận xét mã bên dưới.") và rất nhiều bình luận không được cập nhật khi có mã tương ứng.
Ví dụ: tác giả ban đầu của mã hoặc người đánh giá có thể rời đi và nhà phát triển mới sẽ không hiểu đánh giá nói gì, vì vậy bình luận sẽ tồn tại mãi mãi, chờ đợi rằng ai đó sẽ quá can đảm để xóa sạch nó hoặc thực sự hiểu những gì nó nói rằng.
Điều này không thay thế đánh giá trực tiếp (nhưng vấn đề tương tự cũng được áp dụng cho bất kỳ đánh giá chính thức nào khác không được thực hiện trực tiếp).
Đặc biệt, nếu đánh giá ban đầu yêu cầu giải thích, người đánh giá và người đánh giá sẽ bắt đầu một cuộc thảo luận . Không chỉ bạn sẽ thấy mình có các bình luận BLA lớn, mà các cuộc thảo luận đó cũng sẽ làm ô nhiễm nhật ký của kiểm soát phiên bản .
Bạn cũng có thể gặp phải các vấn đề nhỏ với cú pháp (cũng tồn tại đối với các nhận xét TODO). Ví dụ: nếu một bình luận "// BLA" dài xuất hiện trên một số dòng và ai đó quyết định viết nó theo cách này:
// BLA This is a very long comment which is way beyond 80 characters, so it actually
// fills more then one line. Since the next lines start with slashes, but not "BLA"
// keyword, the IDE may not be able to show those lines, and display only the first one.
Và cuối cùng là một lưu ý nhỏ và rất riêng tư: không chọn "BLA" làm từ khóa. Nghe có vẻ xấu xí. ;)