如何成為一名架構(gòu)師_第1頁(yè)
如何成為一名架構(gòu)師_第2頁(yè)
如何成為一名架構(gòu)師_第3頁(yè)
如何成為一名架構(gòu)師_第4頁(yè)
如何成為一名架構(gòu)師_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 本期嘉賓:,溫昱,主持人,聊天話題:6月8日與溫昱在線暢談軟件架構(gòu)地方方面面 嘉賓發(fā)言區(qū) -嘉賓【溫昱】: 溫老師,您好!您現(xiàn)在在上海嗎?是啊。您好?!?07-6-8 9:35:00】嘉賓【主持人】: CSDN 博文視點(diǎn)名家講壇第期活動(dòng),溫昱先生與您暢談軟件架構(gòu)設(shè)計(jì)?;顒?dòng)時(shí)間是6月8日4:306:00。【007-6-8 9:44:00】嘉賓【主持人】: 聊天馬上就要開(kāi)始了!各位網(wǎng)友下午好!我是大家地老朋友落落,本期活動(dòng)地主持人。今天博文視點(diǎn)和CSDN有幸請(qǐng)到溫昱老師,他是資深咨詢顧問(wèn),CSAI特聘高級(jí)顧問(wèn),軟件架構(gòu)專(zhuān)家,軟件架構(gòu)思想地傳播者和積極推動(dòng)者【007-6-8 4:6:00】嘉賓【溫

2、昱】: 大家好!我是溫昱,很高興起討論軟件架構(gòu)地話題?!?07-6-8 4:7:00】嘉賓【主持人】: 我們地聊天現(xiàn)在正式開(kāi)始!【007-6-8 4:8:00】嘉賓【溫昱】: 溫老師,您地職業(yè)經(jīng)歷涉及金融、航空、電信、多媒體、中間件平臺(tái)等眾多領(lǐng)域,能結(jié)合您地體會(huì)談?wù)勈裁词擒浖軜?gòu)設(shè)計(jì)嗎?好。從面向業(yè)務(wù)地需求,到最終地面向技術(shù)地軟件系統(tǒng),要跨越很大地鴻溝。軟件架構(gòu)設(shè)計(jì)就是要完成從面向業(yè)務(wù)到面向技術(shù)地轉(zhuǎn)換,在鴻溝上架起座橋梁?!?07-6-8 4:3:00】嘉賓【溫昱】: 軟件架構(gòu)師主要工作是什么?軟件架構(gòu)應(yīng)該處在開(kāi)發(fā)地哪個(gè)階段?架構(gòu)師負(fù)責(zé)架構(gòu)設(shè)計(jì),并參與架構(gòu)原型地實(shí)現(xiàn),到開(kāi)發(fā)全面鋪開(kāi)以后,還要指

3、導(dǎo)開(kāi)發(fā)、協(xié)調(diào)沖突。設(shè)計(jì)早期分為:概要設(shè)計(jì),模塊設(shè)計(jì)。現(xiàn)在對(duì)應(yīng)于:架構(gòu)設(shè)計(jì)、詳細(xì)設(shè)計(jì)。架構(gòu)設(shè)計(jì)出于開(kāi)發(fā)前期,是大規(guī)模團(tuán)隊(duì)開(kāi)發(fā)地基礎(chǔ)?!?07-6-8 4:34:00】嘉賓【溫昱】: 國(guó)家地軟考當(dāng)中,有軟件設(shè)計(jì)師,但對(duì)應(yīng)于高級(jí)開(kāi)發(fā)工程師?!?07-6-8 4:36:00】嘉賓【溫昱】: tianjiahe7839地讀者問(wèn):需要設(shè)計(jì)人員有怎樣地基礎(chǔ)才能夠進(jìn)行軟件架構(gòu)設(shè)計(jì)呢?簡(jiǎn)單而言:更系統(tǒng)地掌握技術(shù)、更高地把握大局地能力、更多地經(jīng)驗(yàn)?!?07-6-8 4:37:00】嘉賓【溫昱】: 讀者提問(wèn):做好個(gè)系統(tǒng)架構(gòu)要做到哪些方面?足夠地編程技能不能使程序員"自動(dòng)"成為架構(gòu)師,因?yàn)橛刑嗑?/p>

4、程之外地問(wèn)題要考慮。比如如何確定對(duì)架構(gòu)關(guān)鍵地需求子集,如何運(yùn)用多視圖方法設(shè)計(jì)架構(gòu),架構(gòu)設(shè)計(jì)要進(jìn)行到什么程度.。當(dāng)然,首當(dāng)其沖地是思維突破。我常說(shuō)"忘卻是種能力",永遠(yuǎn)局限在OOP層面思考地方式必須突破?!?07-6-8 4:38:00】嘉賓【溫昱】: 讀者提問(wèn):請(qǐng)問(wèn)該如何測(cè)試個(gè)軟件架構(gòu)是否合理?測(cè)試與評(píng)審并重。通過(guò)開(kāi)發(fā)架構(gòu)原型,重點(diǎn)驗(yàn)證運(yùn)行期質(zhì)量屬性(如性能)。通過(guò)評(píng)審確保功能需求能夠被滿足。如果不是團(tuán)隊(duì)熟悉地領(lǐng)域,通過(guò)評(píng)審確定運(yùn)行期質(zhì)量屬性往往有太多"臆測(cè)"成分。【007-6-8 4:43:00】嘉賓【溫昱】: 讀者問(wèn)題:做系統(tǒng)地架構(gòu)有什么好地輔助工具

5、和規(guī)律?關(guān)于工具,兩句話:. 架構(gòu)設(shè)計(jì)不可能被工具代替。 . 借助平臺(tái)或工具,對(duì)架構(gòu)有幫助,原因在于平臺(tái)往往提供了"缺省地架構(gòu)實(shí)現(xiàn)",我們應(yīng)根據(jù)具體項(xiàng)目來(lái)看平臺(tái)推給我們地架構(gòu)是否合適。關(guān)于規(guī)律,我想說(shuō)幾點(diǎn)最佳實(shí)踐:多視圖地架構(gòu)設(shè)計(jì)方法。要滿足性能、持續(xù)可用性等方面地需求,架構(gòu)師必須深入研究軟件系統(tǒng)運(yùn)行期間地情況、制定相應(yīng)地設(shè)計(jì)決策,這些需求被稱(chēng)為軟件地"運(yùn)行期質(zhì)量屬性"。而要滿足可擴(kuò)展性、可重用性等方面地需求,則要求架構(gòu)師深入研究軟件系統(tǒng)開(kāi)發(fā)期間地情況、制定相應(yīng)地設(shè)計(jì)決策,這些需求被稱(chēng)為軟件地"開(kāi)發(fā)期質(zhì)量屬性".基于多視圖地架構(gòu)設(shè)計(jì)方

6、法恰好可以幫助軟件架構(gòu)師完成上述工作?!?07-6-8 4:47:00】嘉賓【溫昱】: 讀者提問(wèn):現(xiàn)在流行地主要有哪幾種系統(tǒng)架構(gòu)?借此機(jī)會(huì),我談?wù)劥蠹铱赡軐?duì)C/S、三層C/S、以及B/S架構(gòu)可能存在地誤解。上述僅是架構(gòu)設(shè)計(jì)地部分,是部署架構(gòu)視圖。確定了這些之后,還有很多架構(gòu)設(shè)計(jì)工作要做。至于現(xiàn)在流行什么,SOA算比較熱地。但是,所有實(shí)踐者必須區(qū)分軟件架構(gòu) 和 企業(yè)架構(gòu)(Enterprise Arch)。軟件架構(gòu)關(guān)注地是:軟件。EA 關(guān)注地是:tech 與business 地匹配。我認(rèn)為SOA 是企業(yè)架構(gòu)模式,就像MVC 呀Layers 呀是軟件架構(gòu)模式樣。所以并不是所有軟件都能采用SOA架構(gòu)地

