(文續2008年第12期)

特點三:持續地重構你的程式碼
  
 軟體系統就像是一個有機體,它會持續因為不同的時期的需求而不斷改變。同時,軟體也會因為團隊合作、時間的變化,相同的軟體程式可能會經由不同的程式開發人員所撰寫。因此,一個軟體程式寫到後來,可能就會被改得亂七八糟。如何維持一個軟體系統程式碼的架構,也是軟體開發工程師一個很重要的能力,除了開發共同標準的制訂外,軟體開發工程師也必須有進行程式碼重構的能力。所謂的重構(Refactoring【註12】)就是改變程式碼的架構,但是不會去影響軟體程式的外在表現行為。
  
 一般而言,在程式碼的撰寫過程,常常會因為某些因素,例如:軟體開發工程師便宜行事,而用了一些比較容易撰寫的程式碼,也就產生的所謂程式的壞味道(Code Bad Smell【註13】)。的確,結構化的程式碼的確比較容易維護與可讀性較高,但是結構化程式的寫法對於軟體開發工程師來說卻是比較複雜的。一個好的軟體開發工程師不會因為貪圖方便而選擇比較投機的程式碼撰寫方法;有關於重構相關的參考書籍,絕對要參閱軟體架構大師Martin Fowler的重構一書,請參閱【註14】。

特點四:使用設計模式
  
 好的軟體開發工程師會利用架構性考量與重複利用的概念來撰寫程式碼。因此,參考已有的設計模式是一個很實用的方法。這些設計模式已經過無數軟體開發工程師的驗證與時間的考驗,利用這些設計模式設計出有架構的軟體程式,不但增加修改與擴充的方便性,在維護上也可以減輕後續相關的程式開發人員的負擔。有關於重構相關的參考書籍請參閱【註15】。

特點五:撰寫程式碼的測試程式
  
 一個好的軟體開發工程師通常會有一套相關的程式碼測試機制,可能是自己寫的一套程式,去驗證他寫的程式碼是否符合規格,以及其可靠度,並找出程式撰寫過程中的錯誤,我們簡稱臭蟲【註16】。精準的測試可以在有限的時間與成本考量下,同時維持軟體的品質。因此,一個有經驗的軟體開發工程師不但可以撰寫相關的測試程式,同時也可以寫出最精簡的測試程式(建議參考內容與書籍請參閱【註17】)。

特點六:利用現成的程式碼
  
 重複花時間去設計具有相同功能的程式,對於軟體開發工程師而言,算是一個最笨的舉動【註18】。一個有經驗的軟體開發工程師會去尋找可以利用的程式碼,去達成規格或是需求中的功能。目前的作法有三種,第一種方法就是重複利用自己撰寫過的程式碼,因為這些程式碼在經過你的重重淬煉之下,已經變得非常地有架構,值得重複利用。第二種方法是利用第三方(Third-Party)所公佈的相關函式庫(Library)或是框架(Framework)。以Java為例,Apache基金會的官方網站就公佈了很多可以利用的程式,例如:Ant【註19】、Commons【註20】等。第三種方法就是利用新的軟體標準,如:Web Servives來處理與重用這些現成的程式碼(建議參考內容與書籍請參閱【註21】)。(本文作者現就讀於美國聖路易大學資訊科學系博士班)(待續)

參考文獻

【註12】:有關於「Refactoring」的說明,英文。

【註13】:有關於「壞味道」的說明,中文。

【註14】:軟體架構大師Martin Fowler,官方網站,英文。相關的參考書籍推薦,「Refactoring: Improving the Design of Existing Code」,程式碼重構聖經,英文,書籍介紹。

【註15】:相關的參考書籍推薦,「Design Patterns: Elements of Reusable Object-Oriented Software」,設計模式聖經,書籍介紹,英文。

【註16】:有關於「臭蟲Bug」的說明,英文。

【註17】:相關的參考書籍推薦,「Unit Testing in Java: How Tests Drive the Code」,Java的單元測試概念書,書籍介紹,英文。

軟體測試與品質管理」說明頁,中文。

良葛格的Junit介紹,中文。

良葛格的單元測試說明,中文。

【註18】:有關於「Reinventing the wheel」的說明,英文中文 、中文

【註19】:Ant是一個以Java為基礎的程式編譯建構工具,官方網站,英文。

【註20】:Commons是一個Java常用元件的儲存庫,例如:檔案操作等常用功能,讓程式撰寫者不需要從頭來撰寫相關的程式,官方網站,英文。

【註21】:相關的參考書籍推薦,「Jakarta Commons Cookbook」,Commons介紹與使用說明書,英文,書籍介紹。

arrow
arrow
    全站熱搜

    nan 發表在 痞客邦 留言(0) 人氣()