<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
        經常感覺很多人對于架構和框架分得不是很清楚,隨便寫一點關于這方面的東西吧。如果以后對于這方面的認識更加深刻的話,再補充好了。

        1. 架構和框架的設計層次不同

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

    design-level.BMP

        在這個圖中我們可以看到,Framework處于Micro-architectures和Application Level之間。Deisgn Patterns是Micro-architectures級的設計,Framework由多個Design Pattern和其他微架構設計元素形成。而Object&classes、Micro-architectures和Framework被稱為 Micro Level設計。就是說,從Objects&classes到Framework,還沒有發生質變。

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

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

        2. 架構和框架的Design Forces不同

        其實,僅僅上面的描述也應該能夠讓大家清楚的認識到Architecture和Framework的區別了。但我還想在另外的方面更進一步說明。

        Design Forces我不知道怎么翻譯,只能解釋一下了:Design Forces指設計主要針對的問題、領域和能力。勉強可以翻譯成“設計針對”吧。

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

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

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

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

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

        4. 慎用Framework!

    小標題夸張一點,是為了提醒大家。一般情況下,使用Framework可以大大減少工作量,使開發變得容易。通常使用框架應該是值得鼓勵的。但是也要注意:

    • 不要濫用Framework。不要在一個不是很大的項目中使用過多的Framework,不然維護會受到影響。
    • 盡量不要同時使用幾個功能上有交叉的Framework。這會使項目開發的管理更加復雜,同樣會導致維護問題。
    • 在Enterprise Level的應用中使用Framework時,要對Framework進行嚴格的評估,確保其Design Forces不和Enterprise Level的應用沖突!Framework在設計時刻通常不會考慮到Enterprise Level的問題,你不能想當然的認為它一定可以適合你的Enterprise應用!

        關于架構和框架,可以用一首詩來做結:

        橫看成嶺側成峰,遠近高低各不同。
        不識廬山真面目,只緣身在此山中。  

    評論

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

    2005-11-22 11:58 by swing
    1

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

    2005-11-22 18:00 by hhhh
    VB 與 java框架還是應當另當別論的。像vb ,pb這些東西,語言與開發環境是不可分的,或者說它們是開發環境主導的,語言反而成了開發環境的附屬物。而java是標準化的,你也可以實現一個java的開發環境。

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

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

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


    框架大都是一些構架模式的體現,像mvc orm di
    好的框架都是 OO java規范的體現...
    為什么不研究呢???

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

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

    成功設計可以做到復雜問題簡單化,反之就會簡單問題復雜化。

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

    2006-11-27 14:00 by 路過
    一個成功、穩定的框架都要需要相當長時間演化,至少應用到3個項目,并經受項目特殊需求的考驗,才可以實現重用的目的。

    自己動手做框架一般發生在嵌入式領域,其實也就是把PC上的抄過來就可以了,在這種情況下需要“框架”。一般在PC機上只要會使用框架的API就可以了。

    # re: 架構(Architecture)和框架(Framework)雜談  回復  更多評論   

    2011-11-14 00:55 by momo2003
    架構是一個總體的東西,而框架是一個具體的東西。舉個例子:建筑設計師給出的是一個大樓的總體架構,而框架就是這個架構的具體實現。
    自己的理解,可能不對。
    主站蜘蛛池模板: 亚洲国产精品一区二区成人片国内| 卡一卡二卡三在线入口免费| 国产国拍精品亚洲AV片| 无人视频免费观看免费视频| 国产青草视频免费观看97| 亚洲欧洲无码一区二区三区| 成年在线观看网站免费| 国产成人精品日本亚洲网址| 日本zzzzwww大片免费| 亚洲av乱码一区二区三区 | 亚洲精品线在线观看| 日韩免费无码视频一区二区三区| 亚洲av福利无码无一区二区| 午夜免费福利小电影| 亚洲欧洲高清有无| 成全高清视频免费观看| 精品久久久久久久久亚洲偷窥女厕 | 亚洲精品高清视频| 午夜性色一区二区三区免费不卡视频| 亚洲w码欧洲s码免费| 免费鲁丝片一级观看| 四虎永久在线精品免费一区二区| 亚洲国产精品嫩草影院在线观看| 你懂的免费在线观看网站| 亚洲国产成人va在线观看网址| 免费观看理论片毛片| 一边摸一边爽一边叫床免费视频| 亚洲国产精品嫩草影院在线观看| 美女视频黄a视频全免费| 边摸边吃奶边做爽免费视频网站| 亚洲中文字幕无码一区二区三区 | 最近2019中文免费字幕| 爱情岛论坛免费视频| 久久青青草原亚洲AV无码麻豆 | 久久er国产精品免费观看8| 777亚洲精品乱码久久久久久| 在线A级毛片无码免费真人| 美女被免费网站91色| 久久精品国产亚洲av麻豆图片| 免费成人黄色大片| 最近中文字幕2019高清免费|