程式設計師最討厭的工作,並不是撰寫難度很高的程式,而是維護一堆缺少完整文件又長得醜的程式。尤其現在能具備完整文件的系統專案已經少得可憐,所以美化程式碼的要求才會日益增高,如果能做好基本功,即使沒有文件輔助,工程師也能輕鬆追蹤程式碼。不過,要寫出好的程式碼是需要功力的。

Beautiful Code=專案問題最佳解法

要寫出完美的程式,需要透過實務經驗或前人智慧,一點一滴累積實力,並非一蹴可幾。但軟體專案常因時程要求,在系統開發上只求在時限內達到目的,往往忽略軟體工程上強調的重點(例如物件導向的觀念、設計模式的運用等)。

書名中的「Beautiful」一字,代表著解決程式難題的最佳撰寫方法,這些解法是專家在執行專案及設計系統架構的過程中,不斷地累積、歸納、整理而得出,等同於系統設計好手們常高談闊論的設計樣式(Design Patterns)。閱讀本書,就如同站在巨人肩膀上,瞭望整個軟體開發世界,透過高手的文字描述,洞悉他們面對軟體專案發生問題時,如何思考出解決方案的過程。

本書內容構成十分有趣,透過作者Greg Wilson的召集,將業界大師級的軟體設計師及科學家統統拉進來,貢獻出畢生所學,集結三十餘篇的文章,簡短且精闢的文字流露著專業及縝密的思路。本書作者所有出版收入均做為公益之用,捐獻給國際特赦組織(Amnesty International)。

既然稱為程式「設計」,當然也需要融入美感。要寫出具有美感的程式,讓人稱為藝術之作,除了需要掌握程式語言本身的特性,多看、多研究高手的作品之外;也要如同寫文章一般,具備足夠的知識、打好基礎,才能夠文思泉湧,寫出好的程式,就如同本書Ruby之父Yukihiro Matsumoto所提到的觀念:Treating Code As an Essay。

除了要Beautiful Coding,Beautiful Debugging也是一門學問,在開發過程中,除錯常是影響程式撰寫能否順利進行的關鍵。透過系統化流程處理程式錯誤的偵測,並有效找出問題徵結,才能有效率地在最短的時間內完成除錯。

想知道有經驗的專家們,在面臨軟體開發的難題時,如何發揮智慧迎刃而解?本書如同論文集般,收錄各領域技術大師的文章,以各式各樣的案例,搭配不同的程式語言呈現多元化的應用。像是以極簡的正規運算式(Regular Expression)語法,比對複雜的檔案內容或應用在搜尋網站系統記錄檔內容;以Perl提供的現成Bio套件,辨識生物科技基因;利用NumPy快速處理多維度的陣列資料等。

用對程式語言,才能事半功倍

一個系統或程式,可以用不同的程式語言撰寫,各家寫法也大不同。因此,需要考量到程式語言本身的特性,選用適合的語言開發。針對各種目的,運用不同的程式語言實作,不但能發揮該語言的優點,程式也不致過於繁雜,增加閱讀及日後維護的困難。

本書不限定於探討單一特定程式語言,包含XML、Ruby、Linux等,涵蓋領域很廣。從NASA太空總署專案,到作業系統核心設計等主題,你可以從不同角度體會各類應用。雖然有許多案例是一輩子都不可能參與的專案類型,但都能從專家的經驗分享中,獲取這些程式撰寫技巧。

就實務而言,軟體專案時程的不合理壓縮已經成為常態,身為程式設計的一員,更應該以撰寫漂亮的程式碼為要務,在有限時間之內發揮最大的設計價值。

如何撰寫漂亮的程式碼?本書作者歸納整理出以下建議:程式碼需內容簡潔(brevity);穩健低風險的方法(conservatism);擁有變更之彈性(flexibility);並在這些特性之間取得平衡(balance)。如果你能夠掌握這些原則,再透過閱讀本書,思考咀嚼出一番心得,相信你撰寫的程式碼,便能夠美得內外兼俱!

 

Beautiful Code

Andy Oram, Greg Wilson/著

O'Reilly Media出版

售價::44.99美元

Amazon四顆星

 

作者簡介:

陳宏一─交通大學資訊管理研究所碩士

目前任職於某數位行銷公司技術經理,曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、 J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、 WAP/3G行動加值服務、CTI/CRM客服系統架構規畫設計等。

熱門新聞

Advertisement