架構(gòu)的典型組成部分

程序組織:

系統(tǒng)架構(gòu)首先要以概括的形式對(duì)有關(guān)系統(tǒng)做一個(gè)綜述,如果沒有綜述培遵,要想將成千上萬的局部圖片(或十多個(gè)單獨(dú)的類)拼為一副完整的圖畫是相當(dāng)傷腦筋的,如果你不能將它們拼接起來菱肖,那么就無法理解你正在開發(fā)的那個(gè)類對(duì)系統(tǒng)有何貢獻(xiàn)疚宇!

如果在編寫一個(gè)類的時(shí)候亡鼠,對(duì)這個(gè)類在系統(tǒng)中的角色沒有一個(gè)很清晰的構(gòu)思,那么編寫這個(gè)類就是一件十分令人灰心喪氣的工作敷待。需要對(duì)每個(gè)類進(jìn)行慎重考慮间涵!(功能->模塊->類->模塊->功能)

應(yīng)該明確定義各個(gè)構(gòu)造塊的責(zé)任。每個(gè)構(gòu)造塊應(yīng)該負(fù)責(zé)某一個(gè)區(qū)域的事情榜揖,并且對(duì)其它區(qū)域的事情知道的越少越好浑厚。通過使構(gòu)造塊對(duì)其他構(gòu)造塊的了解達(dá)到最小,你能將設(shè)計(jì)的信息局限于各個(gè)構(gòu)造塊之內(nèi)根盒。

應(yīng)該明確定義每個(gè)構(gòu)造塊的通信規(guī)則钳幅,對(duì)于每個(gè)構(gòu)造塊,架構(gòu)應(yīng)該描述它能夠直接使用哪些構(gòu)造塊炎滞,能間接使用哪些構(gòu)造塊敢艰,不能使用哪些構(gòu)造塊。

主要的類:

架構(gòu)應(yīng)該詳細(xì)定義所用的主要的類册赛。它應(yīng)該指出每個(gè)主要的類的責(zé)任钠导,以及該類如何與其它類交互(類的繼承體系/狀態(tài)轉(zhuǎn)換/對(duì)象持久化等描述),根據(jù)80/20 規(guī)則對(duì)系統(tǒng)內(nèi)部那些構(gòu)成系統(tǒng)80%的行為的20%的類進(jìn)行詳細(xì)說明森瘪。

數(shù)據(jù)設(shè)計(jì):

架構(gòu)應(yīng)該描述所用到的主要文件和數(shù)據(jù)表設(shè)計(jì)牡属。它應(yīng)該描述曾經(jīng)考慮過的其他方案,并說明選擇的理由(理由也寫一寫扼睬,特別是方案變更選取的時(shí)候)逮栅。

架構(gòu)應(yīng)該定義所用數(shù)據(jù)庫的高層組織結(jié)構(gòu)和內(nèi)容。指出與其他訪問同一數(shù)據(jù)的程序的可能交互方式窗宇,說明會(huì)創(chuàng)建哪些數(shù)據(jù)視圖等

業(yè)務(wù)規(guī)則:

如果架構(gòu)依賴于詳細(xì)的業(yè)務(wù)規(guī)則措伐,那么就應(yīng)該詳細(xì)的描述這些規(guī)則,并描述這些規(guī)則對(duì)系統(tǒng)設(shè)計(jì)的影響军俊。(比如客戶信息過時(shí)時(shí)間不超過30秒侥加,在此情況下,架構(gòu)就應(yīng)該描述這條規(guī)則對(duì)架構(gòu)采用的“保持客戶信息及時(shí)更新且同步”的方法的影響)

用戶界面設(shè)計(jì):

用戶界面常在需求階段進(jìn)行詳細(xì)說明.如果沒有就應(yīng)該在軟件架構(gòu)進(jìn)行詳細(xì)說明粪躬。

架構(gòu)應(yīng)該模塊化担败,以便在替換為新用戶界面時(shí)不影響業(yè)務(wù)規(guī)則和程序的輸出部分。架構(gòu)應(yīng)該使我們很容易的做到:砍掉交互式的界面镰官,插入一組命令行的類提前。