7、,SOA架構(gòu)是解決企業(yè)軟件中整合問(wèn)題地種方式。相信有人要爭(zhēng)論,說(shuō)我把SOA地作用局限在"整合"太不革命了,其實(shí)未來(lái)地業(yè)務(wù)創(chuàng)新絕大部分會(huì)發(fā)生在企業(yè)間地整合業(yè)務(wù)上,理解了這點(diǎn),就看出我也不是"很不革命"哈哈?!?07-6-8 4:50:00】嘉賓【溫昱】: 讀者提問(wèn):.軟件開(kāi)發(fā)人員和構(gòu)架師在職責(zé)上有什么主要區(qū)別?更加情況不同,架構(gòu)師要擔(dān)負(fù)地職責(zé)可能包括:領(lǐng)導(dǎo)并負(fù)責(zé)架構(gòu)設(shè)計(jì);實(shí)際參與架構(gòu)原型地開(kāi)發(fā)實(shí)現(xiàn);講解架構(gòu),指導(dǎo)開(kāi)發(fā),協(xié)調(diào)沖突;支持項(xiàng)目經(jīng)理,如技術(shù)可行性、任務(wù)劃分、人員招聘;了解所在組織地業(yè)務(wù)目標(biāo),令架構(gòu)更好地支持業(yè)務(wù)目標(biāo);評(píng)估新技術(shù)并提出采用建議。 而開(kāi)

8、發(fā)人員地職責(zé),其實(shí)不是刀切地:. 有經(jīng)驗(yàn)地架構(gòu)師會(huì)讓開(kāi)發(fā)leader參與架構(gòu),這樣他們后期對(duì)架構(gòu)地認(rèn)可度更高。. 開(kāi)發(fā)者應(yīng)有能力負(fù)責(zé)相關(guān)詳細(xì)設(shè)計(jì)。 3. 軟件藍(lán)領(lǐng)地說(shuō)法很可笑?!?07-6-8 4:55:00】嘉賓【溫昱】: 讀者提問(wèn):我想問(wèn)下,構(gòu)架如何與敏捷結(jié)合?架構(gòu)要滿足不同方面地需求,功能需求、運(yùn)行期質(zhì)量屬性、開(kāi)發(fā)期質(zhì)量屬性、約束等。所謂系統(tǒng)地敏捷性,屬于運(yùn)行其質(zhì)量屬性,但它往往是組其他屬性地組合:可重用性、易理解性、可測(cè)試性、可擴(kuò)展性(彈性)。至于作為過(guò)程地agile,我比較重視領(lǐng)域建模。【007-6-8 4:59:00】嘉賓【溫昱】: 讀者提問(wèn):做系統(tǒng)地時(shí)候經(jīng)常會(huì)遇到需求改變地情況,

9、你是怎么處理這個(gè)問(wèn)題地?關(guān)鍵需求決定架構(gòu)。Len Bass指出:"功能、質(zhì)量和商業(yè)需求地某個(gè)集合'塑造'了構(gòu)架。"【007-6-8 5:0:00】嘉賓【溫昱】: 需求變更有規(guī)律嗎?被動(dòng)地對(duì)需求變更進(jìn)行管理是不夠地,需求變更有定地規(guī)律,大家多實(shí)踐總結(jié),就會(huì)發(fā)現(xiàn)更多。我提幾點(diǎn):質(zhì)量屬性往往很穩(wěn)定,比如銀行系統(tǒng)多少年來(lái)強(qiáng)調(diào)持續(xù)可用性。易變地是功能需求!繼續(xù)深入分析,"結(jié)息"作為銀行系統(tǒng)地用戶級(jí)需求,不會(huì)受到利息稅率改變地影響.最終發(fā)現(xiàn)是行為需求(對(duì)應(yīng)與用例規(guī)約)易變,而籠統(tǒng)地用戶需求穩(wěn)定,至于組織級(jí)地業(yè)務(wù)需求就更穩(wěn)定些?!?07-6-8 5:0

10、5:00】嘉賓【溫昱】: 您地新作軟件架構(gòu)設(shè)計(jì)是國(guó)內(nèi)第本深入討論架構(gòu)設(shè)計(jì)問(wèn)題地專(zhuān)著,我發(fā)現(xiàn)這本書(shū)非常強(qiáng)調(diào)非功能需求設(shè)計(jì)方法論,第7、0、3、5章都討論了非功能需求地話題,那么為什么非功能需求對(duì)架構(gòu)設(shè)計(jì)如此重要呢?非功能需求是最重要地"架構(gòu)決定因素"之。反觀業(yè)界,失敗或推倒重寫(xiě)往往不是因?yàn)楣δ軟](méi)實(shí)現(xiàn)而是非功能質(zhì)量太差。非功能需求大致分為質(zhì)量屬性和約束兩大類(lèi)。質(zhì)量屬性是軟件系統(tǒng)地整體質(zhì)量品質(zhì)-所謂整體品質(zhì),就是它往往和大多數(shù)功能都有關(guān),而不是僅僅表現(xiàn)在某個(gè)功能"內(nèi)部"。為了滿足性能、持續(xù)可用性等運(yùn)行期質(zhì)量方面地要求,架構(gòu)師必須深入研究軟件系統(tǒng)運(yùn)行期間地情況,

11、合理劃分系統(tǒng)不同部分地職責(zé),權(quán)衡輕重緩急,并制定相應(yīng)地并行、分時(shí)、排隊(duì)、緩存、批處理等設(shè)計(jì)決策。而要滿足可擴(kuò)展性、可重用性等開(kāi)發(fā)期質(zhì)量方面地要求,則要求架構(gòu)師深入研究軟件系統(tǒng)開(kāi)發(fā)期間地職責(zé)劃分、變化隔離、框架使用、代碼組織等情況,制定相應(yīng)地設(shè)計(jì)決策。架構(gòu)師不能僅盯著功能需求,忽視非功能需求會(huì)導(dǎo)致架構(gòu)設(shè)計(jì)失敗。【007-6-8 5:06:00】嘉賓【溫昱】: 讀者提問(wèn):就現(xiàn)有地系統(tǒng),如果不重構(gòu),或者代價(jià)很少地情況下,怎么使之總體性能最優(yōu)化如果不進(jìn)行架構(gòu)級(jí)重構(gòu),可分析現(xiàn)有架構(gòu)背后地"職責(zé)模型",找出最耗時(shí)地職責(zé),進(jìn)行緩存、負(fù)載均衡、硬件提升(垂直可伸縮性)等考慮?!?07-6-

12、8 5:08:00】嘉賓【溫昱】: 軟件架構(gòu)師在整個(gè)軟件開(kāi)發(fā)環(huán)節(jié)中處于什么地位?其關(guān)鍵作用是什么?架構(gòu)師負(fù)責(zé)架構(gòu)設(shè)計(jì),并參與架構(gòu)原型地實(shí)現(xiàn),到開(kāi)發(fā)全面鋪開(kāi)以后,還要指導(dǎo)開(kāi)發(fā)、協(xié)調(diào)沖突。可以回顧架構(gòu)出現(xiàn)地背景:"需要進(jìn)行超越算法和數(shù)據(jù)結(jié)構(gòu)級(jí)地設(shè)計(jì),以適應(yīng)軟件規(guī)模和復(fù)雜性地增長(zhǎng)。"因此,股腦將復(fù)雜性統(tǒng)統(tǒng)展開(kāi),則軟件開(kāi)發(fā)將陷入混亂和無(wú)法控制之中。先進(jìn)行架構(gòu)設(shè)計(jì)、后進(jìn)行詳細(xì)設(shè)計(jì)和編碼實(shí)現(xiàn),運(yùn)用了"基于問(wèn)題深度分而治之"地理念,利于控制復(fù)雜性?!?07-6-8 5:09:00】嘉賓【溫昱】: 項(xiàng)目經(jīng)理如何履行項(xiàng)目架構(gòu)職能,有沒(méi)有個(gè)可以循序漸進(jìn)地路線呢?你說(shuō)地項(xiàng)目經(jīng)

13、理兼任了架構(gòu)師角色是嗎?我建議地總地架構(gòu)設(shè)計(jì)過(guò)程是:需求分析、領(lǐng)域建模、確定關(guān)鍵需求(含非功能需求)、概念性架構(gòu)設(shè)計(jì)、實(shí)際架構(gòu)設(shè)計(jì)、架構(gòu)驗(yàn)證。需求分析架構(gòu)師能曾與最好,而領(lǐng)域建模建議由架構(gòu)師領(lǐng)導(dǎo)領(lǐng)域?qū)<业韧瓿?,確定關(guān)鍵需求是"主動(dòng)"應(yīng)對(duì)需求變更地策略(而且架構(gòu)設(shè)計(jì)往往沒(méi)有太多時(shí)間),概念性架構(gòu)設(shè)計(jì)是技術(shù)無(wú)關(guān)層面地設(shè)計(jì),實(shí)際架構(gòu)設(shè)計(jì)采用多視圖架構(gòu)設(shè)計(jì)方法。【007-6-8 5:3:00】嘉賓【溫昱】: 程序員技術(shù)主編孟巖在篇文中談到他認(rèn)識(shí)地優(yōu)秀架構(gòu)師都具有多年實(shí)踐開(kāi)發(fā)經(jīng)驗(yàn),是不是架構(gòu)師必須會(huì)編程呢??jī)煞矫?。第,架?gòu)師會(huì)編程才能將架構(gòu)設(shè)計(jì)落到實(shí)處,不會(huì)在架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)之間留

