This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

@ONE爸爸的隨想手札 會員登入 會員註冊

« 上一篇 | 下一篇 »

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

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)。如果你能夠掌握這些原則,再透過閱讀本書,思考咀嚼出一番心得,相 信你撰寫的程式碼,便能夠美得內外兼俱!

 


相關資源:

OReilly_Beautiful.Code

發表回應