架構設計00-架構師知識體系10-對軟件認知層次的思考

架構設計系列文章,請參見連接。

前言:對于軟件的認知層次代表著不同的專業程度,也代表著不同層次需要完成的工作的不同。在架構設計過程中需要有效的利用分層的認知,對不同層次的問題進行有針對性的解決確定。

1. 背景

在架構設計與實現過程中,需要對軟件系統做全局的分析與考慮以求全局的認知。在分析和考慮過程中軟件的不同層次都有獨特的問題。為了在設計階段做出更全面的決策,以解決絕大部分實現過程中可能遇到的問題,需要對軟件開發過程中不同的層次的工作內容進行具體的分析。

所以需要對軟件設計與決策提供全局框架,并把握每個層次的關鍵點。

軟件層次

2. 層次

可以將軟件的實現過程分為如圖的幾個層次,軟件從業人員也可以根據圖中的層次進行劃分。對于軟件實現層級的劃分也印證了現在的軟件設計與實現已經超越了算法和數據解構,對系統結構的設計與治理成為架構設計的重點。分層結構如上圖所示,軟件分為7個層次:

2.1 代碼=數據結構+算法:

在學校學軟件的時候有一種普遍的認知:軟件=算法+數據結構。在當時(零幾年)沒有微服務、沒有DevOps、沒有超大互聯網企業,那會對于軟件的認識可能就是單體,mfc這種模式的軟件。所以,將軟件認為就是數據結構加算法即可解決絕大部分問題。

其實這樣的認知也是受到時代的局限。在大部分軟件都是小型的C/S、B/S的時候,當時最大的問題還是怎樣開發一套業務系統的年代,不會涉及到分布式系統的情況下能做出來就很不錯了。更不用談對于軟件的認知。

2.2 程序=代碼+設計模式:

在代碼使用設計模式。為什么?

軟件規模在不斷的擴大,不斷的發展。而在這個過程中遇到的規模化代碼的管理問題,可擴展問題,可修改性問題。急需為軟件的持續發展提供一種解決方式,讓軟件規模增長提供管理的方法。

這時小規模的問題通用解決方案可以使用設計模式進行管理。因為每一個設計模式都是解決代碼規模化的一部分問題。

2.3 模塊=程序+分包模式:

這是伏羲一畫開天式的創舉,但很少有人提到分包模式。因為現在的mvc,mvp,acp等已經很流行而且已經深入人心。所以分包模式對于現在的開發已經很平常。但是分包模式是第一次進行了高內聚低耦合的實踐。

2.4 軟件=模塊+架構模式:

設計模式之上的架構模式。為什么?

到現在為止并沒有對軟件系統中的工作內容進行劃分,例如:MVC的各種變種。軟件層之下的主要是管理代碼,代碼編寫的內容。而架構模式管理的是對于復雜業務下模塊的拆分,模塊的關系,代碼的復用的工作。這部分內容之所以需要做是因為意識到軟件的工作中并不是所有的工作都需要用到算法和數據結構,需要將不同的業務之間隔離并確定業務之間的關系。

所以架構模式負責的是給業務分包、模塊。讓軟件中的每一個模塊都可以做到單一職責。

2.5 系統=軟件+架構風格:

架構模式之上的架構風格。為什么?

上一個層次中已經說明通過使用分包、模塊化的方法進行模塊的職責的劃分。那么一個系統應該以怎樣的方式將系統中的服務鏈接起來。

在常見的架構的定義中有一種:一個程序或計算機系統的軟件體系結構包括一個或一組軟件構件、軟件構件的外部的可見特性及其相互關系

2.6 平臺=系統+企業架構:

架構風格之上的企業架構。為什么?

軟件的最終目標是什么?按照作者理解應該是解決人們現實中的切實問題,不管是提升效率、降低成本、提升便利性還是提供特定幫助都是可以通過計算機的計算能力來解決的事情。抱著這個目標去實現

傳說中的EA,它最主要的解決問題是:為了解決IT與業務對齊、業務和戰略對齊問題。

2.7 企業架構

企業架構有多種方法論,也有不同層面的解決方案。例如:EA可以有togaf,zachman,dodaf等。產品開發方法有ipd,精益等方法。

我個人一般喜歡以:理想、目標、原則、方法這幾個方向去分析一個公司是否真正的解決了現實問題。并根據四個元素去確認公司的目標與個人目標的一致性。

3. 總結

每個層次的認知都是對的,并沒有錯誤一說。這里最主要的區別是你處在什么階段就會認知到什么樣的軟件。行業所處的階段也會影響從業者對于這個行業的認知,就像文中所說的一樣認知是受到時代的局限。

就像《演進式架構》中所說的:適度的重復是有益的。而不像之前人們認為DRY,不能重復任何東西。所以,站在鄧寧克魯格的開悟之坡的人并不會去嘲笑處在愚昧之峰的人。

再比如《軟件架構:架構模式、特征及實踐指南》中所說的:適合的才是最好的。很多時候沒有對錯,只有合適,在馬丁富勒的《單體優先》中也有類似的描述。

在這里說這么多要證明的是:認知處在任何階段都是正常的,不過需要不斷的提升認知

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容