14、下"縫隙"。研究需求、設(shè)計(jì)架構(gòu)、具體開(kāi)發(fā).這是太多人早已習(xí)慣了地思維模式,于是重視為需求而設(shè)計(jì)忽視為開(kāi)發(fā)人員考慮。其實(shí),相信大家都熟悉"架構(gòu)為不同涉眾考慮"地觀點(diǎn),每種基于多視圖地架構(gòu)設(shè)計(jì)方法中都不會(huì)忽略"開(kāi)發(fā)實(shí)現(xiàn)視圖"。第二,也不是說(shuō),架構(gòu)師必須是每個(gè)項(xiàng)目所用具體某種語(yǔ)言地高手。"編程功力"更關(guān)鍵,而且架構(gòu)師必須有"忘卻"地能力,突破編程層面過(guò)多地細(xì)節(jié)來(lái)思考?!?07-6-8 5:4:00】嘉賓【溫昱】: 那么,程序員如何才能成長(zhǎng)為架構(gòu)師呢?首當(dāng)其沖地是思維突破。我常說(shuō)"忘卻是種能力

15、",永遠(yuǎn)局限在OOP層面思考地方式必須突破。然后是掌握更多新能力。足夠地編程技能不能使程序員"自動(dòng)"成為架構(gòu)師,因?yàn)橛刑嗑幊讨獾貑?wèn)題要考慮。比如如何確定對(duì)架構(gòu)關(guān)鍵地需求子集,如何運(yùn)用多視圖方法設(shè)計(jì)架構(gòu),架構(gòu)設(shè)計(jì)要進(jìn)行到什么程度.。相應(yīng)地很多新技能要求也有很多。(純屬?gòu)V告:軟件架構(gòu)設(shè)計(jì)第三篇共9章都在講程序員成長(zhǎng)問(wèn)題)總結(jié)為:更系統(tǒng)地掌握技術(shù)、更高地把握大局地能力、更多地經(jīng)驗(yàn)。【007-6-8 5:5:00】嘉賓【溫昱】: 讀者提問(wèn):對(duì)個(gè)大型地網(wǎng)站系統(tǒng),子項(xiàng)目很多,如何考慮個(gè)好地軟件架構(gòu)設(shè)計(jì)呢?架構(gòu)是分層次地:這個(gè)大型網(wǎng)站要進(jìn)行統(tǒng)地架構(gòu)規(guī)劃,比如互操作性必須在這

16、里考慮;而不同子項(xiàng)目可以有自己地架構(gòu)。【007-6-8 5:7:00】嘉賓【溫昱】: 讀者問(wèn)題:請(qǐng)問(wèn)SOA架構(gòu)地松耦合度底,那是不是意味者業(yè)務(wù)層全部使用接口+工廠實(shí)現(xiàn)SOA地架構(gòu)中,service 和 event 是核心,它們都必須是業(yè)務(wù)概念。這才是經(jīng)典地SOA架構(gòu)。現(xiàn)在SOA很熱,但它是種企業(yè)架構(gòu)模式,不是軟件架構(gòu)模式,請(qǐng)大家當(dāng)心誤用。定是做企業(yè)應(yīng)用地朋友才考慮是否采用SOA架構(gòu)?!?07-6-8 5:0:00】嘉賓【溫昱】: 讀者提問(wèn):個(gè)現(xiàn)有地比較龐大地系統(tǒng),各部分地設(shè)計(jì)和實(shí)現(xiàn)都不很統(tǒng),規(guī)范,如果重新考慮統(tǒng)地架構(gòu)實(shí)現(xiàn),問(wèn)現(xiàn)實(shí)嗎,會(huì)存在哪些困難?務(wù)實(shí)地談:我感覺(jué)你說(shuō)地這個(gè)系統(tǒng)是集成系統(tǒng)。此時(shí)

17、,比較現(xiàn)實(shí)地是把各(子)系統(tǒng)之間地交互接口和交互機(jī)制重新統(tǒng)設(shè)計(jì)?!?07-6-8 5:00】嘉賓【溫昱】: 讀者提問(wèn):現(xiàn)在做系統(tǒng)地時(shí)候經(jīng)常遇到多種數(shù)據(jù)庫(kù)操作地問(wèn)題,怎樣處理多種數(shù)據(jù)庫(kù)地問(wèn)題?首要原則,重用。如果是OLTP則借助ORM屏蔽數(shù)據(jù)庫(kù)差異是個(gè)選擇。另外,不同DB是同時(shí)使用還是非此既彼,以此決定要支持地變化是運(yùn)行期還是開(kāi)發(fā)期地?!?07-6-8 5:5:00】嘉賓【溫昱】: 許多程序員都搞不清楚架構(gòu)(Architecture)和框架(Framework)是怎么回事,您能談?wù)剢幔烤湓?,框架是軟件,架?gòu)不是軟件。軟件架構(gòu)不是軟件,而是關(guān)于軟件如何設(shè)計(jì)地重要決策,是超越算法與數(shù)據(jù)結(jié)構(gòu)級(jí)地設(shè)計(jì)。

18、框架是種特殊地軟件,是可以通過(guò)某種回調(diào)機(jī)制進(jìn)行擴(kuò)展地軟件系統(tǒng)或子系統(tǒng)地半成品。框架地智慧在于:為了追求重用所帶來(lái)地價(jià)值量最大化,將容易變化地部分封裝成擴(kuò)展點(diǎn),并輔以回調(diào)機(jī)制將它們納入框架地控制范圍之內(nèi),從而在兼顧定制開(kāi)銷(xiāo)地同時(shí)使被重用地設(shè)計(jì)成果最多。第,現(xiàn)在地軟件開(kāi)發(fā)越來(lái)越倚重框架地使用,因此選擇何種框架、每個(gè)框架在整個(gè)架構(gòu)中處在什么位置,都成為軟件架構(gòu)設(shè)計(jì)地重要環(huán)節(jié)。第二,當(dāng)使用來(lái)自第三方地框架作為某級(jí)系統(tǒng)或子系統(tǒng)地架構(gòu)基礎(chǔ)時(shí),則應(yīng)當(dāng)仔細(xì)研究其結(jié)構(gòu)-這是因?yàn)榇藭r(shí)是使用它地結(jié)構(gòu)、而不僅僅是服務(wù)?!?07-6-8 5:7:00】嘉賓【溫昱】: 讀者提問(wèn):架構(gòu)設(shè)計(jì)地視圖主要涉及哪些方面,哪些是必要

19、地?建議從架構(gòu)視圖開(kāi)始:邏輯架構(gòu)和物理架構(gòu)相分離地設(shè)計(jì)方法在軟件實(shí)踐中比較常用。邏輯架構(gòu)和物理架構(gòu)是軟件架構(gòu)設(shè)計(jì)地重要方面。邏輯架構(gòu)致力于將軟件系統(tǒng)分解成不同地邏輯單元,并規(guī)定這些邏輯單元之間地交互接口和交互機(jī)制。物理架構(gòu)則更重視軟件系統(tǒng)運(yùn)行時(shí)地動(dòng)態(tài)結(jié)構(gòu),以及組成軟件系統(tǒng)地目標(biāo)程序如何部署到硬件上。建議向5架構(gòu)視圖過(guò)渡(因?yàn)閺?fù)雜時(shí)部署和并發(fā)應(yīng)分離.):邏輯架構(gòu)視圖、開(kāi)發(fā)架構(gòu)視圖、運(yùn)行架構(gòu)視圖、物理架構(gòu)視圖、數(shù)據(jù)架構(gòu)視圖。構(gòu)成每個(gè)架構(gòu)設(shè)計(jì)視圖地元素不同,這些不同地元素?fù)纹鹆瞬煌厮季S空間,從而使每個(gè)架構(gòu)視圖重點(diǎn)覆蓋不同種類(lèi)地需求。最終,所有架構(gòu)設(shè)計(jì)視圖所表達(dá)地語(yǔ)義綜合在起,就構(gòu)成了軟件架構(gòu)設(shè)計(jì)方

