天天看點

我對軟體開發的一點思考

但凡是搞IT的

對軟體架構、設計模式、XP程式設計(極限程式設計)或是靈活開發、代碼重構

這些軟體開發的思想或方法都不陌生

但是它們之間究竟有什麼聯系???

在實際的開發過程應該如何做???

才能建構一個好的程式……

簡單來說

開發一個軟體的正常做法是

先設計整個系統的總體架構

架構包含一些“層”的思想

(希望你了解“層”的好處,分“層”是我們解決問題的常用方法,不僅限在計算機領域)

再考慮各“層”采用的模式

最後是編寫代碼

不遵循這個過程的慘痛教訓令很多計算機前輩們記憶猶新

提稍早的開發過程意義其實不大

它隻會勾起我們的“痛苦”回憶

是以我們才思考新的軟體開發思想~~~

在這個過程中

我們比較關注軟體設計的架構和模式問題

是以花費的時間也相對多些

但XP程式設計(或靈活開發)改變了這一切

它不會在設計軟體的架構和采用的模式上花費太多時間

因為我們不斷地體會到

即使再好的設計也會在稍後的開發過程中改變

與其這樣

倒不如在開發中不斷地改善和完善設計

使軟體具有良好的可維護性、可擴充性和健壯性

軟體架構(Software Architecture)它是一個系統的草圖,是一系列抽象

它抽象的事物可以直接構成系統的元件

來指導軟體各個方面工作——設計工作

軟體架構的幾個基本概念包括元件(元件)、連接配接器和配置以及任務流等

在實際項目中

元件可以是某個類或是程式集

元件之間的連接配接器通常為接口

将這裡的“接口”了解為面向對象思想中的“接口”是狹隘的

而是類或程式集公開的、供其他類和程式集調用的方法和屬性

早在六十年代時戴克斯特拉就已經涉及了結構化設計的問題

此後的Rational Software Corporation、Microsoft和卡内基梅隆大學以及加州大學埃爾文分校都做了很多研究

我們常說的“三層架構”就是軟體架構的一種

設計模式(Design Pattern)是90年代由“GoF(四人幫)”提出的

“GoF”指的是四個人——Gamma、Helm、Johnson•Vlissides、Addison•Wesley

他們将建築學的設計思想引入到計算機領域

并于1995年出版《設計模式》一書

第一次将軟體的設計提升到理論高度

要注意軟體架構比設計模式更加抽象

簡單地說

至少軟體架構不會涉及具體的類或程式集

而軟體模式考慮的就是具體的類和程式集

XP程式設計(Extreme Programming)是由Kent•Beck于1996年提出

它屬于輕量級的軟體開發方法

而重構(Reflectoring)是實作XP程式設計的一種方法或手段

它的兩位最早的擁護者是Ward•Cunningham和Kent•Beck

重構既不修正錯誤,又不增加新的功能

而是用于提高代碼的可讀性或改變代碼内部的設計和結構

并删除死代碼,使其在将來更容易維護

重構和XP程式設計是密切聯系的

軟體架構、設計模式和XP程式設計是一種軟體開發思想

代碼重構則是一種的方法和手段

雖然軟體架構和設計模式決定軟體的生死

但設計軟體架構和考慮使用的模式是一個相對漫長的過程

畢竟

隻有充分了解了客戶需求後才能設計得當

這必然會延長軟體開發的時間、增加成本

這是任何一個老總都不希望看到的~~~

是以才出現XP程式設計、靈活開發

既然再好的設計都會改變

那麼就在開發中不斷地去改善和完善

縮短開發時間

但有一點

XP程式設計和重構并不意味着不再需要設計

而是在不斷變化的需求中

讓軟體的設計去适應這些變化

軟體才能具有足夠的靈活性、較強的生命期

????????????????????????????

?那麼作為一名開發人員、程式員                                    ?

?我們是應該關注軟體的功能,還是軟體的設計                  ?

?是關注軟體的功能是否滿足客戶目前和未來的需要            ?

?還是關注軟體的設計是否滿足客戶目前和未來的需求         ?

????????????????????????????

繼續閱讀