我對軟體開發的一點思考

2022-02-23 19:09:07 字數 2217 閱讀 7819

但凡是搞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程式設計和重構並不意味著不再需要設計

而是在不斷變化的需求中

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

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

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

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

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

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

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

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

我對軟體開發的一點思考

但凡是搞 的 對軟體架構 設計模式 xp程式設計 極限程式設計 或是敏捷開發 重構 這些軟體開發的思想或方法都不陌生 但是它們之間究竟有什麼聯絡?在實際的開發過程應該如何做?才能構建乙個好的程式 簡單來說 開發乙個軟體的常規做法是 先設計整個系統的總體架構 架構包含一些 層 的思想 希望你了解 層 ...

軟體開發的一點感想

這兩天,遇到工作中的兩個小問題,加深了我以前對軟體開發的看法。b 乙個是關於firefox崩潰問題的處理。b 其實,現在最難的就是 b 問題發生在 b 根據現象,我覺得問題應該是發生在firefox初始化時,需要連線到網路,譬如檢測firefox最新版。在定位問題後,我用firefox的安全模式 f...

軟體開發中排錯的一點想法

軟體開發中排錯的一點想法 孫文濤 2008 07 26 前幾天工作時,總是碰到編譯錯誤,因為是跨平台,對編譯器,開關等都不是特別的熟,所以不知道如何去排一些錯誤。在公司的很長一段時間裡,工作的好大一部分都要排錯。總的來說,軟體開發依循的規律就是 迭代開發 增量式的開發。每乙個phrase都必須要保證...