演進式架構設計在敏捷開發中的使用

2021-09-08 14:52:01 字數 1075 閱讀 7159

在敏捷開發過程中,我們還需要對系統架構進行設計嗎?

事實上,martin fowler

在《is design dead?

》一文中已經給出了答案,那就是我們同樣不能忽略對系統架構的設計。與計畫性的設計(planned design)

不同,我們需要演進式的設計(evolutionary design)

。ibm's methods group

的敏捷專家scott w. ambler

提出了「架構**(architectural envisioning)

」的方法,以應對敏捷開發中逐步演進的架構設計過程。

scott

指出,敏捷模型驅動開發(agile model driven development

,amdd)

明確地包括了初始需求分析與架構建模,這個過程發生在敏捷專案開發的第0

次迭代中。

通過對架構的**,可以在專案早期進行一些高層次的架構建模,以助於團隊與關鍵利益相關人商討系統採取的技術策略。這一行為的關鍵目標是識別出架構策略,而不是撰寫如山一般堆積的文件,從而使得你能夠快速完成架構建模。

架構建模是貫穿於整個專案週期的,因此這些圖表(

技術圖表,

使用者互動流程圖,

領域圖,

變更情形)

就是在專案結束時形成的整體文件的基礎。由於你事先明確架構是演進的,因此就不必承擔架構設計在專案早期必須「正確無誤」的壓力,而只需要在當前形勢下保證足夠好就可以了。

scott

指出,所謂的「架構**」能夠提供如下價值:

◆提高生產力

◆降低技術風險

◆減少開發時間

◆增強溝通

◆可伸縮的敏捷軟體開發。

需要明確的是,這樣的一種架構**方式,正好符合敏捷開發迭代的需要。在專案開發早期,對系統整體進行一次高層次的概覽,並對關鍵業務需求進行甄別與分析,劃分合理的系統模組,有助於在迭代開發中為團隊成員建立乙個統一的標準與目標。而在每次迭代過程中,團隊就可以對本次迭代期間的功能進行深入的架構建模,然後通過tdd

充分理解需求,對模組的細節進行設計與實現。這是敏捷架構設計的核心操作原理,它與敏捷開發原則是一脈相承的。

在敏捷開發中採用演進式架構設計

在敏捷開發中採用演進式架構設計 在敏捷開發過程中,我們還需要對系統架構進行設計嗎?事實上,martin fowler在 is design dead?一文中已經給出了答案,那就是我們同樣不能忽略對系統架構的設計。與計畫性的設計 planned design 不同,我們需要演進式的設計 evoluti...

在敏捷開發中採用演進式架構設計

在敏捷開發過程中,我們還需要對系統架構進行設計嗎?事實上,martin fowler在 is design dead?一文中已經給出了答案,那就是我們同樣不能忽略對系統架構的設計。與計畫性的設計 planned design 不同,我們需要演進式的設計 evolutionary design 在敏捷...

架構設計之ElasticSearch的使用

快取 es具有極佳的查詢能力 資料分析 統計能力,並且支援給每個欄位加索引。那麼,對於水平切分的資料庫 sharddb 對於跨片查詢,可以將常用字段同步到es中,然後用es查出目標資料,通過目標資料再去db撈具體的資料。比如,乙個學校管理系統,有1億名學生,按照學生id 32,放在32片db中,你要...