PR description và comment trong code: Sự khác biệt mà mọi lập trình viên cần biết
Chuyên gia kỳ cựu của Microsoft, Raymond Chen, phân tích rõ sự khác biệt giữa mô tả pull request (PR) và comment trong mã nguồn, nhấn mạnh PR là bài viết thuyết phục còn comment là tài liệu bền vững. Bài viết cũng đề cập đến thách thức mới khi AI tạo ra lượng lớn PR và code, cùng quan điểm về định dạng code trong bối cảnh công cụ phát triển hiện đại.

PR description và comment trong code: Sự khác biệt mà mọi lập trình viên cần biết
Chuyên gia kỳ cựu của Microsoft, Raymond Chen, vừa chia sẻ quan điểm sâu sắc về hai khái niệm thường bị nhầm lẫn trong quy trình phát triển phần mềm: mô tả pull request (PR) và comment trong mã nguồn. Theo ông, mỗi loại phục vụ một mục đích hoàn toàn khác nhau, và việc hiểu rõ điều này sẽ giúp các nhóm phát triển làm việc hiệu quả hơn, đặc biệt trong bối cảnh AI tạo ra ngày càng nhiều mã nguồn.
Trên blog The Old New Thing nổi tiếng của mình, Raymond Chen nhấn mạnh: "Mô tả PR là một tuyên bố mang tính thời điểm, cung cấp thông tin liên quan đến quá trình đánh giá mã nguồn. Nó là một bài tập viết thuyết phục: Bạn đang cố gắng thuyết phục người duyệt rằng thay đổi của bạn nên được chấp nhận."
Vai trò khác biệt giữa mô tả PR và comment trong code
Chen giải thích rõ ràng ranh giới giữa hai khái niệm này:
-
Mô tả PR: Là thông tin "sống" trong thời điểm đánh giá, giải thích lý do, bối cảnh và cách tiếp cận của thay đổi. Nó giống như một bài luận thuyết phục người duyệt code.
-
Comment trong code: Là thông tin "bền vững" vượt thời gian, giúp các lập trình viên tương lai hiểu được cách sử dụng hàm, các điều kiện tiên quyết, hoặc logic phức tạp. Comment vẫn hữu ích ngay cả sau khi PR đã được hoàn tất.
"Comment trong code là để nói về chính code đó. Cách gọi hàm này đúng là gì? Nó có yêu cầu tiên quyết cụ thể nào không? Thông tin này mang tính bền vững: Nó vẫn hữu ích sau khi PR hoàn tất."
Nhiều ý kiến cho rằng thông điệp commit (commit message) cũng cần được xem xét, nhưng sự phân biệt giữa mô tả PR và comment code vẫn rất đúng lúc, đặc biệt khi các công cụ AI đang tạo ra một lượng lớn PR cùng với những chú thích đôi khi "khá thú vị".
Thách thức từ mã nguồn do AI tạo ra
Trong bối cảnh AI tạo mã ngày càng phổ biến, Chen chỉ ra rằng những ai phàn nàn về comment trong code do AI tạo ra nên nhìn lại những comment được viết bởi lập trình viên con người từ nhiều thập kỷ trước. Có những đồng nghiệp cũ của ông viết cả trang giấy xin lỗi các lập trình viên tương lai vì phải gỡ rối mê cung C++ trong các module phức tạp. Một đồng nghiệp khác thì từ chối chú thích code hoàn toàn, khẳng định code của mình "tự giải thích".
Ngày nay, một comment trung thực có thể đọc: "Đoạn code này được viết bởi AI, và tôi không biết nó hoạt động bằng cách nào."
Quan điểm về định dạng code
Chen cũng lên tiếng về một cuộc tranh luận kinh điển khác: tab hay space để thụt lề code. Mặc dù quan điểm cụ thể của ông về tab và space không được biết đến rộng rãi, nhưng quan điểm tổng thể của ông về định dạng code rất rõ ràng:
"Tôi không quan tâm bạn định dạng mã nguồn của mình như thế nào. Đó là mã nguồn của bạn."
Tuy nhiên, Chen đề xuất một lời khuyên thực tế: Nếu bạn muốn thay đổi toàn bộ cách trình bày hoặc định dạng code, hãy tách nó thành một lần commit riêng biệt. Điều này giúp người duyệt không phải đối mặt với một bản diff khổng lồ bị chi phối bởi một style guide mới thay vì thay đổi logic thực sự.
Bài viết nhấn mạnh rằng việc hiểu rõ sự khác biệt giữa mô tả PR và comment code là kỹ năng quan trọng cho mọi lập trình viên, từ người mới bắt đầu đến chuyên gia kỳ cựu, đặc biệt khi quy trình phát triển phần mềm ngày càng phụ thuộc vào các công cụ AI hỗ trợ viết code. Mô tả PR giải thích lý do nên chấp nhận thay đổi, trong khi comment bảo tồn kiến thức cần thiết cho các lập trình viên tương lai hiểu và duy trì code.
