軟件架構:基礎概念總結


定義

軟件架構是指:對于軟件的各個方面做出的設計決定莺葫,包括行為上的和結構上的懂鸵。

結構上:
表示產品如何劃分多個部分爬范,以及這些部分之間的關系掸茅。

行為上:
包括外部行為和內部行為椅邓。
外部行為描述了產品如何與用戶、其他系統(tǒng)昧狮、外部設備進行交互景馁。
內部行為描述了產品組件之間的交互接口。
注意:
架構可作為一個名詞也可作為一個動詞逗鸣。
作為名詞合住,表示一組抽象、規(guī)則撒璧,即產品的結構約束透葛,像藍圖或構建規(guī)范的文檔等,它描述了要構建的對象卿樱;
作為動詞僚害,表示制作這些抽象、規(guī)則的過程殿如;

架構與設計的關系

架構是設計的一部分贡珊,通過抽象突出了一些細節(jié)最爬,而忽略了另一些細節(jié)。

突出的細節(jié):如結構门岔、行為規(guī)則爱致、組件如何裝配、應用規(guī)則等寒随;
忽略的細節(jié):組件如何具體設計糠悯、開發(fā)等;

架構主要的關注點

功能性

軟件向用戶提供哪些功能妻往?

可變性

軟件將來可能需要哪些改變互艾?哪些可能不需要改變?

性能

軟件期望將來達到怎樣的性能讯泣?

容量

多少用戶使用纫普?需要為多少用戶保存數(shù)據(jù)?

可構建性

如何構建成一組組件好渠?能夠獨立的實現(xiàn)昨稼、驗證、復用等

模塊化

如何將軟件任務分解成獨立的模塊拳锚?支持獨立開發(fā)等

安全性

數(shù)據(jù)安全如何保證假栓?權限控制?抵擋攻擊霍掺?等

生態(tài)系統(tǒng)

與其他系統(tǒng)匾荆、設備如何交互?

好的架構

對于一個軟件進行架構杆烁,架構師通常的做法是折中牙丽。
他們除了考慮基本的功能需求和品質需求外,還需要考慮投入的成本(人力连躏、財力剩岳、時間等等)贞滨。
所以架構設計是否最優(yōu)入热,沒有一個絕對的答案或正確答案。

從我們的經(jīng)驗來說晓铆,應該對架構進行評估勺良,確定它是否滿足我們的需求。
可以通過對架構師提出質詢來評估架構骄噪,尋找架構不能滿足品質關注點的風險尚困,架構師解釋如何支持各個場景。
也可以確定架構的屬性链蕊,通過建氖绿穑或模擬系統(tǒng)的一個或多個方面谬泌,判斷架構是否滿足。

類庫逻谦、框架掌实、設計模式、架構概念區(qū)別

在一些常規(guī)項目的開發(fā)過程中邦马,多少都會提到上面幾個詞匯贱鼻,
那么,他們之間具體的區(qū)別是什么呢滋将?

類庫

也可稱為工具庫邻悬,是為解決某一問題而進行的封裝。
作用:使開發(fā)者擺脫底層編碼(不必重復制造輪子)随闽,專注特定問題和業(yè)務邏輯父丰,給程序員帶來了方便。

框架

相對工具庫更宏觀掘宪,是一組協(xié)同工作的類础米,在某種程度上控制整體的結構和流程,是服務于業(yè)務的添诉。
作用:使設計者在特定領域重用整體設計(不必重復制造輪子)屁桑,也是為程序員帶來編碼約束的。

設計模式

是針對一類問題提出的行之有效的解決方案栏赴。
作用:對開發(fā)者而言蘑斧,是思想上(問題解決方案)的重用,但只是針對局部须眷。

架構

是一個軟件的最高層次的整體結構和規(guī)劃竖瘾。
相對設計模式而言,是針對軟件整體的“解決方案”花颗。

一個架構可能包含多個(0 ~ n)框架和多個(0 ~ n)工具庫捕传,
一個框架可能包含多個(0 ~ n)設計模式。

1. 一個架構可能包含多個(0 ~ n)框架和多個(0 ~ n)工具庫
例如:
一個java web項目扩劝,可包含spring/springmvc + hibernate/mybatis + ......等多個框架庸论;
工具庫就更多了,如:JSON庫棒呛、XML庫聂示、日期庫、圖片庫等簇秒;

2. 一個框架可能包含多個(0 ~ n)設計模式鱼喉。
普通開發(fā)中,常見的框架模式有很多種,如MVC/MVVM/MVP/MTV/CBD等扛禽。
以MVC為例锋边,通常,MVC可看做3個設計模式:即觀察者模式编曼、策略模式和組合模式的合體宠默。
-- 框架是大智慧,用來對軟件設計進行分工灵巧;
-- 設計模式是小技巧搀矫,對具體問題提出解決方案,以提高代碼復用率刻肄,減低耦合度瓤球。

參考:
《架構之美》
《企業(yè)架構應用》
......

本文參考了多份資料,比較概念化敏弃,如有問題的地方卦羡,請及時指正。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末麦到,一起剝皮案震驚了整個濱河市绿饵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓶颠,老刑警劉巖拟赊,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粹淋,居然都是意外死亡吸祟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門桃移,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屋匕,“玉大人,你說我怎么就攤上這事借杰」牵” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵蔗衡,是天一觀的道長纤虽。 經(jīng)常有香客問我,道長粘都,這世上最難降的妖魔是什么廓推? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮翩隧,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己堆生,他們只是感情好专缠,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淑仆,像睡著了一般涝婉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔗怠,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天墩弯,我揣著相機與錄音,去河邊找鬼寞射。 笑死渔工,一個胖子當著我的面吹牛,可吹牛的內容都是我干的桥温。 我是一名探鬼主播引矩,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侵浸!你這毒婦竟也來了旺韭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掏觉,失蹤者是張志新(化名)和其女友劉穎区端,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澳腹,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡珊燎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了遵湖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悔政。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖延旧,靈堂內的尸體忽然破棺而出谋国,到底是詐尸還是另有隱情,我是刑警寧澤迁沫,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布芦瘾,位于F島的核電站,受9級特大地震影響集畅,放射性物質發(fā)生泄漏近弟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一挺智、第九天 我趴在偏房一處隱蔽的房頂上張望祷愉。 院中可真熱鬧,春花似錦、人聲如沸二鳄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽订讼。三九已至髓窜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欺殿,已是汗流浹背寄纵。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脖苏,地道東北人程拭。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像帆阳,于是被迫代替她去往敵國和親哺壶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,152評論 25 707
  • 原文出處:http://www.apkbus.com/blog-875309-62984.html 前言架構設計蜒谤,...
    zzj丶閱讀 1,599評論 1 24
  • 每次夜幕降臨山宾,總會有莫名的悲傷涌上心頭。 緊張鳍徽,焦慮资锰,憤怒的小情緒交織在一起,侵蝕著我的身體阶祭。 感覺很累绷杜。 卻找不...
    泡沫伊然閱讀 163評論 3 0
  • 此時岱山路上大雨滂沱,看不清車前的路濒募,見附近有所養(yǎng)老院盔腔,曲筱綃的車便開了進去 話說今天也是夠衰的了润樱,來這盯工程路上...
    野生根號三閱讀 300評論 0 1
  • 沒有你的夢鸭轮,醒來總是有些失望竣蹦,有你的夢,醒來卻又總是有些失落晌姚。 些許日子沒有夢到你了粤剧,不知你還好嗎? 我可以肯定的...
    你看有只螃蟹閱讀 141評論 0 0