Thứ Sáu, 23 tháng 3, 2012

Chỉ có mã nguồn mới nói lên sự thật


Chỉ có mã nguồn mới nói lên sự thật


Peter Sommerlad


Tính đích thực của một chương trình được thể hiện qua mã (code) thi hành. Nếu chỉ ở dạng nhị phân (binary), code sẽ rất khó đọc! Tuy nhiên, mã nguồn (source code) cần sẵn có nếu đây là chương trình của bạn, là quá trình phát triển một phần mềm thương mại, là một dự án nguồn mở (open source), hay code trong một ngôn ngữ thông dịch động (dynamic interpreted language). Khi bạn đọc source code, ý nghĩa của chương trình cần phải toát lên một cách hiển nhiên. Muốn biết chương trình làm gì, source code là thứ sau cùng bạn cần phải đọc. Thậm chí tài liệu thu thập yêu cầu chính xác nhất cũng không thể nói lên sự thật: nó không chi tiết những gì chương trình đang thật sự thi hành, đó chỉ là ý định mức cao của người phân tích yêu cầu. Tài liệu thiết kế có thể trình bày thiết kế đã được vạch sẵn, song lại thiếu chi tiết cần thiết của công đoạn hiện thực. Các tài liệu này có thể đã không còn đồng bộ với thực tế ... hoặc có lẽ chúng đã thất lạc. Hay chưa từng được viết ra. Source code có thể là thứ duy nhất còn sót lại.

Với hiểu biết như trên, bạn hãy tự vấn xem code của bạn phải sáng tỏ đến đâu để code có thể kể cho bạn hoặc cho một lập trình viên bất kỳ về điều mà code đang làm.

Bạn có thể bảo, "Ôi chào, chú thích trong code của tôi sẽ giải thích mọi điều bạn cần." Nhưng hãy nhớ cho rằng chú thích không là code. Chúng có thể sai sót như các dạng tài liệu khác. Truyền thống mặc nhiên cho rằng chú thích là hành vi tốt, nên một số lập trình viên mù quáng chú thích thật nhiều, thậm chí còn tường thuật, giảng giải những chi tiết vụn vặt và hiển nhiên trong code. Đây là con đường sai lầm trong nỗ lực khiến code của bạn trở nên trong sáng.

Nếu bạn cần chú thích cho code, hãy xét đến khả năng tái cấu trúc (refactoring) để không cần phải chú thích nữa. Chú thích dài dòng có thể gây rối màn hình và thậm chí còn bị IDE (môi trường phát triển tích hợp) của bạn tự động che khuất. Nếu cần diễn giải về một thay đổi, hãy gửi thông điệp vào hệ thống kiểm soát phiên bản (version control system) chứ đừng chú thích trong code.

Bạn có thể làm gì để thật sự khiến code của bạn nói lên sự thật càng sáng tỏ càng tốt? Hãy gắng đặt tên cho đúng. Cấu trúc code theo tính năng cố kết, nhờ đó còn tạo điều kiện dễ dàng cho việc đặt tên. Phân rã code nhằm đạt được tính trực giao. Hãy viết mã kiểm thử tự động (automated tests) hầu giải thích hành vi dự kiến và kiểm chứng giao diện. Không ngừng refactor sau khi đã biết cách đưa ra một giải pháp đơn giản hơn và hoàn thiện hơn. Hãy biến code của bạn trở nên càng dễ đọc và dễ hiểu chừng nào, càng tốt chừng ấy.

Hãy xem code của bạn là một công trình soạn thảo, tựa một bài thơ, bài luận, blog trước công chúng, hay một điện thư (email) quan trọng. Hãy cẩn thận trau chuốt hầu biểu đạt được mục đích và trực tiếp thể hiện điều mà code đang làm; sao cho code có thể tiếp tục diễn đạt được ý định của bạn khi bạn không còn ở đó. Nhớ rằng code nào ích lợi sẽ được sử dụng lâu dài hơn ý định ban đầu. Các lập trình viên bảo trì sẽ cảm ơn bạn. Và nếu bạn là một lập trình viên bảo trì, đồng thời code bạn đang bảo trì không dễ toát lên sự thật, hãy chủ động vận dụng những hướng dẫn vừa nêu. Hãy thiết lập một tiêu chuẩn lành mạnh cho code, và duy trì sự lành mạnh của chính bạn.


Nguồn

Sommerlad P. (2010) Only the Code Tells the Truth, 97 Things Every Programmer Should Know, Henney K. (ed), O'Reilly, Sebastopol, CA.

Không có nhận xét nào:

Đăng nhận xét