Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Những nguyên tắc cơ bản của review code

1 Hiểu lầm về Code Review

Rất nhiều ý kiến cho rằng Code Review là chỉ là công việc "cực chẳng đã", chỉ áp dụng lên fresher hoặc junior nhằm đảm bảo code của họ chạy tốt. Và tất nhiên người tiến hành review thường mang rank senior trở lên.

Thực ra để đảm bảo code chạy tốt, ta cần các bộ test phù hợp với thực tế. Còn code review thì không chỉ đơn thuần là đọc - hiểu - phân tích - đề xuất giải pháp để đảm bảo code chạy tốt, nó là cả một nghệ thuật mà chúng ta chỉ có thể khám phá nhờ tư duy và kinh nghiệm.

2 Sự thật

Khi nhắc đến Code Review, tác giả đưa ra 5 đặc trưng cơ bản, cũng có thể hiểu là 5 lợi ích của quá trình này:

  • Nỗ lực đảm bảo chất lượng code:  khi một lập trình viên biết rằng đoạn code mà anh ta đang viết sẽ bị "bắt lỗi" và thậm chí là bị chỉ trích bởi một người giỏi hơn, anh ta sẽ cố gắng để đoạn code đó chạy đúng và tối ưu. Đồng nghĩa với việc anh ta đang cố viết code ngày một tốt hơn. Ngay cả khi tay lập trình viên này thất bại trong việc viết ra một đoạn code "chuẩn", anh ta vẫn được hướng dẫn đầy đủ từ người review. Và cuối cùng thì một đoạn code "chuẩn" sẽ được nạp vào hệ thống...
  • Đảm bảo code dễ đọc: tôi cá là rất nhiều người không  dám nhìn lại code thời sinh viên, hay thậm chí là code của mình 6 tháng trước đây. Code không theo một quy chuẩn cụ thể khiến việc bảo trì gặp vô vàn khó khăn vì ta phải đọc lại mọi thứ từ đầu. Review code sẽ "ép" lập trình viên vào một khuôn khổ thích hợp để đảm bảo code sạch sẽ, dễ đọc.
  • Chia sẻ kiến thức: đối với người được review, họ sẽ học thêm được kiến thức mới từ các đàn anh, còn đối với reviewer, đây là cơ hội quý để ôn lại kiến thức.
  • Nâng cao tư duy hệ thống: trong các phiên code review, lập trình viên sẽ có cơ hội tiếp cận với toàn bộ các thành phần của hệ thống. Điều này giúp họ có được cái nhìn toàn cảnh về hệ thống cũng như các phương pháp design được áp dụng trong thực tế.
  • Làm việc với các quy chuẩn của team: yếu tố này vừa là nhiệm vụ vừa là quyền lợi của các tân binh. Là nhiệm vụ bởi bất kỳ thành viên nào trong team đều phải tuân theo quy chuẩn tương ứng nhằm đảm bảo hiệu suất làm việc và tính linh hoạt cho hệ thống. Là quyền lợi bởi các tân binh sẽ được "huấn luyện" trực tiếp bởi các đàn anh, nhờ đó có cơ hội nâng cao kỹ năng và phong cách làm việc chuyên nghiệp.

3 Áp dụng

  1. Mỗi lập trình viên cố gắng tham gia quá trình Code Review dưới 2 hình thức là người đi review và người được review. Việc này mang đến trải nghiệm đầy đủ nhất của quá trình Code Review.
  2. Chỉ tiến hành sau khi code đã được test nhằm tiết kiệm thời gian và tránh các loại lỗi hoặc warning gây khó chịu cho người review.
  3. Tiến hành càng nhanh càng tốt để đảm bảo sự tập trung của các thành viên và tính liền mạch của công việc.

Via techtalk.vn