從2000年左右以JAVA技術(shù)為本的應(yīng)用web化到當(dāng)前以云為本來構(gòu)建應(yīng)用,這接近20年來技術(shù)演進(jìn)趨勢來看滋早。應(yīng)用軟件架構(gòu)的變與不變整體上還是能夠看出來一些脈絡(luò)峡钓。
先講不變的巾遭。
用于構(gòu)建應(yīng)用領(lǐng)域邏輯本身的技術(shù)并無本質(zhì)變化。從領(lǐng)域邏輯建钠降溃看睹欲,基本還是圍繞著對象以及對象之間的連接關(guān)系。SOLID原則依然充滿了活力一屋,GOF的設(shè)計模式仍然是常青樹窘疮。UML以及其工具仍然是主流建模方法和溝通語音。即使從JAVA數(shù)個版本來看冀墨,也僅僅是語音特性上的改進(jìn)(如泛型闸衫、λ表達(dá)式)并沒有出現(xiàn)根本性的邏輯形式化方法。因此轧苫,構(gòu)建領(lǐng)域邏輯的技術(shù)楚堤,無論是設(shè)計方法還是具體程序編制技術(shù),沒有本質(zhì)上的變化含懊。
其次身冬,在企業(yè)應(yīng)用領(lǐng)域,關(guān)系數(shù)據(jù)庫仍然是核心數(shù)據(jù)模型以及存儲的主流技術(shù)岔乔。這一點可能不太嚴(yán)謹(jǐn)酥筝,而且當(dāng)下關(guān)系分布式、分庫等技術(shù)快速演進(jìn)(Google Spanner等)雏门,另外nosql生態(tài)也正在蓬勃發(fā)展嘿歌。但是數(shù)據(jù)關(guān)系的核心技術(shù)還是二維表掸掏。應(yīng)用邏輯構(gòu)建技術(shù)各類orm框架正是致力于解決對象和關(guān)系的映射問題。
以上兩點是穩(wěn)定部分宙帝。
再講丧凤,變化的。
運行時環(huán)境步脓,應(yīng)用宿主平臺發(fā)生了翻天覆地的進(jìn)步愿待。從基礎(chǔ)設(shè)施角度看,基本分幾個階段靴患,PM + 商業(yè)中間件仍侥,PM + 開源輕量級中間件,VM + 輕量級開源中間件鸳君,容器化等农渊。
應(yīng)用全局架構(gòu)的變化,從單體架構(gòu)到微服務(wù)架構(gòu)或颊。(待續(xù))
應(yīng)用部署的分布式云化砸紊。
應(yīng)用構(gòu)建的組織結(jié)構(gòu)、工具囱挑、部署批糟、運維方式的同步演進(jìn)。
應(yīng)用的生態(tài)化發(fā)展看铆,產(chǎn)業(yè)分工的演進(jìn)徽鼎。
以上是發(fā)生演進(jìn)進(jìn)化的幾點。
指出變化與不變弹惦,相對清晰和容易否淤。為什么會產(chǎn)生變化,以及為什么不變的部分是穩(wěn)定的棠隐,這個問題更具有啟發(fā)性思考的價值石抡。下面就來談?wù)劇?/p>
待續(xù)。助泽。啰扛。