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

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

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

    潛魚在淵

    Concentrating on Architectures.

    posts - 77, comments - 309, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
        經(jīng)常感覺很多人對于架構(gòu)和框架分得不是很清楚,隨便寫一點(diǎn)關(guān)于這方面的東西吧。如果以后對于這方面的認(rèn)識(shí)更加深刻的話,再補(bǔ)充好了。

        1. 架構(gòu)和框架的設(shè)計(jì)層次不同

        類似于硬件設(shè)計(jì),軟件設(shè)計(jì)也分為不同的層次。典型的軟件設(shè)計(jì)層次如下圖:

    design-level.BMP

        在這個(gè)圖中我們可以看到,F(xiàn)ramework處于Micro-architectures和Application Level之間。Deisgn Patterns是Micro-architectures級(jí)的設(shè)計(jì),F(xiàn)ramework由多個(gè)Design Pattern和其他微架構(gòu)設(shè)計(jì)元素形成。而Object&classes、Micro-architectures和Framework被稱為 Micro Level設(shè)計(jì)。就是說,從Objects&classes到Framework,還沒有發(fā)生質(zhì)變。

        對于Application Level到Global/Industry Level的設(shè)計(jì)來說,就都是Architecture的范疇了。從Application Level來說,它是由零到多個(gè)Framework組成的獨(dú)立的應(yīng)用程序,會(huì)考慮諸如UI之類的重要問題。System Level由多個(gè)應(yīng)用組成,每個(gè)應(yīng)用在整個(gè)系統(tǒng)中代表不同的角色,這些應(yīng)用共同組成一個(gè)系統(tǒng)工作環(huán)境。Enterprise Level又是由System Level組成,通常跨越整個(gè)企業(yè)(這里是廣義的企業(yè))中的多個(gè)組織機(jī)構(gòu)。Global/industry Level由多個(gè)企業(yè)通過Internet和商業(yè)市場組成一個(gè)相當(dāng)大范圍內(nèi)的系統(tǒng)應(yīng)用,B2B就是這樣的Global Level設(shè)計(jì)的應(yīng)用系統(tǒng)。

        顯然Framework和Architecture在這里的差別是巨大的,哪怕和Application Level相比。當(dāng)一個(gè)應(yīng)用中只使用了一個(gè)Framework時(shí),我們可以把它叫做Architecture嗎?事實(shí)上,F(xiàn)ramework僅僅是 Architecture中的一個(gè)微不足道的部分。在Achitecture中,我們考慮技術(shù)視圖時(shí),會(huì)選擇J2EE或.NET,然后才會(huì)考慮:是否要用 Spring、Hibernate?從這里可以看出,F(xiàn)ramework只是技術(shù)視圖的一個(gè)設(shè)計(jì)決策。

        2. 架構(gòu)和框架的Design Forces不同

        其實(shí),僅僅上面的描述也應(yīng)該能夠讓大家清楚的認(rèn)識(shí)到Architecture和Framework的區(qū)別了。但我還想在另外的方面更進(jìn)一步說明。

        Design Forces我不知道怎么翻譯,只能解釋一下了:Design Forces指設(shè)計(jì)主要針對的問題、領(lǐng)域和能力。勉強(qiáng)可以翻譯成“設(shè)計(jì)針對”吧。

        Framework的Design Forces主要是功能性、復(fù)雜性和性能。從Framework的定位和設(shè)計(jì)層次來說,它主要目的是幫助開發(fā)人員完成公共的、系統(tǒng)的功能,這些功能在大多 數(shù)應(yīng)用中都需要,差別在于多少而已。對于一個(gè)Framework,完成系統(tǒng)的功能,隱藏并盡量簡化這些系統(tǒng)功能的復(fù)雜性,同時(shí)提供可接受的性能,這就是它 的設(shè)計(jì)目標(biāo)了。

        而對于Architecture,其最主要的Design Force就是變更。其次,所有可能的問題都是要在Architecture中考慮:復(fù)雜性、功能、性能、技術(shù)、所有非功能需要等等。。。

        3. OOP、AOP還是FOP(Framework oriented Programming)?!

        做Java有一個(gè)好處,就是各種框架技術(shù)層出不窮,使用方便。但這不見得就是好事情。感覺很多人非常專注于框架的使用和研究,對框架注意力 甚至超過了對OO、Java、J2EE規(guī)范等基本的東西的注意力。倒是有些象當(dāng)初Windows下面,用VB、VC、Delphi,還是 CBuilder?似乎有些人把OOP、AOP變成了FOP。

        在我看來,框架這個(gè)東西,用用是可以的,研究就不必了;自己寫個(gè)框架也是可以的,但也不應(yīng)該停留在框架這個(gè)層次。不要在框架上浪費(fèi)精力,把這個(gè)事情交給畢業(yè)生做好了。

        4. 慎用Framework!

    小標(biāo)題夸張一點(diǎn),是為了提醒大家。一般情況下,使用Framework可以大大減少工作量,使開發(fā)變得容易。通常使用框架應(yīng)該是值得鼓勵(lì)的。但是也要注意:

    • 不要濫用Framework。不要在一個(gè)不是很大的項(xiàng)目中使用過多的Framework,不然維護(hù)會(huì)受到影響。
    • 盡量不要同時(shí)使用幾個(gè)功能上有交叉的Framework。這會(huì)使項(xiàng)目開發(fā)的管理更加復(fù)雜,同樣會(huì)導(dǎo)致維護(hù)問題。
    • 在Enterprise Level的應(yīng)用中使用Framework時(shí),要對Framework進(jìn)行嚴(yán)格的評(píng)估,確保其Design Forces不和Enterprise Level的應(yīng)用沖突!Framework在設(shè)計(jì)時(shí)刻通常不會(huì)考慮到Enterprise Level的問題,你不能想當(dāng)然的認(rèn)為它一定可以適合你的Enterprise應(yīng)用!

        關(guān)于架構(gòu)和框架,可以用一首詩來做結(jié):

        橫看成嶺側(cè)成峰,遠(yuǎn)近高低各不同。
        不識(shí)廬山真面目,只緣身在此山中。  

    評(píng)論

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2005-11-22 11:58 by swing
    1

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2005-11-22 17:42 by hhhh
    "在我看來,框架這個(gè)東西,用用是可以的,研究就不必了;自己寫個(gè)框架也是可以的,但也不應(yīng)該停留在框架這個(gè)層次。不要在框架上浪費(fèi)精力,把這個(gè)事情交給畢業(yè)生做好了。"
    對于這段話偶不得不說兩句了,“自己寫個(gè)框架也是可以的“,當(dāng)然可以。不過你從來不研究其他人寫的框架, 又如何寫得好自己的框架。比如我要寫一個(gè)GUI框架,我去研究一下swing,swt/jface 應(yīng)該還是很有幫助的吧!還有寫一個(gè)框架應(yīng)該不容易吧!因?yàn)槟阋半U(xiǎn)定義某一領(lǐng)域的模型,比如你寫了一個(gè)GUI框架,那么你等于在說GUI編程模型應(yīng)該是這樣的。
    所以,
    “研究還是必要的”;

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2005-11-22 18:00 by hhhh
    VB 與 java框架還是應(yīng)當(dāng)另當(dāng)別論的。像vb ,pb這些東西,語言與開發(fā)環(huán)境是不可分的,或者說它們是開發(fā)環(huán)境主導(dǎo)的,語言反而成了開發(fā)環(huán)境的附屬物。而java是標(biāo)準(zhǔn)化的,你也可以實(shí)現(xiàn)一個(gè)java的開發(fā)環(huán)境。

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2005-11-23 00:37 by 非魚
    我寫這一小節(jié)的意思是:不要被層出不窮的框架迷惑。
    可能表達(dá)不是很清楚。

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2005-12-27 15:25 by EJB,J2EE失樂園
    架構(gòu)(Architecture)和框架(Framework)雜談, 期待有下篇

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2006-02-10 15:05 by huion
    3. OOP、AOP還是FOP(Framework oriented Programming)?!

    做Java有一個(gè)好處,就是各種框架技術(shù)層出不窮,使用方便。但這不見得就是好事情。感覺很多人非常專注于框架的使用和研究,對框架注意力甚至超過了對OO、Java、J2EE規(guī)范等基本的東西的注意力。倒是有些象當(dāng)初Windows下面,用VB、VC、Delphi,還是 CBuilder?似乎有些人把OOP、AOP變成了FOP。

    在我看來,框架這個(gè)東西,用用是可以的,研究就不必了;自己寫個(gè)框架也是可以的,但也不應(yīng)該停留在框架這個(gè)層次。不要在框架上浪費(fèi)精力,把這個(gè)事情交給畢業(yè)生做好了。


    框架大都是一些構(gòu)架模式的體現(xiàn),像mvc orm di
    好的框架都是 OO java規(guī)范的體現(xiàn)...
    為什么不研究呢???

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2006-04-26 22:27 by gzscorpio
    受益,但也不必鄙視框架的研究,就像搞項(xiàng)目管理的不必鄙視編程的一樣,其實(shí)沒什么高低之分,只是大家的專注點(diǎn)不同而已

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2006-07-14 10:01 by 夢者
    恩,對于框架的理解我基本明白了,但架構(gòu)還是有些迷惑,不知道我下面的說法是否正確:架構(gòu)可以簡單理解為在多種框架的基礎(chǔ)上做更高一級(jí)框架的設(shè)計(jì)。這樣說似乎變成了框架的遞歸。

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2006-08-26 12:26 by jindw
    叫 Architecture也好、 叫Framework也好、上層的設(shè)計(jì)如果能夠簡化開發(fā),給程序員帶來實(shí)惠,他就有前途,這樣的標(biāo)準(zhǔn)才會(huì)有人去遵循,如果僅僅是幾個(gè)中看不中用的概念集合,它就忽悠不料多久了,早晚會(huì)死掉。

    成功設(shè)計(jì)可以做到復(fù)雜問題簡單化,反之就會(huì)簡單問題復(fù)雜化。

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2006-11-27 14:00 by 路過
    一個(gè)成功、穩(wěn)定的框架都要需要相當(dāng)長時(shí)間演化,至少應(yīng)用到3個(gè)項(xiàng)目,并經(jīng)受項(xiàng)目特殊需求的考驗(yàn),才可以實(shí)現(xiàn)重用的目的。

    自己動(dòng)手做框架一般發(fā)生在嵌入式領(lǐng)域,其實(shí)也就是把PC上的抄過來就可以了,在這種情況下需要“框架”。一般在PC機(jī)上只要會(huì)使用框架的API就可以了。

    # re: 架構(gòu)(Architecture)和框架(Framework)雜談  回復(fù)  更多評(píng)論   

    2011-11-14 00:55 by momo2003
    架構(gòu)是一個(gè)總體的東西,而框架是一個(gè)具體的東西。舉個(gè)例子:建筑設(shè)計(jì)師給出的是一個(gè)大樓的總體架構(gòu),而框架就是這個(gè)架構(gòu)的具體實(shí)現(xiàn)。
    自己的理解,可能不對。
    主站蜘蛛池模板: 免费的涩涩视频在线播放| 91久久精品国产免费一区| 84pao国产成视频免费播放| 亚洲女人被黑人巨大进入| 性做久久久久免费观看| 免费乱码中文字幕网站| 亚洲伊人久久大香线蕉AV| 91麻豆国产免费观看| 国产成人A人亚洲精品无码| 亚洲五月六月丁香激情| 亚洲香蕉在线观看| 无套内射无矿码免费看黄| 拍拍拍又黄又爽无挡视频免费| 亚洲成AV人片在线播放无码| 精品97国产免费人成视频| 中文字幕在线免费| 亚洲AV人人澡人人爽人人夜夜| 二区久久国产乱子伦免费精品| 97国产免费全部免费观看| 波多野结衣视频在线免费观看| 亚洲日本VA午夜在线影院| 91精品成人免费国产| 亚洲成a人无码av波多野按摩| 亚洲韩国—中文字幕| 在线美女免费观看网站h| 亚洲精品动漫在线| 成人免费av一区二区三区| 国产亚洲福利精品一区| 亚洲国产无线乱码在线观看| 99热这里只有精品免费播放| 免费国产在线观看不卡| 一区二区三区精品高清视频免费在线播放 | 日韩a级无码免费视频| 亚洲国产成人一区二区精品区| 99re免费视频| 国产精品亚洲片在线花蝴蝶| 可以免费看黄的网站| 国产亚洲精品2021自在线| 日本亚洲视频在线| AA免费观看的1000部电影| 精品国产_亚洲人成在线|