我正在寫一本叫做淨化代碼(譯註:Clean Code)的書 。這本書裏滿載了各種代碼示例;有的較短,有的較長。在我看來,如果你想教人如何寫出好代碼,你就必須給他看很多代碼示例。
一個我的評論者抱怨說, 他覺得不是一定要“跋涉於代碼的泥潭之中”。這種說法讓我感到吃驚,這種話以前我也聽過很多次,不知道源自何處;不過這倒是很容易解釋通,如果我們“跋涉”於代碼的泥潭之中,那麼代碼一定如同泥沼、溼地、或是那層層的隔阻一般,這會阻礙我們前進的步伐,甚至還讓我們難以做到最好。
我們爲什麼會寫如此的代碼呢?我們爲什麼要寫得像沼澤、泥潭一樣。難道我們不想讓人們從我們的代碼中穿過嗎?難道我們不想讓我們的代碼變得易讀?有什麼在慫恿着我們,讓我們寫出難讀如泥沼一般的代碼嗎?
難道這真的是問題的全部嗎?問題的一部分是不是出於我們更願意自己寫代碼,而不願意去讀別人的呢?如果是這樣的話,我們怎麼能期待有所提高?我可以以我35年的經驗告訴你,你不讀代碼就無法提高。我們學着成爲更優秀的程序員是通過閱讀(跋涉於)他人的代碼的。
這裏就是了,如果你想成爲更優秀的程序員,那你最好就把你的旅行靴穿上。因爲我們有太多可以從中學習的代碼,以至於我們中的任何人都不可能說他已經足夠的優秀,以至於不能再從中學到什麼了。你可以在編寫代碼過程中學習;但沒有閱讀過很多別人的代碼你的學習就不是完整的。
我即將完成我的淨化代碼一書,也希望那些認爲很難涉足於代碼的泥沼中的人能從中有所獲益。
(原文鏈接網址:http://www.butunclebob.com/ArticleS.UncleBob.WadingThroughCode; Robert C. Martin的英文blog網址: http://www.butunclebob.com/ArticleS.UncleBob)
譯者注:Robert C. Martin是Object Mentor公司總裁,面向對象設計、模式、UML、敏捷方法學和極限編程領域內的資深顧問。他不僅是Jolt獲獎圖書《敏捷軟件開發:原則、模式與實踐》(中文版)(《敏捷軟件開發》(英文影印版))的作者,還是暢銷書Designing Object-Oriented C++ Applications Using the Booch Method的作者。Martin是Pattern Languages of Program Design 3和More C++ Gems的主編,並與James Newkirk合著了XP in Practice。他是國際程序員大會上著名的發言人,並在C++ Report雜誌擔任過4年的編輯。