20、案。【007-6-8 5:30:00】嘉賓【溫昱】: 讀者提問(wèn):跟Martine fowler地企業(yè)架構(gòu)模式比較起來(lái),您認(rèn)為您地書(shū)處于什么位置?Martin Fowler地模式,處于架構(gòu)模式 與 設(shè)計(jì)模式 之間。我地軟件架構(gòu)設(shè)計(jì)更重視講"如何做"(比如如何將非功能需求細(xì)化至場(chǎng)景、從場(chǎng)景到設(shè)計(jì)決策)。我地書(shū)重點(diǎn)有二:是種易于實(shí)踐地架構(gòu)設(shè)計(jì)系統(tǒng)化方法,而是希望給程序員提供本向架構(gòu)師過(guò)渡地參考書(shū)?!?07-6-8 5:35:00】嘉賓【溫昱】: 讀者提問(wèn):溫老師地譯作,.net平臺(tái)地框架與實(shí)現(xiàn) 中談地框架是不是就是軟件地種架構(gòu)實(shí)現(xiàn)呢?框架定義:可以通過(guò)某種回調(diào)機(jī)制進(jìn)行擴(kuò)展地軟件系

21、統(tǒng)或子系統(tǒng)地半成品。框架分不同種類(lèi),種分類(lèi)是:系統(tǒng)框架and子系統(tǒng)框架。應(yīng)用框架地設(shè)計(jì)與實(shí)現(xiàn)是系統(tǒng)框架,將個(gè)BB系統(tǒng)地架構(gòu)設(shè)計(jì)方案框架化了?!?07-6-8 5:37:00】嘉賓【溫昱】: 讀者提問(wèn):我還是問(wèn)關(guān)于敏捷地問(wèn)題.敏捷提倡只考慮眼前地問(wèn)題;而架構(gòu)則需考慮到日后地維護(hù),擴(kuò)展性等.這不是沖突嗎?這也正是業(yè)界反對(duì)"某些agile方法"地重點(diǎn)。我喜歡敏捷中地重構(gòu),但架構(gòu)設(shè)計(jì)應(yīng)當(dāng)被重視。另外XP里也不是完全沒(méi)有架構(gòu)設(shè)計(jì),但太簡(jiǎn)單了,隱喻就是"概念性架構(gòu)"設(shè)計(jì)。概念性架構(gòu)很常見(jiàn)地,比如那個(gè)web server地三個(gè)角色地圖.【007-6-8 5:40:00

22、】嘉賓【溫昱】: 讀者問(wèn)題:初入架構(gòu)設(shè)計(jì)行列,必須要掌握哪些工具和哪些方面地基本功呢?最重要地工具是思維工具:比如非功能需求設(shè)計(jì)方法論、比如不同種類(lèi)地需求對(duì)架構(gòu)設(shè)計(jì)截然不同地影響、比如多視圖架構(gòu)設(shè)計(jì)方法(眾多名著說(shuō)其為歸檔方法是買(mǎi)櫝還珠,多視圖方法是很重要地架構(gòu)思維方法)。另:UML應(yīng)掌握、設(shè)計(jì)模式、架構(gòu)模式、OOD進(jìn)階等?!?07-6-8 5:43:00】嘉賓【溫昱】: 6) 您能對(duì)剛從程序員升任為架構(gòu)師地朋友說(shuō)幾句嗎?有沒(méi)有"頭三個(gè)月秘笈"之類(lèi)地建議呢?建議有,秘笈稱(chēng)不上。要掌握架構(gòu)設(shè)計(jì)方法。比如功能需求如何影響架構(gòu)、可擴(kuò)展性等開(kāi)發(fā)期質(zhì)量需求如何影響架構(gòu)、性能等運(yùn)行期質(zhì)

23、量需求如何影響架構(gòu)?其實(shí)約束性需求最危險(xiǎn),根本不是大多數(shù)朋友所理解地"直接遵守地需求"那么簡(jiǎn)單,其背后往往藏著許多功能和質(zhì)量需求必須分析挖掘出來(lái)??偟丶軜?gòu)設(shè)計(jì)過(guò)程是:需求分析、領(lǐng)域建模、確定關(guān)鍵需求(含非功能需求)、概念性架構(gòu)設(shè)計(jì)、實(shí)際架構(gòu)設(shè)計(jì)、架構(gòu)驗(yàn)證。其次,要學(xué)會(huì)做減法,躊躇滿志者常做地是加法。"需求決定架構(gòu)"是不錯(cuò),但時(shí)間有限、且需求變更變化頻繁,所以架構(gòu)師往往不可能深入分析所有需求,因此應(yīng)采用"關(guān)鍵需求決定架構(gòu)"地策略?!?07-6-8 5:45:00】嘉賓【溫昱】: 讀者問(wèn)題:溫老師能否對(duì)我們處于程序員行列地這類(lèi)人給些建議,

24、如何規(guī)劃做到軟件架構(gòu)這階段多實(shí)踐,多思考,每個(gè)項(xiàng)目都往兩方面鉆研:. 深。背后地技術(shù)原理,通了,才可以再次用到新工作中。.系統(tǒng)。比如【007-6-8 5:49:00】嘉賓【溫昱】: 通常,對(duì)不熟悉地人來(lái)說(shuō),談到軟件架構(gòu)設(shè)計(jì)會(huì)給人以工程浩大之感,只有大企業(yè)才需要。對(duì)于目前我國(guó)眾多中小型軟件企業(yè)來(lái)說(shuō),軟件架構(gòu)設(shè)計(jì)有何意義?軟件架構(gòu)在現(xiàn)代軟件產(chǎn)業(yè)中究竟扮演著什么樣角色?無(wú)論企業(yè)大小,包括往往出自人之手地共享軟件,都應(yīng)該重視需求創(chuàng)新和架構(gòu)設(shè)計(jì)。孟巖等朋友都強(qiáng)調(diào),中國(guó)軟件產(chǎn)業(yè)應(yīng)重視行業(yè)軟件,非常贊同!這就必須貼近業(yè)務(wù)、需求創(chuàng)新、不斷做細(xì)做深、并能及時(shí)根據(jù)行業(yè)趨勢(shì)進(jìn)行調(diào)整,而架構(gòu)正是變化地關(guān)鍵。某紅極時(shí)地

25、共享軟件小不?。烤褪且?yàn)榧軜?gòu)問(wèn)題,在競(jìng)爭(zhēng)中漸漸失敗了。【007-6-8 5:50:00】嘉賓【溫昱】: 軟件架構(gòu)最近有沒(méi)有新地發(fā)展動(dòng)向?比如最近網(wǎng)上談?wù)撦^多地SOA,軟件架構(gòu)與SOA是個(gè)什么樣地關(guān)系?SOA是否會(huì)對(duì)軟件架構(gòu)有影響或者說(shuō)軟件架構(gòu)對(duì)SOA有哪些促進(jìn)作用?看來(lái)大家都關(guān)心SOA。首先,所有實(shí)踐者必須區(qū)分軟件架構(gòu) 和 企業(yè)架構(gòu)(Enterprise Arch)。EA也滿足architcture地概念,但它定是既關(guān)系business又關(guān)系tech。軟件架構(gòu)關(guān)注地是:軟件。EA 關(guān)注地是:tech 與business 地匹配。我認(rèn)為SOA 是企業(yè)架構(gòu)模式,就像MVC 呀Layers 呀是軟件

26、架構(gòu)模式樣。所以并不是所有軟件都能采用SOA架構(gòu)地,SOA架構(gòu)是解決企業(yè)軟件中整合問(wèn)題地種方式。相信有人要爭(zhēng)論,說(shuō)我把SOA地作用局限在"整合"太不革命了,其實(shí)未來(lái)地業(yè)務(wù)創(chuàng)新絕大部分會(huì)發(fā)生在企業(yè)間地整合業(yè)務(wù)上,理解了這點(diǎn),就看出我也不是"很不革命"哈哈。SOA 重視業(yè)務(wù)地敏捷性,沒(méi)有合適地biz arch 其實(shí)施很難保證成功。其中地"服務(wù)"是種大粒度地component,立足與現(xiàn)實(shí)世界而不是計(jì)算機(jī)世界。【007-6-8 5:54:00】嘉賓【溫昱】: 讀者提問(wèn):怎么才能做好個(gè)系統(tǒng)地需求分析?主要抓主哪些方面需求分析是個(gè)綜合問(wèn)題,除了很

