Code review checklist và những điều lập trình viên nào cũng cần biết
Team của tôi sử dụng một code review checklist để tránh việc mắc phải một số sai lầm ngớ ngẩn, khiến chúng tôi gặp khó khăn và lãng phí thời gian. Trong bài viết này, tôi muốn chia sẻ lý do nhóm quyết định dùng code review checklist, có gì trong đó cũng như là cách chúng tôi tạo, sử dụng và cải thiện code review checklist của mình.
Tại sao lại cần tới code review checklist?
Chúng tôi đã nhận ra quá trình review code của mình đang bị “tắc nghẽn”. Thông thường các vấn đề lại đến từ việc mắc phải các sai lầm ngớ ngẩn như quên chạy các unit tests hoặc thiếu một requirement. Trong thực tế, “những sai lầm ngu ngốc” này mới chính là nguyên nhân khiến phần lớn code của chúng tôi thất bại.
Hơn thế nữa, quá trình review code cũng không được thực hiện tốt khiến cho mọi thứ càng trở nên lộn xộn hơn. Vì vậy mà code review checklist trở thành một trong những yêu cầu cấp thiết khi làm việc nhóm.
Lợi ích của code review checklist
Checklist là cách tuyệt vời để đảm bảo bạn thực hiện đầy đủ tất cả các bước trong một task phức tạp, chẳng hạn như code review. Thay vì phải nhớ những gì cần tìm và xem lại code, bạn chỉ có thể review code và tin tưởng vào checklist để đảm bảo bạn bao gồm tất cả các điểm quan trọng. Miễn là bạn thực sự sử dụng code review checklist đúng cách thì mọi lỗi nhỏ nhặt sẽ được triệt tiêu hoàn toàn.
Có gì trong code review checklist của chúng tôi?
Code review checklist của chúng tôi đã có nhiều cập nhật theo thời gian. Sau đây là những version chúng tôi đang sử dụng:
DO-CONFIRM Code Review Checklist: Phạm vi: Giảm thiểu creep, không đưa ra thay đổi nhầm hoặc không liên quan tới task vào trong backlog Hoạt động chính xác: Specification chính xác và hoàn chỉnh, tạo testing plan, unit tests, master merged vào branch, test mọi thay đổi, Không có lỗi Tính bảo mật: tất cả inputs cho public methods validated, tất cả return codes được kiểm tra, bảo mật Dễ đọc và dễ hiểu: trừu tượng hóa và phân tích vấn đề, giao diện tối thiểu, ẩn thông tin, nguyên tắc truy vấn, đặt tên tốt, tài liệu và ý kiến có ý nghĩa, được tái cấu trúc đầy đủ (sử dụng phán quyết với mã hiện có) Style và Layout: code formatter run, độ dài dòng, kiểu dáng phù hợp với nguyên tắc của dự án Cân nhắc cuối cùng: BẠN HOÀN TOÀN HIỂU RÕ CODE VÀ TÁC ĐỘNG CỦA CÁC THAY ĐỔI BẠN ĐÃ THỰC HIỆN VÀ … mọi task đều đã được thực hiện và thỏa mãn. |
Cách chúng tôi tạo code review checklist
Chúng tôi đã tạo danh sách checklist dựa theo các bước trong quy trình code review và các vấn đề chúng tôi đã nhận được từ pull request. Sau đó, chúng tôi thu thập tất cả các chi tiết đó vào code review checklist ban đầu. Nó sau đó sẽ được kiểm tra và sàng lọc trong vòng 1 tuần tiếp theo.
Khi chúng tôi hài lòng thì code review checklist sẽ được chuyển thành dạng biểu mẫu của Google. Chúng tôi cũng bao gồm một số bổ sung về dữ liệu mà nhóm quan tâm:
- Tên người pull request và người đánh giá
- Mất bao lâu để thực hiện code review
- Kết quả (pass/fail)
Cách chúng tôi sử dụng code review checklist
Tác giả của một pull request sẽ tự review code của mình bằng cách sử dụng code review checklist. Anh ta sẽ fix bất kỳ vấn đề nào và sau đó releases pull request để review lại.
Người đánh giá sử dụng phiên bản checklist biểu mẫu của Google để xem xét và thực thu kết quả. Chúng tôi thường hoàn tất điều này trong chưa đầy hai phút và đính kèm phản hồi cụ thể cho tác giả của code đó trong BitBucket.
Chúng tôi đã thấy tự review cũng quan trọng như việc nhận review từ người khác. Thật đáng ngạc nhiên khi bạn sẽ nhận ra biết bao nhiêu vấn đề khi bạn tự thực hiện một checklist cho code của mình.
Cách chúng tôi cải thiện code review checklist của mình
Code review checklist của chúng tôi là một tài liệu sống. Chúng tôi liên tục review định kỳ và thêm hoặc xóa các vấn đề nếu cần thiết. Chúng tôi cũng khuyến khích các lập trình viên giữ phiên bản code review checklist của riêng họ.
Đọc thêm
Có rất nhiều tài nguyên cho lập trình viên muốn bắt đầu sử dụng danh checklist. Nhưng tôi sẽ đề cập đến một vài ở đây:
Sách: The Checklist Manifesto: How to Get Things Right (Atul Gawande
Sách: Code Complete (Steve McConnell) chứa nhiều mẫu checklist cho các hoạt động lập trình khác nhau.
Dev.to
- Quản lý chi tiêu, thu/chi kinh doanh, tài chính cá nhân,... trên smartphone
- Hướng dẫn cài đặt
- Hướng dẫn sử dụng APP QUẢN LÝ THU CHI, loại thu/chi nhiều lần, thu/chi hợp đồng, thu/chi nợ, trả góp,...
- Mẫu file excel theo dõi Quản lý Nhập Xuất Tồn đơn giản
- Cách tra cứu Chứng minh nhân dân, hay Thẻ Căn cước Công dân
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>