構(gòu)建演進(jìn)式架構(gòu)
時(shí)間:2022-03-03 21:48:02 | 來(lái)源:行業(yè)動(dòng)態(tài)
時(shí)間:2022-03-03 21:48:02 來(lái)源:行業(yè)動(dòng)態(tài)
在過(guò)去十年中,DDD的限界上下文概念影響了軟件架構(gòu),并啟發(fā)Neal Ford產(chǎn)生了《演進(jìn)式架構(gòu)》書中的一些思想。作為ThoughtWorks全球技術(shù)總監(jiān)及軟件架構(gòu)師,Neal Ford是國(guó)際公認(rèn)的軟件開發(fā)和交付方面的專家,尤其是在敏捷工程技術(shù)和軟件體系結(jié)構(gòu)的交集方面,以及DDD如何啟發(fā)他產(chǎn)生了軟件架構(gòu)的量子概念。
業(yè)務(wù)實(shí)踐在變,工具和框架在演進(jìn),創(chuàng)新的工具和技術(shù)不斷涌現(xiàn),這讓軟件開發(fā)生態(tài)體系也是瞬息萬(wàn)變。在過(guò)去的幾年里,軟件開發(fā)核心工程實(shí)踐的漸進(jìn)發(fā)展,讓開發(fā)者重新思考架構(gòu)是如何隨著時(shí)間的推移而變化的,以及重要的架構(gòu)特征如何能夠在架構(gòu)演進(jìn)過(guò)程中得到有效保護(hù),這促使Neal Ford與ThoughtWorks全球CTO Rebecca Parson博士一起總結(jié)提煉了演進(jìn)式架構(gòu)的核心概念。
在峰會(huì)的主題分享上,Neal Ford討論了有關(guān)可演進(jìn)架構(gòu)的兩個(gè)關(guān)鍵洞察。Neal Ford指出,演進(jìn)式架構(gòu)是在當(dāng)需求出現(xiàn)的時(shí)候通過(guò)適應(yīng)函數(shù)來(lái)把握架構(gòu)演進(jìn)的方向,演進(jìn)式架構(gòu)隨著系統(tǒng)和業(yè)務(wù)的增加而變化,而且能夠保證用戶得到想要的部分,追求性能上的優(yōu)化,追求擴(kuò)展性的不斷提升。
演進(jìn)式架構(gòu)支持跨多個(gè)維度的引導(dǎo)性增量更改。演進(jìn)架構(gòu)從進(jìn)化計(jì)算世界借鑒了適應(yīng)度函數(shù)的概念,以定義所謂的架構(gòu)適應(yīng)性功能。這是對(duì)某些架構(gòu)特性或架構(gòu)特性組合提供客觀完整性評(píng)估的一種機(jī)制,描述了一系列可用于驗(yàn)證體系結(jié)構(gòu)適用性的工具。
Neal Ford表示,原子適應(yīng)度功能是僅關(guān)注單個(gè)特征和體系結(jié)構(gòu)的功能,而整體適應(yīng)性功能則關(guān)注特征的組合,很多時(shí)候體系結(jié)構(gòu)特征相互糾纏。一旦定義了這些架構(gòu)適應(yīng)性功能,企業(yè)需要持續(xù)集成、部署管道以及諸如此類的敏捷調(diào)整實(shí)踐的領(lǐng)域。
演進(jìn)式架構(gòu)最初目的是研究適應(yīng)度函數(shù)的可演進(jìn)性,在此過(guò)程中,我們希望能夠衡量特定架構(gòu)風(fēng)格的演進(jìn)程度,雖然產(chǎn)生了許多代碼級(jí)量度,但是這還不夠。受到DDD的啟發(fā),Neal Ford提出了軟件架構(gòu)的量子概念。
架構(gòu)量子是一種以軟件架構(gòu)表示的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中的有限上下文的想法。架構(gòu)量子具有高功能凝聚力和同步通信的獨(dú)立可部署組件。架構(gòu)量子關(guān)注事物如何耦合在一起,不僅分析了架構(gòu),而且還分析了操作級(jí)別,并包含了數(shù)據(jù)庫(kù)和用戶界面等內(nèi)容。
架構(gòu)量子對(duì)有限上下文的定義會(huì)有所不同,因?yàn)槲覀冋噲D衡量事物在生態(tài)系統(tǒng)中的耦合程度。我們確實(shí)想要一個(gè)有界上下文的概念,但要用架構(gòu)術(shù)語(yǔ)來(lái)表達(dá)。我們希望它作為一個(gè)有用的架構(gòu)分析工具。Neal Ford說(shuō)。