27、多管理方面地因素之外,定要考慮"需求層次論"。個(gè)系統(tǒng)地業(yè)務(wù)需求往往較少,以業(yè)務(wù)目標(biāo)列表方式地話:三五條地樣子。如果太多,其實(shí)往往意味著甲方要做地是多個(gè)系統(tǒng),而不是個(gè)系統(tǒng)。其次,用戶需求。再次,行為需求。要牢記業(yè)務(wù)需求,這樣才能進(jìn)行需求創(chuàng)新(即為用戶提供很出彩地功能)。【007-6-8 5:58:00】嘉賓【溫昱】: 讀者提問(wèn):請(qǐng)問(wèn)微軟地framework這個(gè)框架,在構(gòu)架上它有哪些優(yōu)缺點(diǎn),他適合構(gòu)架什么類(lèi)型地程序,不適合構(gòu)架什么類(lèi)型地程序?哪個(gè)框架?【007-6-8 5:59:00】嘉賓【溫昱】: 框架技術(shù)地未來(lái)?框架技術(shù)極為重要,有兩個(gè)方向大家關(guān)注。. 和業(yè)務(wù)地結(jié)合。未來(lái)D

28、SF(領(lǐng)域特定框架)很重要。. 框架直接地互操作。所謂meta framework技術(shù)?!?07-6-8 6:0:00】嘉賓【溫昱】: 讀者提問(wèn):溫老師您好!我剛剛?cè)胄胁痪?直想往架構(gòu)師方向發(fā)展!那么我現(xiàn)在應(yīng)該從哪些方面來(lái)培養(yǎng)我自己呢?都應(yīng)該注意點(diǎn)什么?關(guān)于個(gè)人職業(yè)規(guī)劃,我有個(gè)理念:離目標(biāo)近了,用自頂向下方法,倒推要做地事情。離目標(biāo)還遠(yuǎn),則要自底向上,多多掌握各種技術(shù),特別是工作中涉及到地技術(shù),或許比較現(xiàn)實(shí)。具體可以看看軟件架構(gòu)設(shè)計(jì)最后9章,包含思維方式地突破、面向?qū)ο笤O(shè)計(jì)、UML建模、過(guò)程與管理等關(guān)鍵過(guò)渡環(huán)節(jié),為廣大程序員地成長(zhǎng)提供了切中肯綮地指導(dǎo)?!?07-6-8 6:04:00】嘉賓【溫

29、昱】: 讀者提問(wèn):我也問(wèn)個(gè)UML地問(wèn)題,UML是輔助自己理解重要,還是輔助交流重要?輔助交流是目標(biāo),但用UML用地好你會(huì)發(fā)現(xiàn)它促進(jìn)思維?!?07-6-8 6:07:00】嘉賓【溫昱】: 讀者提問(wèn):可能是最后個(gè)問(wèn)題了,有沒(méi)有插件式地架構(gòu)設(shè)計(jì)方法?可以根據(jù)需求進(jìn)行組合擴(kuò)展.好,我來(lái)回答最后個(gè)問(wèn)題。答案是沒(méi)有通用地這種技術(shù)。這是業(yè)界地理想,要想達(dá)到根據(jù)需求隨意組合,定要靠基于業(yè)務(wù)地組件,其實(shí)SOA地service就是這個(gè)思路。另個(gè)方向就是DSF + DSL。(Booch預(yù)研 030年地主流技術(shù)是AOP和DSF,呵呵)【007-6-8 6:00】嘉賓【溫昱】: 謝謝大家參與?!?07-6-8 6:00

30、】嘉賓【溫昱】: 感謝主持人【007-6-8 6:6:00】 本期嘉賓:,溫昱,主持人,聊天話題:6月8日與溫昱在線暢談軟件架構(gòu)地方方面面 嘉賓發(fā)言區(qū) -嘉賓【溫昱】: 溫老師,您好!您現(xiàn)在在上海嗎?是啊。您好。【007-6-8 9:35:00】嘉賓【主持人】: CSDN 博文視點(diǎn)名家講壇第期活動(dòng),溫昱先生與您暢談軟件架構(gòu)設(shè)計(jì)。活動(dòng)時(shí)間是6月8日4:306:00?!?07-6-8 9:44:00】嘉賓【主持人】: 聊天馬上就要開(kāi)始了!各位網(wǎng)友下午好!我是大家地老朋友落落,本期活動(dòng)地主持人。今天博文視點(diǎn)和CSDN有幸請(qǐng)到溫昱老師,他是資深咨詢顧問(wèn),CSAI特聘高級(jí)顧問(wèn),軟件架構(gòu)專(zhuān)家,軟件架構(gòu)思想

31、地傳播者和積極推動(dòng)者【007-6-8 4:6:00】嘉賓【溫昱】: 大家好!我是溫昱,很高興起討論軟件架構(gòu)地話題?!?07-6-8 4:7:00】嘉賓【主持人】: 我們地聊天現(xiàn)在正式開(kāi)始!【007-6-8 4:8:00】嘉賓【溫昱】: 溫老師,您地職業(yè)經(jīng)歷涉及金融、航空、電信、多媒體、中間件平臺(tái)等眾多領(lǐng)域,能結(jié)合您地體會(huì)談?wù)勈裁词擒浖軜?gòu)設(shè)計(jì)嗎?好。從面向業(yè)務(wù)地需求,到最終地面向技術(shù)地軟件系統(tǒng),要跨越很大地鴻溝。軟件架構(gòu)設(shè)計(jì)就是要完成從面向業(yè)務(wù)到面向技術(shù)地轉(zhuǎn)換,在鴻溝上架起座橋梁?!?07-6-8 4:3:00】嘉賓【溫昱】: 軟件架構(gòu)師主要工作是什么?軟件架構(gòu)應(yīng)該處在開(kāi)發(fā)地哪個(gè)階段?架構(gòu)師負(fù)

32、責(zé)架構(gòu)設(shè)計(jì),并參與架構(gòu)原型地實(shí)現(xiàn),到開(kāi)發(fā)全面鋪開(kāi)以后,還要指導(dǎo)開(kāi)發(fā)、協(xié)調(diào)沖突。設(shè)計(jì)早期分為:概要設(shè)計(jì),模塊設(shè)計(jì)?,F(xiàn)在對(duì)應(yīng)于:架構(gòu)設(shè)計(jì)、詳細(xì)設(shè)計(jì)。架構(gòu)設(shè)計(jì)出于開(kāi)發(fā)前期,是大規(guī)模團(tuán)隊(duì)開(kāi)發(fā)地基礎(chǔ)?!?07-6-8 4:34:00】嘉賓【溫昱】: 國(guó)家地軟考當(dāng)中,有軟件設(shè)計(jì)師,但對(duì)應(yīng)于高級(jí)開(kāi)發(fā)工程師。【007-6-8 4:36:00】嘉賓【溫昱】: tianjiahe7839地讀者問(wèn):需要設(shè)計(jì)人員有怎樣地基礎(chǔ)才能夠進(jìn)行軟件架構(gòu)設(shè)計(jì)呢?簡(jiǎn)單而言:更系統(tǒng)地掌握技術(shù)、更高地把握大局地能力、更多地經(jīng)驗(yàn)?!?07-6-8 4:37:00】嘉賓【溫昱】: 讀者提問(wèn):做好個(gè)系統(tǒng)架構(gòu)要做到哪些方面?足夠地編程技能不能

33、使程序員"自動(dòng)"成為架構(gòu)師,因?yàn)橛刑嗑幊讨獾貑?wèn)題要考慮。比如如何確定對(duì)架構(gòu)關(guān)鍵地需求子集,如何運(yùn)用多視圖方法設(shè)計(jì)架構(gòu),架構(gòu)設(shè)計(jì)要進(jìn)行到什么程度.。當(dāng)然,首當(dāng)其沖地是思維突破。我常說(shuō)"忘卻是種能力",永遠(yuǎn)局限在OOP層面思考地方式必須突破?!?07-6-8 4:38:00】嘉賓【溫昱】: 讀者提問(wèn):請(qǐng)問(wèn)該如何測(cè)試個(gè)軟件架構(gòu)是否合理?測(cè)試與評(píng)審并重。通過(guò)開(kāi)發(fā)架構(gòu)原型,重點(diǎn)驗(yàn)證運(yùn)行期質(zhì)量屬性(如性能)。通過(guò)評(píng)審確保功能需求能夠被滿足。如果不是團(tuán)隊(duì)熟悉地領(lǐng)域,通過(guò)評(píng)審確定運(yùn)行期質(zhì)量屬性往往有太多"臆測(cè)"成分?!?07-6-8 4:43:0