資源管理:

架構(gòu)設(shè)計(jì)應(yīng)該描述一份管理稀缺資源的計(jì)劃。稀缺資源包括數(shù)據(jù)庫連接/線程/句柄等朋魔。應(yīng)該嘗試估算正常和極端情況下的資源使用量岖研。各個(gè)類或者各個(gè)對(duì)象空間和時(shí)間的預(yù)算。

安全性:

緩沖區(qū)/處理非受信數(shù)據(jù)規(guī)則,加密孙援,錯(cuò)誤信息的細(xì)致程度害淤,保存內(nèi)存中的秘密數(shù)據(jù),以及其他事項(xiàng)拓售。

錯(cuò)誤處理:

最后也是最重要的:

錯(cuò)誤處理是進(jìn)行糾正還是僅僅進(jìn)行檢測(cè)窥摄?如果是糾正,那么程序可以嘗試從錯(cuò)誤中恢復(fù)出來础淤,如果僅僅是檢測(cè)崭放,那么程序就可以像沒發(fā)生任何事情一樣繼續(xù)運(yùn)行,也可也退出鸽凶,但是無論哪種情況都應(yīng)該通知用戶說檢測(cè)到了一個(gè)錯(cuò)誤币砂!

錯(cuò)誤監(jiān)測(cè)是主動(dòng)的還是被動(dòng)的?

程序如何傳播錯(cuò)誤玻侥?(直接進(jìn)行錯(cuò)誤處理/等到所有處理完成决摧,再通知說某個(gè)地方發(fā)現(xiàn)了錯(cuò)誤!)

錯(cuò)誤處理有什么約定?(架構(gòu)應(yīng)該有一套完整的錯(cuò)誤消息約定)

如何處理異常?(架構(gòu)應(yīng)該規(guī)定代碼何時(shí)能夠拋出異常,在什么地方拋出異常凑兰,如何記錄(log)這些異常以及如何在文檔中描述這些異常)

每個(gè)類在驗(yàn)證其輸入數(shù)據(jù)的有效性方面需要負(fù)何種責(zé)任掌桩?是每個(gè)類負(fù)責(zé)驗(yàn)證自己數(shù)據(jù)的有效性還是有一組專門的類負(fù)責(zé)驗(yàn)證整個(gè)系統(tǒng)數(shù)據(jù)的有效性?

容錯(cuò)性:

檢查錯(cuò)誤的時(shí)候倒退回去;

系統(tǒng)有一套輔助代碼姑食,已備在主代碼出錯(cuò)的時(shí)候使用;

表決算法;

系統(tǒng)使用不會(huì)對(duì)系統(tǒng)產(chǎn)生危害的虛假值來替代這個(gè)錯(cuò)誤值;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末波岛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子音半,更是在濱河造成了極大的恐慌则拷,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祟剔,死亡現(xiàn)場(chǎng)離奇詭異隔躲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)物延,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仅父,“玉大人叛薯,你說我怎么就攤上這事◇舷耍” “怎么了耗溜?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)省容。 經(jīng)常有香客問我抖拴,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任阿宅,我火速辦了婚禮候衍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洒放。我一直安慰自己蛉鹿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布往湿。 她就那樣靜靜地躺著妖异,像睡著了一般。 火紅的嫁衣襯著肌膚如雪领追。 梳的紋絲不亂的頭發(fā)上他膳,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音绒窑,去河邊找鬼棕孙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛回论,可吹牛的內(nèi)容都是我干的散罕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼傀蓉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼欧漱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起葬燎,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤误甚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谱净,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窑邦,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年壕探,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冈钦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡李请,死狀恐怖瞧筛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情导盅,我是刑警寧澤较幌,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站白翻,受9級(jí)特大地震影響乍炉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一岛琼、第九天 我趴在偏房一處隱蔽的房頂上張望底循。 院中可真熱鬧,春花似錦衷恭、人聲如沸此叠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灭袁。三九已至,卻和暖如春窗看,著一層夾襖步出監(jiān)牢的瞬間茸歧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工显沈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留软瞎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓拉讯,卻偏偏與公主長(zhǎng)得像涤浇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子魔慷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容