# 8. The Boy Scout Rule

Giải thích: BSA​ (The Boy Scouts of America) là ​hội hướng đạo sinh tại Mỹ, thành lập với mục tiêu phát triển đức tính, đào tạo công dân, và thể chất cá nhân.

Hội BSA có một quy tắc: “Luôn làm cho nơi cắm trại sạch hơn lúc bạn đến”. Nếu bạn thấy rác trên đó, bạn dọn nó bất kể ai đã xả ra đó. Bạn có chủ đích cải thiện môi trường cho nhóm cắm trại tiếp theo. (Đúng ra câu ban đầu viết bởi Robert Stephenson Smyth Baden-Powell, cha đẻ của hướng đạo, viết là “Hãy làm cho thế giới này tốt hơn một chút so với lúc bạn thấy nó.”) Nếu áp dụng quy tắc này cho code thì sẽ là: “Luôn làm cho một module sạch sẽ hơn khi bạn mở chúng ra”? Sẽ ra sao nếu như chúng ta luôn cố gắng nỗ lực ít nhiều cải thiện một module bất kể tác giả là ai? Kết quả sẽ như thế nào?

Tôi nghĩ nếu tất cả chúng ta đều tuân theo quy tắc này, chúng ta sẽ thấy hệ thống của chúng ta ngày một tốt lên. Chúng ta cũng sẽ thấy cả team quan tâm đến hệ thống thay vì chỉ vài cá nhân quan tâm đến phần code của họ.

Tôi không nghĩ quy tắc này là yêu cầu quá cao. Bạn không cần phải làm mọi module tốt lên trước khi bạn hoàn thành. Bạn chỉ cần làm cho chúng tốt hơn lên một chút so với lúc đầu. Tất nhiên nó có nghĩa là bất cứ đoạn code nào bạn thêm vào cũng phải sạch sẽ. Nó cũng có nghĩa bạn sẽ dọn dẹp một phần nhỏ khác trong module đó trước khi hoàn thành công việc. Ví dụ bạn chỉ cần cải thiện tên của một biến nào đó, hoặc tách function lớn ra thành 2 function nhỏ. Hoặc bạn gỡ bỏ một cái circular dependency​ nào đó, etc.

Thật ra mà nói, nghe có vẻ như là một phép tắc — giống như việc rửa tay sau khi đi vệ sinh, hoặc bỏ rác vào thùng chứ đừng ném ra nhà. Đúng là việc tạo ra một đoạn code ẩu giống với một việc không được xã hội chấp nhận như xả rác. Không nên làm vậy.

Nhưng còn hơn thế nữa. Quan tâm đến code của bạn là một việc. Quan tâm tới code của cả team là việc khác nữa. Team giúp lẫn nhau và cùng nhau dọn dẹp. Chúng ta tuân theo The Boy Scout Rule bởi nó tốt cho tất cả mọi người, không chỉ riêng ai.