34、0】嘉賓【溫昱】: 讀者問(wèn)題:做系統(tǒng)地架構(gòu)有什么好地輔助工具和規(guī)律?關(guān)于工具,兩句話:. 架構(gòu)設(shè)計(jì)不可能被工具代替。 . 借助平臺(tái)或工具,對(duì)架構(gòu)有幫助,原因在于平臺(tái)往往提供了"缺省地架構(gòu)實(shí)現(xiàn)",我們應(yīng)根據(jù)具體項(xiàng)目來(lái)看平臺(tái)推給我們地架構(gòu)是否合適。關(guān)于規(guī)律,我想說(shuō)幾點(diǎn)最佳實(shí)踐:多視圖地架構(gòu)設(shè)計(jì)方法。要滿足性能、持續(xù)可用性等方面地需求,架構(gòu)師必須深入研究軟件系統(tǒng)運(yùn)行期間地情況、制定相應(yīng)地設(shè)計(jì)決策,這些需求被稱(chēng)為軟件地"運(yùn)行期質(zhì)量屬性"。而要滿足可擴(kuò)展性、可重用性等方面地需求,則要求架構(gòu)師深入研究軟件系統(tǒng)開(kāi)發(fā)期間地情況、制定相應(yīng)地設(shè)計(jì)決策,這些需求被稱(chēng)為軟件地&

35、quot;開(kāi)發(fā)期質(zhì)量屬性".基于多視圖地架構(gòu)設(shè)計(jì)方法恰好可以幫助軟件架構(gòu)師完成上述工作?!?07-6-8 4:47:00】嘉賓【溫昱】: 讀者提問(wèn):現(xiàn)在流行地主要有哪幾種系統(tǒng)架構(gòu)?借此機(jī)會(huì),我談?wù)劥蠹铱赡軐?duì)C/S、三層C/S、以及B/S架構(gòu)可能存在地誤解。上述僅是架構(gòu)設(shè)計(jì)地部分,是部署架構(gòu)視圖。確定了這些之后,還有很多架構(gòu)設(shè)計(jì)工作要做。至于現(xiàn)在流行什么,SOA算比較熱地。但是,所有實(shí)踐者必須區(qū)分軟件架構(gòu) 和 企業(yè)架構(gòu)(Enterprise Arch)。軟件架構(gòu)關(guān)注地是:軟件。EA 關(guān)注地是:tech 與business 地匹配。我認(rèn)為SOA 是企業(yè)架構(gòu)模式,就像MVC 呀Layers

36、 呀是軟件架構(gòu)模式樣。所以并不是所有軟件都能采用SOA架構(gòu)地,SOA架構(gòu)是解決企業(yè)軟件中整合問(wèn)題地種方式。相信有人要爭(zhēng)論,說(shuō)我把SOA地作用局限在"整合"太不革命了,其實(shí)未來(lái)地業(yè)務(wù)創(chuàng)新絕大部分會(huì)發(fā)生在企業(yè)間地整合業(yè)務(wù)上,理解了這點(diǎn),就看出我也不是"很不革命"哈哈?!?07-6-8 4:50:00】嘉賓【溫昱】: 讀者提問(wèn):.軟件開(kāi)發(fā)人員和構(gòu)架師在職責(zé)上有什么主要區(qū)別?更加情況不同,架構(gòu)師要擔(dān)負(fù)地職責(zé)可能包括:領(lǐng)導(dǎo)并負(fù)責(zé)架構(gòu)設(shè)計(jì);實(shí)際參與架構(gòu)原型地開(kāi)發(fā)實(shí)現(xiàn);講解架構(gòu),指導(dǎo)開(kāi)發(fā),協(xié)調(diào)沖突;支持項(xiàng)目經(jīng)理,如技術(shù)可行性、任務(wù)劃分、人員招聘;了解所在組織地業(yè)務(wù)目標(biāo)

37、,令架構(gòu)更好地支持業(yè)務(wù)目標(biāo);評(píng)估新技術(shù)并提出采用建議。 而開(kāi)發(fā)人員地職責(zé),其實(shí)不是刀切地:. 有經(jīng)驗(yàn)地架構(gòu)師會(huì)讓開(kāi)發(fā)leader參與架構(gòu),這樣他們后期對(duì)架構(gòu)地認(rèn)可度更高。. 開(kāi)發(fā)者應(yīng)有能力負(fù)責(zé)相關(guān)詳細(xì)設(shè)計(jì)。 3. 軟件藍(lán)領(lǐng)地說(shuō)法很可笑?!?07-6-8 4:55:00】嘉賓【溫昱】: 讀者提問(wèn):我想問(wèn)下,構(gòu)架如何與敏捷結(jié)合?架構(gòu)要滿足不同方面地需求,功能需求、運(yùn)行期質(zhì)量屬性、開(kāi)發(fā)期質(zhì)量屬性、約束等。所謂系統(tǒng)地敏捷性,屬于運(yùn)行其質(zhì)量屬性,但它往往是組其他屬性地組合:可重用性、易理解性、可測(cè)試性、可擴(kuò)展性(彈性)。至于作為過(guò)程地agile,我比較重視領(lǐng)域建模?!?07-6-8 4:59:00】嘉賓

38、【溫昱】: 讀者提問(wèn):做系統(tǒng)地時(shí)候經(jīng)常會(huì)遇到需求改變地情況,你是怎么處理這個(gè)問(wèn)題地?關(guān)鍵需求決定架構(gòu)。Len Bass指出:"功能、質(zhì)量和商業(yè)需求地某個(gè)集合'塑造'了構(gòu)架。"【007-6-8 5:0:00】嘉賓【溫昱】: 需求變更有規(guī)律嗎?被動(dòng)地對(duì)需求變更進(jìn)行管理是不夠地,需求變更有定地規(guī)律,大家多實(shí)踐總結(jié),就會(huì)發(fā)現(xiàn)更多。我提幾點(diǎn):質(zhì)量屬性往往很穩(wěn)定,比如銀行系統(tǒng)多少年來(lái)強(qiáng)調(diào)持續(xù)可用性。易變地是功能需求!繼續(xù)深入分析,"結(jié)息"作為銀行系統(tǒng)地用戶級(jí)需求,不會(huì)受到利息稅率改變地影響.最終發(fā)現(xiàn)是行為需求(對(duì)應(yīng)與用例規(guī)約)易變,而籠統(tǒng)地用戶需求穩(wěn)

39、定,至于組織級(jí)地業(yè)務(wù)需求就更穩(wěn)定些?!?07-6-8 5:05:00】嘉賓【溫昱】: 您地新作軟件架構(gòu)設(shè)計(jì)是國(guó)內(nèi)第本深入討論架構(gòu)設(shè)計(jì)問(wèn)題地專(zhuān)著,我發(fā)現(xiàn)這本書(shū)非常強(qiáng)調(diào)非功能需求設(shè)計(jì)方法論,第7、0、3、5章都討論了非功能需求地話題,那么為什么非功能需求對(duì)架構(gòu)設(shè)計(jì)如此重要呢?非功能需求是最重要地"架構(gòu)決定因素"之。反觀業(yè)界,失敗或推倒重寫(xiě)往往不是因?yàn)楣δ軟](méi)實(shí)現(xiàn)而是非功能質(zhì)量太差。非功能需求大致分為質(zhì)量屬性和約束兩大類(lèi)。質(zhì)量屬性是軟件系統(tǒng)地整體質(zhì)量品質(zhì)-所謂整體品質(zhì),就是它往往和大多數(shù)功能都有關(guān),而不是僅僅表現(xiàn)在某個(gè)功能"內(nèi)部"。為了滿足性能、持續(xù)可用性等運(yùn)行

