Đ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