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

Điều lệ Hướng đạo


Điều lệ Hướng đạo

Robert C. Martin


Hướng đạo có một điều lệ: "Luôn thu dọn nơi cắm trại sạch đẹp hơn lúc bạn đến." Nếu nơi nào bừa bộn, hãy dọn sạch nơi đó mà không cần biết ai đã gây ra. Bạn có ý cải thiện môi trường cho đoàn cắm trại tiếp theo. (Thật ra, nguyên bản của điều lệ này, do Robert Stephenson Smyth Baden-Powell, nhà sáng lập phong trào hướng đạo, viết ra như sau, "Hãy gắng để lại thế giới này tốt hơn một tí so với thời điểm bạn phát hiện ra nó.")

Điều gì sẽ đến nếu ta áp dụng điều lệ này cho mã (code) của ta: "Luôn làm cho mã (module) gọn gàng hơn so với lúc bạn tiếp nhận nó"? Không màng đến ai là tác giả đầu tiên, điều gì sẽ diễn ra nếu ta luôn nỗ lực cải thiện module, dù chỉ là nỗ lực nhỏ nhoi? Kết quả sẽ ra sao?

Tôi nghĩ rằng nếu tất cả chúng ta đều tuân thủ điều lệ đơn giản đó, ta sẽ thấy hồi kết của hiện tượng các hệ thống phần mềm suy thoái không ngừng. Thay vào đó, hệ thống của ta sẽ tốt dần lên theo sự tăng trưởng. Ta cũng sẽ thấy cả tập thể cùng quan tâm chăm sóc hệ thống chung, thay vì từng cá nhân chăm chút cho riêng mình.

Tôi không nghĩ rằng điều lệ này quá đáng. Bạn không buộc phải hoàn thiện mọi module trước khi chuyển giao. Bạn chỉ cần làm sao cho nó tốt hơn một tí so với lúc bạn tiếp nhận nó. Dĩ nhiên, bất kỳ code nào mà bạn thêm vào module đều phải gọn gàng. Bạn cũng cần dọn dẹp ít ra là một điều gì khác trước khi bạn chuyển giao. Có thể bạn chỉ đặt lại tên một biến (variable) cho tốt hơn, hoặc phân chia một chức năng (function) dài thành hai functions nhỏ hơn. Bạn có thể phá vỡ một chu trình phụ thuộc (circular dependency), hay bổ sung một giao diện (interface) nhằm tách bạch một điều khoản (policy) ra khỏi chi tiết.

Thật lòng, đối với tôi đây có vẻ như phép xử thế thông thường – giống như hành động rửa tay sau khi đi vệ sinh, hay bỏ rác vào thùng thay vì xả ra đường. Hành động code cẩu thả cần bị xã hội lên án giống như hành vi xả rác. Hành động đó cần bị gán cho là chưa hoàn thành nhiệm vụ.

Song không thể dừng lại ở đó. Chăm sóc code của chính mình là một nhẽ. Chăm sóc code cho tập thể lại là chuyện khác. Tập thể cần hỗ trợ nhau dọn dẹp hết chỗ này đến chỗ kia. Tập thể cùng tuân theo điều lệ Hướng đạo bởi vì điều đó tốt cho mọi người, không phải chỉ có lợi cho bản thân họ.


Nguồn

Martin R. C. (2010) The Boy Scout Rule, 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