複用 - 開發的根本原則

         函數或過程可以認爲是最基本的複用單元,每個函數具有一定的輸入和輸出,這樣在處理相同或相似邏輯的時候,使用同一個函數,傳遞相同或不同的參數,就達到了複用的目的。

        面向對象中的繼承關係也可以看作是複用,加入多個實體具有相同或相似的方法和數據成員,就可以提取出來放到他們的父類中,這種方式近乎於人類思維中的分類。

        一些數據表示和作用於其上的算法,比如鏈表,堆棧,數組,二叉樹,矩陣,等等,在代碼中經常用到,模板類的出現解決了這個問題。

         AOP是最近幾年出現的新事物,因爲有人注意到了項目開發中經常要在代碼中安插些業務邏輯以外的東西,比如日誌,安全控制等,Interception可以幫我們簡化這樣的工作,也使我們很容易使用別人或自己的經驗。

        除了這些,在我們的開發中仍然很普遍的存在着知識和經驗的重複,Don't Repeat Yourself, Andrew Hunt 和 David Thomas這樣說,但是軟件開發不是一個人的事情,一個項目經常牽扯到幾十個人,上百人,甚至上千人,對於程序員來說,他所能做的只是在自己的代碼中儘量避免重複,同樣一個feature,需求,架構,設計,代碼,還有註釋,幾乎都存在着重複的知識,當然重複並不完全是壞事,比如可以避免由於一個人人經驗上的不足或者對問題認識得不清楚而增加以後的工作量,大家都在尋找一個平衡點,就像在RUP和XP直接尋找平衡一樣。

        技術的進步可以在一定程度上減少重複,減少重複工作量,減少因重複而引起的交流問題。可以在代碼和文檔直接保持更好的一致性,比如Executable UML;也可以在不同語言之間建立橋樑,避免同一問題在不同語言上的相同實現,比如CORBA。

        領域語言和MDA則朝着更爲理想化的方向努力,不知道什麼時候才能達到這樣的開發效果,也許突然有一天,老闆決定購買一套新的MDA軟件而解僱一大羣軟件工程師。不用再爭論程序員能不能做到35歲,因爲現在二十歲的小夥子到了35歲的時候會發現,他的軟件開發的工作還是編碼麼?

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章