童子軍法則

本文爲翻譯轉載,原文通道:The Boy Scout Rule。

翻譯人:安秦

【相關背景知識】

西方國家有一種活動組織形式叫童子軍,通常面向小男孩或男青年。通過組織團體活動、公益行動和夏令營來達到培養人格、動手能力、思考能力、團隊協作、公益心等方面的目的。

【譯文】

童子軍裏有一個規定:“離開的時候,總要讓露營地比你來的時候更乾淨。” 如果你在地上發現髒亂,把他收拾了,無論是誰造成的。要刻意地爲後面來露營的人創造更好的環境。實際上這條規定最原先是童子軍之父——Robert Stephenson Smyth Baden-Powell——寫的,原文是“努力讓世界比你遇見它的時候更美好一點”。

那麼我們在代碼裏不妨遵循一個類似的規定:“提交一個模塊的代碼的時候,總要讓它比下載的時候更簡潔一些”,不論是誰是段代碼的原作者。如果我們總是努力讓代碼哪怕只是略微變好一點點,那麼結果會如何呢?

我覺得,如果我們都遵循這個簡單的規定,那麼就再也不會見到我們的軟件漸漸腐化、總是趨於變成一團亂碼。相反,我們的系統最終會演變得越來越好。我們也將見到整個團隊照料整個系統,而非個人各自只關心他們那一小部分。

我覺得這條規定並不複雜,你並不需要在提交代碼的時候都要保證代碼模塊十分完美,你只是讓它比起剛拉下來的時候更好一點點。當然這就意味着你給模塊添加的代碼必須是乾淨的,這也意味着你要在提交前至少做一點其他方面的優化。你可以只是改善了一個變量的命名,或者將一個很長的函數拆分成兩個更小的函數,你還可以解決一個循環依賴或者添加一個抽象層將策略設計與實現細節分離。

實際上這對我而言更像是個好的日常習慣——就像上完廁所要洗手,或者將垃圾丟入垃圾桶。留下一團糟糕的代碼確實就像是隨地丟垃圾一樣,這是一個就是不應該做的事情。

不止如此,照料整個團隊的代碼和打理自己的代碼確實很不同。團隊內互相幫助,互相爲它人清理代碼,他們遵循童子軍的規定因爲這對大家好,而不止是對自己好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章