- 代碼整潔之道:程序員的職業素養
- (美)羅伯特·C.馬丁
- 1992字
- 2025-01-09 17:19:07
譯者序2:負陰抱陽,知行合一
“師者,所以傳道授業解惑也。”Robert C. Martin,軟件開發社區中親切地稱他為Bob大叔,正是這樣一位明師。
2003年,他的《敏捷軟件開發:原則、模式與實踐》(下稱ASD)在國內上市。我那時進入軟件開發行業剛剛一兩年,這本書真可謂是及時雨。在精讀全書和細心對照書中案例練習后,我感覺自己在面向對象設計方面的功力有了比較明顯的提升。那時因工作環境所限,身邊沒有能夠手把手給予技術輔導的導師,因此,那時在我心中Bob大叔無疑就是一盞指路明燈。后來在網上找到了不少Bob大叔的演講PPT,沿著鏈接,又找到了Object Mentor公司其他一些軟件開發專家的演講PPT和博客,我如饑似渴地閱讀揣摩。現在回頭想來,正是在這個階段我開始建立起“編程技藝”的視角。
時間過得很快,轉眼就到了2010年,不覺中我已在軟件開發的多個領域工作了近10年。2010年,Bob大叔的《代碼整潔之道》一上市,我馬上給自己和項目團隊訂了好幾本。在為ASD所寫的序中,Bob大叔寫道:“最好的軟件開發人員都知道一個秘密:美的東西比丑的東西創建起來更廉價,也更快捷。構建、維護一個美的軟件系統所花費的時間、金錢都要少于丑的系統。……美的系統是靈活、易于理解的,構建、維護它們就是一種快樂。”如果說ASD中更多的是OO設計思想和模式精髓的闡述,那么在《代碼整潔之道》中,Bob大叔提供了更為詳盡的微距視角,涉及“命名”“函數”“代碼格式”“異常處理”“單元測試”等編碼主題,巨細靡遺地向軟件工匠們極力傳授整潔編碼的藝術,進一步向軟件開發社區慷慨分享了他在探索“軟件之美”旅途中的參證心得。
但是,細心的讀者可以發現,在前述兩本書中Bob大叔闡述的主體還是軟件編碼技術本身,作為一門技藝而言,止步于具體技術或曰“術”的層面,應該還未算得完整。后來,在YouTube、SlideShare和Object Mentor等站點上,我看見Bob大叔有不少演講趨向于聚焦在編程主體即軟件開發者自身行為模式和特質層面上,就猜到他不久應該就會有此方面的新著推出。Bob大叔就是Bob大叔,在探索和分享軟件技藝的路上,他內心懷有對軟件開發社區發展責無旁貸的使命感。果不其然,他將這些體悟濃縮在又一本新著上,這本書便是讀者手上的這本《代碼整潔之道:程序員的職業素養》。
本書闡述的是Bob大叔關于軟件技藝主體的沉思,這些沉思并非是純粹形而上的思辨推演,而是他對自身編程生涯的深刻反思和經驗沉淀。在這本書中,Bob大叔并非是以高人一等的凌人盛氣(事實上,他應該有這樣的資格)大行說教,而是毫不掩飾自己在職業生涯中曾犯下的各種錯誤和不堪往事,以這些案例為載體,現身說法,娓娓道來使自己得以轉變和提升的種種“機鋒”,并留有意味深長的空間,供讀者自己結合自身狀況進一步體悟提煉,而非給出硬邦邦的一堆結論。這是何等的胸懷、格局和智慧!
按照傳統的太極陰陽思維來看,如果說ASD和《代碼整潔之道》中的內容是硬性的、技術性的、顯性的,故而可以歸為“陽”的范疇,那么本書中的“專業主義”“技藝之道”便是軟性的、哲學性的、隱性的,故而可以歸為“陰”的范疇。“孤陰不生,獨陽不長”,《老子》說“萬物負陰而抱陽,充氣以為和”。Bob大叔這三本書為何都選擇星云圖片作為封面呢?我忽有頓悟。
嚴肅地選擇以軟件開發為自身職業方向的軟件工程師(我更喜歡稱為“軟件工匠”)們,如果你同我一樣,此前感覺頗為受益于Bob大叔的諄諄教誨,那么請不要錯過本書。將本書和ASD、《代碼整潔之道》并列案頭,三書互為參照,一并靜心細讀、揣摩體悟、時時對照、檢驗調整,做到負陰抱陽、知行合一,相信定能漸入佳境。
本書本該早日完成翻譯面市,但因我個人方面的一些原因,翻譯進度耽擱時日頗多,使我內心極為惴惴不安,這點必須向各位讀者,尤其是Bob大叔的粉絲和在從事軟件開發過程中遇到困頓境地的讀者們,深深致歉!
感謝人民郵電出版社的各位編輯對我的信任、寬容和指導。我對人民郵電出版社在技術專著引入和傳播事業上的孜孜以求與堅持不懈的精神十分敬佩!
感謝蔡煜兄(@larrycaiyu)對幾章譯稿的前期試讀,并提出了不少改善的地方。(我在2010年上海ScrumGathering會議上結識蔡煜,此后從他的博客和微博上受益不小。)
感謝余晟兄作為審校者為本書付出的辛勤汗水,你的修訂和潤色使本書的正確性、可讀性有了本質性的提升。如果沒有你,我不知道自己是否有勇氣將譯稿交付出版。在進度滯后的情況下,你又慷慨接受我的邀請成為合譯者,在繁忙的工作之余撥冗翻譯了本書的第6、7、9、10章,使得本書得以早日和中文讀者見面。你是我遇見的專業人士的典范,我從你身上學到許多東西。謝謝!(但人非圣賢,如書中難免存有錯訛之處,那是我的責任。)
最后,必須感謝支持我完成艱苦翻譯工作的家人,包括我的父母、愛妻Jenny和胞妹Agnes以及小兒多多。占用了很多本該屬于你們的周末時間,我心中深感愧疚,但你們總是很寬容地表示理解,這又使我感覺欠你們更多。
最后,祝讀者能夠開卷有益,相信作為作者的Bob大叔、引進者的人民郵電出版社和譯者的我們,定然感到十二分的欣慰。
章顯洲
杭州,2012/7/30