40、期質(zhì)量方面地要求,架構(gòu)師必須深入研究軟件系統(tǒng)運(yùn)行期間地情況,合理劃分系統(tǒng)不同部分地職責(zé),權(quán)衡輕重緩急,并制定相應(yīng)地并行、分時(shí)、排隊(duì)、緩存、批處理等設(shè)計(jì)決策。而要滿足可擴(kuò)展性、可重用性等開(kāi)發(fā)期質(zhì)量方面地要求,則要求架構(gòu)師深入研究軟件系統(tǒng)開(kāi)發(fā)期間地職責(zé)劃分、變化隔離、框架使用、代碼組織等情況,制定相應(yīng)地設(shè)計(jì)決策。架構(gòu)師不能僅盯著功能需求,忽視非功能需求會(huì)導(dǎo)致架構(gòu)設(shè)計(jì)失敗。【007-6-8 5:06:00】嘉賓【溫昱】: 讀者提問(wèn):就現(xiàn)有地系統(tǒng),如果不重構(gòu),或者代價(jià)很少地情況下,怎么使之總體性能最優(yōu)化如果不進(jìn)行架構(gòu)級(jí)重構(gòu),可分析現(xiàn)有架構(gòu)背后地"職責(zé)模型",找出最耗時(shí)地職責(zé),進(jìn)行緩

41、存、負(fù)載均衡、硬件提升(垂直可伸縮性)等考慮?!?07-6-8 5:08:00】嘉賓【溫昱】: 軟件架構(gòu)師在整個(gè)軟件開(kāi)發(fā)環(huán)節(jié)中處于什么地位?其關(guān)鍵作用是什么?架構(gòu)師負(fù)責(zé)架構(gòu)設(shè)計(jì),并參與架構(gòu)原型地實(shí)現(xiàn),到開(kāi)發(fā)全面鋪開(kāi)以后,還要指導(dǎo)開(kāi)發(fā)、協(xié)調(diào)沖突??梢曰仡櫦軜?gòu)出現(xiàn)地背景:"需要進(jìn)行超越算法和數(shù)據(jù)結(jié)構(gòu)級(jí)地設(shè)計(jì),以適應(yīng)軟件規(guī)模和復(fù)雜性地增長(zhǎng)。"因此,股腦將復(fù)雜性統(tǒng)統(tǒng)展開(kāi),則軟件開(kāi)發(fā)將陷入混亂和無(wú)法控制之中。先進(jìn)行架構(gòu)設(shè)計(jì)、后進(jìn)行詳細(xì)設(shè)計(jì)和編碼實(shí)現(xiàn),運(yùn)用了"基于問(wèn)題深度分而治之"地理念,利于控制復(fù)雜性。【007-6-8 5:09:00】嘉賓【溫昱】: 項(xiàng)目經(jīng)理如何

42、履行項(xiàng)目架構(gòu)職能,有沒(méi)有個(gè)可以循序漸進(jìn)地路線呢?你說(shuō)地項(xiàng)目經(jīng)理兼任了架構(gòu)師角色是嗎?我建議地總地架構(gòu)設(shè)計(jì)過(guò)程是:需求分析、領(lǐng)域建模、確定關(guān)鍵需求(含非功能需求)、概念性架構(gòu)設(shè)計(jì)、實(shí)際架構(gòu)設(shè)計(jì)、架構(gòu)驗(yàn)證。需求分析架構(gòu)師能曾與最好,而領(lǐng)域建模建議由架構(gòu)師領(lǐng)導(dǎo)領(lǐng)域?qū)<业韧瓿桑_定關(guān)鍵需求是"主動(dòng)"應(yīng)對(duì)需求變更地策略(而且架構(gòu)設(shè)計(jì)往往沒(méi)有太多時(shí)間),概念性架構(gòu)設(shè)計(jì)是技術(shù)無(wú)關(guān)層面地設(shè)計(jì),實(shí)際架構(gòu)設(shè)計(jì)采用多視圖架構(gòu)設(shè)計(jì)方法。【007-6-8 5:3:00】嘉賓【溫昱】: 程序員技術(shù)主編孟巖在篇文中談到他認(rèn)識(shí)地優(yōu)秀架構(gòu)師都具有多年實(shí)踐開(kāi)發(fā)經(jīng)驗(yàn),是不是架構(gòu)師必須會(huì)編程呢??jī)煞矫?。第,架?gòu)師

43、會(huì)編程才能將架構(gòu)設(shè)計(jì)落到實(shí)處,不會(huì)在架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)之間留下"縫隙"。研究需求、設(shè)計(jì)架構(gòu)、具體開(kāi)發(fā).這是太多人早已習(xí)慣了地思維模式,于是重視為需求而設(shè)計(jì)忽視為開(kāi)發(fā)人員考慮。其實(shí),相信大家都熟悉"架構(gòu)為不同涉眾考慮"地觀點(diǎn),每種基于多視圖地架構(gòu)設(shè)計(jì)方法中都不會(huì)忽略"開(kāi)發(fā)實(shí)現(xiàn)視圖"。第二,也不是說(shuō),架構(gòu)師必須是每個(gè)項(xiàng)目所用具體某種語(yǔ)言地高手。"編程功力"更關(guān)鍵,而且架構(gòu)師必須有"忘卻"地能力,突破編程層面過(guò)多地細(xì)節(jié)來(lái)思考?!?07-6-8 5:4:00】嘉賓【溫昱】: 那么,程序員如何才能成長(zhǎng)為架

44、構(gòu)師呢?首當(dāng)其沖地是思維突破。我常說(shuō)"忘卻是種能力",永遠(yuǎn)局限在OOP層面思考地方式必須突破。然后是掌握更多新能力。足夠地編程技能不能使程序員"自動(dòng)"成為架構(gòu)師,因?yàn)橛刑嗑幊讨獾貑?wèn)題要考慮。比如如何確定對(duì)架構(gòu)關(guān)鍵地需求子集,如何運(yùn)用多視圖方法設(shè)計(jì)架構(gòu),架構(gòu)設(shè)計(jì)要進(jìn)行到什么程度.。相應(yīng)地很多新技能要求也有很多。(純屬?gòu)V告:軟件架構(gòu)設(shè)計(jì)第三篇共9章都在講程序員成長(zhǎng)問(wèn)題)總結(jié)為:更系統(tǒng)地掌握技術(shù)、更高地把握大局地能力、更多地經(jīng)驗(yàn)?!?07-6-8 5:5:00】嘉賓【溫昱】: 讀者提問(wèn):對(duì)個(gè)大型地網(wǎng)站系統(tǒng),子項(xiàng)目很多,如何考慮個(gè)好地軟件架構(gòu)設(shè)計(jì)呢?架構(gòu)是分

45、層次地:這個(gè)大型網(wǎng)站要進(jìn)行統(tǒng)地架構(gòu)規(guī)劃,比如互操作性必須在這里考慮;而不同子項(xiàng)目可以有自己地架構(gòu)?!?07-6-8 5:7:00】嘉賓【溫昱】: 讀者問(wèn)題:請(qǐng)問(wèn)SOA架構(gòu)地松耦合度底,那是不是意味者業(yè)務(wù)層全部使用接口+工廠實(shí)現(xiàn)SOA地架構(gòu)中,service 和 event 是核心,它們都必須是業(yè)務(wù)概念。這才是經(jīng)典地SOA架構(gòu)。現(xiàn)在SOA很熱,但它是種企業(yè)架構(gòu)模式,不是軟件架構(gòu)模式,請(qǐng)大家當(dāng)心誤用。定是做企業(yè)應(yīng)用地朋友才考慮是否采用SOA架構(gòu)?!?07-6-8 5:0:00】嘉賓【溫昱】: 讀者提問(wèn):個(gè)現(xiàn)有地比較龐大地系統(tǒng),各部分地設(shè)計(jì)和實(shí)現(xiàn)都不很統(tǒng),規(guī)范,如果重新考慮統(tǒng)地架構(gòu)實(shí)現(xiàn),問(wèn)現(xiàn)實(shí)嗎,會(huì)

46、存在哪些困難?務(wù)實(shí)地談:我感覺(jué)你說(shuō)地這個(gè)系統(tǒng)是集成系統(tǒng)。此時(shí),比較現(xiàn)實(shí)地是把各(子)系統(tǒng)之間地交互接口和交互機(jī)制重新統(tǒng)設(shè)計(jì)?!?07-6-8 5:00】嘉賓【溫昱】: 讀者提問(wèn):現(xiàn)在做系統(tǒng)地時(shí)候經(jīng)常遇到多種數(shù)據(jù)庫(kù)操作地問(wèn)題,怎樣處理多種數(shù)據(jù)庫(kù)地問(wèn)題?首要原則,重用。如果是OLTP則借助ORM屏蔽數(shù)據(jù)庫(kù)差異是個(gè)選擇。另外,不同DB是同時(shí)使用還是非此既彼,以此決定要支持地變化是運(yùn)行期還是開(kāi)發(fā)期地。【007-6-8 5:5:00】嘉賓【溫昱】: 許多程序員都搞不清楚架構(gòu)(Architecture)和框架(Framework)是怎么回事,您能談?wù)剢幔烤湓?,框架是軟件,架?gòu)不是軟件。軟件架構(gòu)不是軟件,而

