網頁

搜尋此網誌

2011年12月11日 星期日

Brownfield Application Development in .NET 軟體構築美學

軟體開發當中,最不想遇到的情形就是「接手既有的專案」,因為不曉得藏有多少bug,加上各個開發者撰寫程式風格的差異,於是必須先看懂程式碼才能改善或加入新功能,這有時比重新開發要花更多心力,如果又沒有相關的開發文件或規格,接手這樣的專案只能祈求神明保佑。

現在,「軟體構築美學:當專案團隊遇上失控程式,最真實的解決方案」這本書提供我們面對上述這類「棕地應用程式」應該如何處理。所謂棕地(brownfield)這個詞彙是借用建築領域中的定義:

棕地土地(簡稱棕地),主要是用在工業上或商業上的一塊土地,並且這塊土地可能被低濃度的放射性物質或危險的廢物所污染,一旦清除這些污染,有可能將再次的重新使用。

Kyle Baley & Donald Belcham著,蔡煥麟、張簡才祿譯,軟體構築美學,台北:精誠資訊,2010。譯自:Brownfield Application Development in .NET

棕地應用程式(Brownfield Application)指的是一個既有的軟體專案,此專案可能因為用了一些不好的開發方式、結構、或設計而產生許多問題,但若經過仔細的整理和重構(refactoring),還是有機會繼續發展使用。棕地應用程式包含三個基本元素:(1)既有程式碼、(2)差勁實務做法所造成的污染、(3)仍有改善或重複使用的潛力

注意到「棕地」不同於「老舊(legacy)」應用程式,棕地介於「綠地(greenfield)」與老舊之間,綠地應用程式沒有舊專案或技術的歷史包袱,而棕地應用程式通常有很沉重的,至於老舊應用程式則是處於維護不開發。有了這些概念之後,就會清楚瞭解這本書主要想說明什麼內容了。

「軟體構築美學」總共13章,分成開發環境(The ecosystem)程式碼(The code)兩個部分,一個開發人員面對的不外乎這兩個範疇。第1章是介紹棕地應用程式,後續幾章則說明棕地應用程式在這兩個範疇中有哪些痛點(pain point)和解決方法。
    • 第1章,認識棕地應用程式(Understanding Brownfield Applications)
  • Part 1 開發環境(The ecosystem)
    • 第2章,棕地專案的版本控制(Version Control in Brownfield Applications)
    • 第3章,持續整合(Continuous Integration)
    • 第4章,自動化測試(Automated Testing)
    • 第5章,軟體度量與程式碼分析(Software Metrics and Code Analysis)
    • 第6章,瑕疵管理(Defect Management)
  • Part 2 程式碼(The code)
    • 第7章,在專案中導入好的物件導向實務(Bringing Better OO Practices to the Project)
    • 第8章,應用程式的重新分層(Relayering Your Application)
    • 第9章,鬆散一些:降低程式碼的依賴性(Loosen up: Taming your Dependencies)
    • 第10章,重整使用者介面(Cleaning up the User Interface)
    • 第11章,重構資料存取(Refactoring Data Access)
    • 第12章,管理系統外部的依賴(Managing External System Dependencies)
    • 第13章,持續改善(Keeping the Momentum)
多數軟體專案常常受到「汙染」(通常不是惡意的,是不得已或無知之錯),隨著開發時間的增長,汙染程度與日俱增,最後根本無法維護利用。「軟體構築美學」適合推薦給專案管理與系統開發人員,裡面有太多正確的觀念和務實的作法非常值得學習,期望閱讀後不要再有「汙染」產生。

###

沒有留言:

張貼留言

熱門文章