<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7
        系統(tǒng)架構(gòu)通俗的說(shuō)起來(lái)就是系統(tǒng)的結(jié)構(gòu)組織方式.原則上說(shuō), 架構(gòu)只有好壞之分,而不存在有無(wú)的問(wèn)題. 軟件的體系架構(gòu)可以直接體現(xiàn)為代碼的類結(jié)構(gòu), 也可以表現(xiàn)為文檔性的編碼規(guī)范和全局約定等. 如果軟件架構(gòu)中能夠抽象出一些穩(wěn)定的元素, 那我們就可能得到一些所謂的框架代碼. 一般業(yè)務(wù)架構(gòu)是很難重用的, 目前常見(jiàn)的框架代碼所描述的多半是與業(yè)務(wù)無(wú)關(guān)的技術(shù)架構(gòu).
        
        良好的系統(tǒng)架構(gòu)應(yīng)該體現(xiàn)出應(yīng)用本身的結(jié)構(gòu)要求. 所謂各個(gè)為自己, 架構(gòu)為大家. 只要各個(gè)局部符合規(guī)格, 應(yīng)該由架構(gòu)負(fù)責(zé)在合適的時(shí)刻按照合適的方式把它們組裝在一些. 一個(gè)良好的架構(gòu)中, 應(yīng)該很少出現(xiàn)結(jié)構(gòu)性的if語(yǔ)句, 不需要應(yīng)用代碼自己通過(guò)動(dòng)態(tài)判斷來(lái)定義某個(gè)特殊的觸發(fā)時(shí)刻. 架構(gòu)是一種規(guī)范, 當(dāng)然也就是一種局限. 架構(gòu)的可退化性是非常重要的, 否則一旦出現(xiàn)抽象泄露, 需要超出原有架構(gòu)設(shè)計(jì)做出編碼補(bǔ)充的時(shí)候, 往往無(wú)法將代碼自然的融入原有的框架結(jié)構(gòu), 則整個(gè)框架出現(xiàn)大面積的失效情況. 而有的時(shí)候更糟糕的情況是一些關(guān)鍵性的資源處在原有技術(shù)架構(gòu)的私有控制之中, 我們?yōu)榱丝朔軜?gòu)限制不得不采用各種trick來(lái)hack原有框架, 造成錯(cuò)誤的累加和傳播, 而補(bǔ)丁的補(bǔ)丁是最難維護(hù)的.

        架構(gòu)問(wèn)題并不是一成不變的. 在一些情形下無(wú)關(guān)緊要的問(wèn)題在另一種情形下可能會(huì)成為災(zāi)難性的架構(gòu)問(wèn)題. 例如在多層B/S架構(gòu)下, 如果現(xiàn)在要求為每一個(gè)表增加一個(gè)對(duì)應(yīng)的歷史表, 并對(duì)其進(jìn)行查看和維護(hù)操作. 為了最大限度的重用代碼, 這要求我們的多層結(jié)構(gòu)中的每一層都能夠參數(shù)化, 這樣我們才能用同樣的代碼處理不同的數(shù)據(jù)表. 如果我們的money很足, 小弟夠多, 有足夠的人月砸上去, 那么我們完全可以把業(yè)務(wù)表和歷史表分開(kāi)處理, 但如果反之,我們就會(huì)遇到一個(gè)典型的架構(gòu)問(wèn)題.

        架構(gòu)師未必有自己的框架, 因?yàn)樵O(shè)計(jì)不等價(jià)于創(chuàng)造, 架構(gòu)師只要知道如何把系統(tǒng)中的各種元素按照可行的方式組裝在一起就可以了. 但是一個(gè)架構(gòu)設(shè)計(jì)是非常依賴于我們所能采用的技術(shù)手段的, 當(dāng)現(xiàn)有各種可用的技術(shù)元素都無(wú)法滿足我們的需求的時(shí)候, 某些架構(gòu)師可能會(huì)選擇創(chuàng)造一種技術(shù)元素. 當(dāng)然, 創(chuàng)造是艱難的, 它所要求的甚至是不同的技能. Sun的Green項(xiàng)目創(chuàng)造了java語(yǔ)言, 從而開(kāi)啟了一個(gè)偉大的時(shí)代, 這絕對(duì)不會(huì)是大多數(shù)架構(gòu)設(shè)計(jì)師的選擇(有趣的是,Green項(xiàng)目本身失敗了). EJB現(xiàn)在還有多少人在真正使用, 想想當(dāng)年多少架構(gòu)師在吹噓這些東西. 他們對(duì)于技術(shù)的把握真的就那么幼稚嗎? 架構(gòu)設(shè)計(jì)并不是憑空出現(xiàn)的, 當(dāng)時(shí)可選的東西就是如此, 而spring和hibernate這些都不屬于架構(gòu)設(shè)計(jì)本身的內(nèi)容.它們是一種創(chuàng)造.
        
        架構(gòu)師未必是團(tuán)隊(duì)的領(lǐng)導(dǎo)者. 確實(shí),他的工作類似于編劇, 負(fù)責(zé)執(zhí)行的一般是導(dǎo)演. 事實(shí)上,一個(gè)建筑設(shè)計(jì)師是極少直接領(lǐng)導(dǎo)一個(gè)工程隊(duì)的.架構(gòu)師也未必比高級(jí)程序員要高明, 他們負(fù)責(zé)的是不同的內(nèi)容. 至于產(chǎn)品的"商標(biāo)及商標(biāo)的相關(guān)元素"和"技術(shù)市場(chǎng)架構(gòu)"等也不屬于架構(gòu)師的工作范疇, 他不能去搶產(chǎn)品經(jīng)理的飯碗. 當(dāng)然,在國(guó)內(nèi)的現(xiàn)實(shí)情況下, 很多所謂的架構(gòu)師所做的最重要的工作可能是公關(guān)工作, 向客戶秀出所謂的理念, 與實(shí)際開(kāi)發(fā)是不搭嘎的.     
        
        理論上說(shuō), 架構(gòu)師可以不是編程的強(qiáng)者, 也可以不決定一些具體數(shù)據(jù)結(jié)構(gòu)的選擇, 但他不能不了解各種技術(shù)抉擇潛在的影響. 這就如同一個(gè)建筑設(shè)計(jì)師可以不精通工程力學(xué),但是他不能愚蠢到藐視重力, 設(shè)計(jì)出倒三角式的大廈. 與建筑不同的是, 在軟件中我們所面臨的不是一種"凝固的藝術(shù)", 我們無(wú)法以完全靜態(tài)的方式理解代碼,而必須在頭腦中把它們運(yùn)行起來(lái). 架構(gòu)師應(yīng)該寫下一些實(shí)際的代碼, 以檢驗(yàn)各個(gè)接口的可配合性并獲得對(duì)于代碼結(jié)構(gòu)的直接感覺(jué). 實(shí)際上, 按照現(xiàn)在軟件業(yè)的成熟度, 一般我們無(wú)法實(shí)現(xiàn)建筑中建筑設(shè)計(jì)師與土木工程師的分工, 很多時(shí)候軟件架構(gòu)師都需要直接面對(duì)實(shí)現(xiàn)的細(xì)節(jié). 如果組內(nèi)缺乏非常強(qiáng)悍的coder, 有編程能力的架構(gòu)師親自操刀實(shí)現(xiàn)關(guān)鍵性代碼的時(shí)候也是很多的.

        架構(gòu)師必須有經(jīng)驗(yàn), 但他所依賴的不能只是經(jīng)驗(yàn). 只要算一算架構(gòu)師的年紀(jì), 就會(huì)知道以他們?cè)谶@個(gè)世界上的存在時(shí)間, 并不足以使得他們經(jīng)歷各種技術(shù)細(xì)節(jié). 架構(gòu)設(shè)計(jì)更多的是依賴我們對(duì)于系統(tǒng)結(jié)構(gòu)原理的理解, 而經(jīng)驗(yàn)可以讓我們規(guī)避那些原理失效的地方(例如系統(tǒng)級(jí)bug). 君子非異能也, 善假于物也. 很多時(shí)候,我們更應(yīng)該從有經(jīng)驗(yàn)的朋友或者技術(shù)支持那里搜集技術(shù)細(xì)節(jié), 以確保它們能夠滿足我們?cè)诩軜?gòu)上的原理性需求. Know Why而不僅僅是Know How是非常重要的. 一個(gè)農(nóng)民發(fā)明家也許可以得到某個(gè)巧妙的機(jī)械設(shè)計(jì), 但是沒(méi)有系統(tǒng)的掌握工程力學(xué), 他們是無(wú)法去開(kāi)發(fā)精密的導(dǎo)彈控制系統(tǒng)的.當(dāng)然, 軟件開(kāi)發(fā)還處在非常原始的階段, 掌握一些設(shè)計(jì)原理和設(shè)計(jì)模式多半也不過(guò)是五十步笑百步而已, 經(jīng)驗(yàn)的地位是無(wú)可替代的.

        架構(gòu)師不是預(yù)言家. 在多變的業(yè)務(wù)環(huán)境中, 架構(gòu)師的目標(biāo)不應(yīng)該是預(yù)測(cè)到所有的變化可能, 并把它們表達(dá)到系統(tǒng)架構(gòu)中. 這個(gè)世界上不乏一些耗資數(shù)十億,設(shè)計(jì)三四年,但最終每個(gè)談到它的人都要說(shuō)一句shit的產(chǎn)品開(kāi)發(fā)項(xiàng)目. 架構(gòu)設(shè)計(jì)所能做到的最好的程度是自然的標(biāo)注出系統(tǒng)的結(jié)構(gòu)邊界,成功的delay各種技術(shù)抉擇.

        架構(gòu)師不是超人, 他所考慮的東西也許要遠(yuǎn)一些, 所需要平衡的利益也許要多一些, 但是單獨(dú)一個(gè)人是無(wú)法對(duì)整個(gè)產(chǎn)品或者項(xiàng)目的成敗負(fù)責(zé)的. 如果ThoughtWorks的Martin Follower來(lái)處理國(guó)內(nèi)的某些項(xiàng)目, 我估計(jì)他會(huì)死得很難看.架構(gòu)師也是人, 也會(huì)犯錯(cuò)誤,甚至是很低級(jí)的錯(cuò)誤, 而每個(gè)人都會(huì)有一些獨(dú)特的想法. 經(jīng)歷的多了, 你就會(huì)回歸到終極的認(rèn)識(shí), 一切都只是浮云, 只有money才是硬道理.

    Feedback

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2005-12-18 18:07 by 非魚(yú)
    Excellent work!
    就知道你一直在關(guān)注關(guān)于架構(gòu)的討論,現(xiàn)在終于看到大師出手了!^_^

    真高興討論越來(lái)越熱烈了,真理越辯越明,在這腦力的震蕩中,讓我們共同進(jìn)步吧!

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2005-12-18 21:55 by Programmer's Life
    ^_^,作為架構(gòu)師我覺(jué)得最為關(guān)鍵的在于做出符合一定背景下的合適的架構(gòu),就象canonical所說(shuō)一樣,架構(gòu)在一個(gè)系統(tǒng)中必然存在,其實(shí)也沒(méi)有絕對(duì)的技術(shù)的優(yōu)劣之分,只有合適與否之分,這個(gè)合適與否不僅僅從需求上,還得從團(tuán)隊(duì)上、難度上、時(shí)間上等方面進(jìn)行分析。
    同意canonical所說(shuō)的架構(gòu)設(shè)計(jì)師的一個(gè)定位,架構(gòu)設(shè)計(jì)師我也認(rèn)同是技術(shù)角度的,一個(gè)產(chǎn)品/項(xiàng)目中需要有幾種角色,產(chǎn)品經(jīng)理/項(xiàng)目經(jīng)理、BA、架構(gòu)設(shè)計(jì)師、開(kāi)發(fā)經(jīng)理、開(kāi)發(fā)人員等,架構(gòu)設(shè)計(jì)師在其中是技術(shù)崗位,考慮的仍然是做出一定背景下的合適的架構(gòu)。

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2005-12-19 03:00 by weide
    每次看到樓主的文章,都有嘆為觀止的驚艷感覺(jué),原來(lái)問(wèn)題可以這么思考的,忍不住要上下其手的摸索一番...

    ------------------
    架構(gòu)的可退化性---這個(gè)是說(shuō)架構(gòu)的無(wú)侵入性嗎?

    -------------------
    架構(gòu)師不是預(yù)言家. 在多變的業(yè)務(wù)環(huán)境中, 架構(gòu)師的目標(biāo)不應(yīng)該是預(yù)測(cè)到所有的變化可能, 并把它們表達(dá)到系統(tǒng)架構(gòu)中. 這個(gè)世界上不乏一些耗資數(shù)十億,設(shè)計(jì)三四年,但最終每個(gè)談到它的人都要說(shuō)一句shit的產(chǎn)品開(kāi)發(fā)項(xiàng)目. 架構(gòu)設(shè)計(jì)所能做到的最好的程度是自然的標(biāo)注出系統(tǒng)的結(jié)構(gòu)邊界,成功的delay各種技術(shù)抉擇.

    這話真是太經(jīng)典了,到了最后發(fā)現(xiàn),所有項(xiàng)目的相關(guān)人員的利益擺不平,都成不了事兒

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2005-12-20 18:33 by nighthawk
    又看到 canonical的文章了。呵呵,很好!

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2006-05-29 14:45 by 老鼠
    哦,真可惜,我今天才看到您的文章:(:(

    好文!我轉(zhuǎn)走了:)

    如果您不喜歡我轉(zhuǎn)走它,請(qǐng)您給我來(lái)信:cammy.sun@hotmail.com

    謝謝您:rose:

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2006-06-02 17:32 by pc
    http://www.kpwang.com/jsp_java/200646143629.htm jsp中調(diào)用Oracle存儲(chǔ)過(guò)程的小例子
    http://www.kpwang.com/jsp_java/200646142633.htm jsp中實(shí)現(xiàn)全文檢索
    http://www.kpwang.com/jsp_java/200646142221.htm jsp技巧:發(fā)送動(dòng)態(tài)圖像

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2009-03-05 19:06 by 別說(shuō)我的眼淚無(wú)所謂
    你們有哪個(gè)有架構(gòu)設(shè)計(jì)的資料嗎?
    我是一個(gè)菜鳥(niǎo)來(lái)學(xué)習(xí)這個(gè)啊?
    這個(gè)公司也他那個(gè)了

    # re: 雜談架構(gòu)和架構(gòu)設(shè)計(jì)師  回復(fù)  更多評(píng)論   

    2009-05-31 10:37 by DannyShi
    一切都只是浮云, 只有money才是硬道理
    主站蜘蛛池模板: 亚洲入口无毒网址你懂的| 免费v片在线观看无遮挡| 亚洲成a人片77777老司机| 最近2019中文字幕mv免费看| 亚洲一级黄色大片| 亚洲无线观看国产精品| 18禁超污无遮挡无码免费网站 | 狠狠色伊人亚洲综合网站色 | 久操视频免费观看| 亚洲欧洲另类春色校园小说| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 波多野结衣久久高清免费 | 免费黄色电影在线观看| 亚洲午夜电影一区二区三区| 亚洲午夜未满十八勿入网站2| 国产jizzjizz视频免费看| 97无码人妻福利免费公开在线视频| 色多多免费视频观看区一区| 在线A亚洲老鸭窝天堂| 亚洲av高清在线观看一区二区| 野花高清在线观看免费3中文| 亚洲视频免费观看| 日本一区二区在线免费观看| 亚洲另类激情综合偷自拍图| 1000部啪啪未满十八勿入免费| 久草免费手机视频| 性xxxxx大片免费视频| 精品一卡2卡三卡4卡免费视频| eeuss免费天堂影院| 一级日本高清视频免费观看| 亚洲欧洲日产国码二区首页| 亚洲最大福利视频网站| 亚洲av无码av制服另类专区| 国产在线ts人妖免费视频| 夫妻免费无码V看片| 免费观看91视频| 日本免费中文字幕| 99久久人妻精品免费一区| 理论秋霞在线看免费| 色网站在线免费观看| 免费无码婬片aaa直播表情|