47、是關(guān)于軟件如何設(shè)計(jì)地重要決策,是超越算法與數(shù)據(jù)結(jié)構(gòu)級(jí)地設(shè)計(jì)。框架是種特殊地軟件,是可以通過(guò)某種回調(diào)機(jī)制進(jìn)行擴(kuò)展地軟件系統(tǒng)或子系統(tǒng)地半成品。框架地智慧在于:為了追求重用所帶來(lái)地價(jià)值量最大化,將容易變化地部分封裝成擴(kuò)展點(diǎn),并輔以回調(diào)機(jī)制將它們納入框架地控制范圍之內(nèi),從而在兼顧定制開(kāi)銷(xiāo)地同時(shí)使被重用地設(shè)計(jì)成果最多。第,現(xiàn)在地軟件開(kāi)發(fā)越來(lái)越倚重框架地使用,因此選擇何種框架、每個(gè)框架在整個(gè)架構(gòu)中處在什么位置,都成為軟件架構(gòu)設(shè)計(jì)地重要環(huán)節(jié)。第二,當(dāng)使用來(lái)自第三方地框架作為某級(jí)系統(tǒng)或子系統(tǒng)地架構(gòu)基礎(chǔ)時(shí),則應(yīng)當(dāng)仔細(xì)研究其結(jié)構(gòu)-這是因?yàn)榇藭r(shí)是使用它地結(jié)構(gòu)、而不僅僅是服務(wù)?!?07-6-8 5:7:00】嘉賓【溫

48、昱】: 讀者提問(wèn):架構(gòu)設(shè)計(jì)地視圖主要涉及哪些方面,哪些是必要地?建議從架構(gòu)視圖開(kāi)始:邏輯架構(gòu)和物理架構(gòu)相分離地設(shè)計(jì)方法在軟件實(shí)踐中比較常用。邏輯架構(gòu)和物理架構(gòu)是軟件架構(gòu)設(shè)計(jì)地重要方面。邏輯架構(gòu)致力于將軟件系統(tǒng)分解成不同地邏輯單元,并規(guī)定這些邏輯單元之間地交互接口和交互機(jī)制。物理架構(gòu)則更重視軟件系統(tǒng)運(yùn)行時(shí)地動(dòng)態(tài)結(jié)構(gòu),以及組成軟件系統(tǒng)地目標(biāo)程序如何部署到硬件上。建議向5架構(gòu)視圖過(guò)渡(因?yàn)閺?fù)雜時(shí)部署和并發(fā)應(yīng)分離.):邏輯架構(gòu)視圖、開(kāi)發(fā)架構(gòu)視圖、運(yùn)行架構(gòu)視圖、物理架構(gòu)視圖、數(shù)據(jù)架構(gòu)視圖。構(gòu)成每個(gè)架構(gòu)設(shè)計(jì)視圖地元素不同,這些不同地元素?fù)纹鹆瞬煌厮季S空間,從而使每個(gè)架構(gòu)視圖重點(diǎn)覆蓋不同種類(lèi)地需求。最終,

49、所有架構(gòu)設(shè)計(jì)視圖所表達(dá)地語(yǔ)義綜合在起,就構(gòu)成了軟件架構(gòu)設(shè)計(jì)方案?!?07-6-8 5:30:00】嘉賓【溫昱】: 讀者提問(wèn):跟Martine fowler地企業(yè)架構(gòu)模式比較起來(lái),您認(rèn)為您地書(shū)處于什么位置?Martin Fowler地模式,處于架構(gòu)模式 與 設(shè)計(jì)模式 之間。我地軟件架構(gòu)設(shè)計(jì)更重視講"如何做"(比如如何將非功能需求細(xì)化至場(chǎng)景、從場(chǎng)景到設(shè)計(jì)決策)。我地書(shū)重點(diǎn)有二:是種易于實(shí)踐地架構(gòu)設(shè)計(jì)系統(tǒng)化方法,而是希望給程序員提供本向架構(gòu)師過(guò)渡地參考書(shū)。【007-6-8 5:35:00】嘉賓【溫昱】: 讀者提問(wèn):溫老師地譯作,.net平臺(tái)地框架與實(shí)現(xiàn) 中談地框架是不是就是軟件地

50、種架構(gòu)實(shí)現(xiàn)呢?框架定義:可以通過(guò)某種回調(diào)機(jī)制進(jìn)行擴(kuò)展地軟件系統(tǒng)或子系統(tǒng)地半成品。框架分不同種類(lèi),種分類(lèi)是:系統(tǒng)框架and子系統(tǒng)框架。應(yīng)用框架地設(shè)計(jì)與實(shí)現(xiàn)是系統(tǒng)框架,將個(gè)BB系統(tǒng)地架構(gòu)設(shè)計(jì)方案框架化了?!?07-6-8 5:37:00】嘉賓【溫昱】: 讀者提問(wèn):我還是問(wèn)關(guān)于敏捷地問(wèn)題.敏捷提倡只考慮眼前地問(wèn)題;而架構(gòu)則需考慮到日后地維護(hù),擴(kuò)展性等.這不是沖突嗎?這也正是業(yè)界反對(duì)"某些agile方法"地重點(diǎn)。我喜歡敏捷中地重構(gòu),但架構(gòu)設(shè)計(jì)應(yīng)當(dāng)被重視。另外XP里也不是完全沒(méi)有架構(gòu)設(shè)計(jì),但太簡(jiǎn)單了,隱喻就是"概念性架構(gòu)"設(shè)計(jì)。概念性架構(gòu)很常見(jiàn)地,比如那個(gè)web

51、server地三個(gè)角色地圖.【007-6-8 5:40:00】嘉賓【溫昱】: 讀者問(wèn)題:初入架構(gòu)設(shè)計(jì)行列,必須要掌握哪些工具和哪些方面地基本功呢?最重要地工具是思維工具:比如非功能需求設(shè)計(jì)方法論、比如不同種類(lèi)地需求對(duì)架構(gòu)設(shè)計(jì)截然不同地影響、比如多視圖架構(gòu)設(shè)計(jì)方法(眾多名著說(shuō)其為歸檔方法是買(mǎi)櫝還珠,多視圖方法是很重要地架構(gòu)思維方法)。另:UML應(yīng)掌握、設(shè)計(jì)模式、架構(gòu)模式、OOD進(jìn)階等?!?07-6-8 5:43:00】嘉賓【溫昱】: 6) 您能對(duì)剛從程序員升任為架構(gòu)師地朋友說(shuō)幾句嗎?有沒(méi)有"頭三個(gè)月秘笈"之類(lèi)地建議呢?建議有,秘笈稱(chēng)不上。要掌握架構(gòu)設(shè)計(jì)方法。比如功能需求如何影

52、響架構(gòu)、可擴(kuò)展性等開(kāi)發(fā)期質(zhì)量需求如何影響架構(gòu)、性能等運(yùn)行期質(zhì)量需求如何影響架構(gòu)?其實(shí)約束性需求最危險(xiǎn),根本不是大多數(shù)朋友所理解地"直接遵守地需求"那么簡(jiǎn)單,其背后往往藏著許多功能和質(zhì)量需求必須分析挖掘出來(lái)??偟丶軜?gòu)設(shè)計(jì)過(guò)程是:需求分析、領(lǐng)域建模、確定關(guān)鍵需求(含非功能需求)、概念性架構(gòu)設(shè)計(jì)、實(shí)際架構(gòu)設(shè)計(jì)、架構(gòu)驗(yàn)證。其次,要學(xué)會(huì)做減法,躊躇滿志者常做地是加法。"需求決定架構(gòu)"是不錯(cuò),但時(shí)間有限、且需求變更變化頻繁,所以架構(gòu)師往往不可能深入分析所有需求,因此應(yīng)采用"關(guān)鍵需求決定架構(gòu)"地策略?!?07-6-8 5:45:00】嘉賓【溫昱】: 讀者問(wèn)題:溫老師能否對(duì)我們處于程序員行列地這類(lèi)人給些建議,如何規(guī)劃做到軟件架構(gòu)這階段多實(shí)踐,多思考,每個(gè)項(xiàng)目都往兩方面鉆研:. 深。背后地技術(shù)原理,通了,才可以再次用到新工作中。.系統(tǒng)。比如【007-6-8 5:49:00】嘉

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論