<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      邏輯架構(gòu)和物理架構(gòu)

      在實(shí)際工作中,我們經(jīng)常聽(tīng)到“架構(gòu)”和“架構(gòu)師”這樣的名詞,并不新鮮,但是總讓很多剛?cè)腴T的人感覺(jué)很神秘,甚至是高深莫測(cè)。很少有人對(duì)“架構(gòu)”有全面的了解和認(rèn)識(shí)能并說(shuō)清楚架構(gòu)是什么,更談不上掌握了。事實(shí)上,也只有極少數(shù)人能成為或者被冠以“架構(gòu)師”這樣的title。為此,筆者總結(jié)了對(duì)架構(gòu)的一些理解,希望能夠補(bǔ)充很多初入門的人在這方面認(rèn)識(shí)上的不足,糾正一些誤解。高手和老鳥(niǎo)就直接跳過(guò)吧。

       

      • 架構(gòu)的分類

       

      對(duì)于“架構(gòu)”來(lái)講,理論上劃分了5種架構(gòu)視圖,分別是:邏輯架構(gòu)、開(kāi)發(fā)架構(gòu)、運(yùn)行架構(gòu)、物理架構(gòu)數(shù)據(jù)架構(gòu)。根據(jù)名字,大家都可能大概能猜到其側(cè)重點(diǎn)和含義。這里先用通俗的文字簡(jiǎn)單介紹下,便于大家理解,大家可以不必糾結(jié)概念和這些理論。

       

      邏輯架構(gòu):邏輯架構(gòu)關(guān)注的是功能,包含用戶直接可見(jiàn)的功能,還有系統(tǒng)中隱含的功能。或者更加通俗來(lái)描述,邏輯架構(gòu)更偏向我們?nèi)粘K斫獾摹胺謱印保岩粋€(gè)項(xiàng)目分為“表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層”這樣經(jīng)典的“三層架構(gòu)”。

      開(kāi)發(fā)架構(gòu):開(kāi)發(fā)架構(gòu)則更關(guān)注程序包,不僅僅是我們自己寫(xiě)的程序,還包括應(yīng)用程序依賴的SDK、第三方類庫(kù)、中間價(jià)等。尤其是像目前主流的Java、.NET等依靠虛擬機(jī)的語(yǔ)言和平臺(tái),以及主流的基于數(shù)據(jù)庫(kù)的應(yīng)用,都會(huì)比較關(guān)注。和邏輯架構(gòu)有緊密的關(guān)聯(lián)。

      運(yùn)行架構(gòu):顧名思義,更關(guān)注的是應(yīng)用程序運(yùn)行中可能出現(xiàn)的一些問(wèn)題。例如并發(fā)帶來(lái)的問(wèn)題,比較常見(jiàn)的“線程同步”問(wèn)題、死鎖問(wèn)題、對(duì)象創(chuàng)建和銷毀(生命周期管理)問(wèn)題等等。開(kāi)發(fā)架構(gòu),更關(guān)注的是飛機(jī)起飛之前的一些準(zhǔn)備工作,在靜止?fàn)顟B(tài)下就能規(guī)劃好做好的,而運(yùn)行架構(gòu),更多考慮的是飛機(jī)起飛之后可能發(fā)生的一些問(wèn)題。

      物理架構(gòu):物理架構(gòu),更關(guān)注的系統(tǒng)、網(wǎng)絡(luò)、服務(wù)器等基礎(chǔ)設(shè)施。例如:如何通過(guò)服務(wù)器部署和配置網(wǎng)絡(luò)環(huán)境,來(lái)實(shí)現(xiàn)應(yīng)用程序的“可伸縮性、高可用性”。或者舉一個(gè)實(shí)際的例子,如何通過(guò)設(shè)計(jì)基礎(chǔ)設(shè)施的架構(gòu),來(lái)保障網(wǎng)站能支持同時(shí)10W人在線、7*24小時(shí)提供服務(wù),當(dāng)超過(guò)10W人或者低于10W人在線時(shí),可以很方便的調(diào)整部署架構(gòu)來(lái)支撐。

      數(shù)據(jù)架構(gòu):數(shù)據(jù)架構(gòu),更關(guān)注的是數(shù)據(jù)持久化和存儲(chǔ)層面的問(wèn)題,也可能會(huì)包括數(shù)據(jù)的分布、復(fù)制、同步等問(wèn)題。更貼切來(lái)講,如何選擇需要的關(guān)系型數(shù)據(jù)庫(kù)、流行的NOSQL,如何保障數(shù)據(jù)存儲(chǔ)層面的性能、高可用性、災(zāi)備等等。很多時(shí)候,和物理架構(gòu)是有緊密聯(lián)系的,但它更關(guān)注數(shù)據(jù)存儲(chǔ)層面的,物理架構(gòu)更關(guān)注整個(gè)基礎(chǔ)設(shè)施部署層面。

      上面講了那么多,相信國(guó)內(nèi)很少有公司是嚴(yán)格按照這五種視圖去分工和設(shè)計(jì)的。其實(shí)在筆者眼中,架構(gòu)大致分為兩種:軟件架構(gòu)、系統(tǒng)架構(gòu)。前三種視圖,可以歸納為軟件架構(gòu),而后兩種架構(gòu),則歸為系統(tǒng)架構(gòu)。這也比較符合國(guó)內(nèi)大部分中小型互聯(lián)網(wǎng)公司的現(xiàn)狀。

      根據(jù)應(yīng)用特性的不同,關(guān)注側(cè)重點(diǎn)可能不同。例如,某些門戶類的互聯(lián)網(wǎng)應(yīng)用,讀多寫(xiě)少而且業(yè)務(wù)相對(duì)比較簡(jiǎn)單,則更加關(guān)注“高性能、可伸縮性、可用性”等方面。對(duì)于更加復(fù)雜的應(yīng)用,例如電商類大規(guī)模交易型的應(yīng)用,對(duì)每個(gè)層面和每個(gè)環(huán)節(jié)都會(huì)比較關(guān)注。對(duì)于業(yè)務(wù)型的系統(tǒng),例如一些生產(chǎn)型企業(yè)使用的ERP,或者僅供企業(yè)內(nèi)部使用的一些MIS、OA應(yīng)用,通常更關(guān)注功能和復(fù)雜的業(yè)務(wù)和實(shí)現(xiàn)和擴(kuò)展,而對(duì)性能等方面又可能不要太高,這類應(yīng)用則更關(guān)注純軟件架構(gòu)層面。這里,不展開(kāi)做具體討論。所以很多時(shí)候,架構(gòu)師也需要是一個(gè)團(tuán)隊(duì),而不是一個(gè)人“全棧”。

       

       

      • 架構(gòu)設(shè)計(jì)到底是什么

       

      在長(zhǎng)期的技術(shù)招聘面試中,我發(fā)現(xiàn)在很多人眼中,架構(gòu)就是分層,架構(gòu)設(shè)計(jì)就是“三層架構(gòu)”(或者四層、五層...反正分層越多就說(shuō)明項(xiàng)目越復(fù)雜而且架構(gòu)就越牛),或許是受到諸如PetShop之類的示例項(xiàng)目的影響,這里暫時(shí)不去追究原因了。

      之前已經(jīng)糾正過(guò)很多人的誤解-架構(gòu)不只是軟件架構(gòu)。說(shuō)一下通俗點(diǎn)的理解:

      軟件架構(gòu)就是實(shí)用而且優(yōu)雅的設(shè)計(jì),它不在于分多少層,或者應(yīng)用了多少種設(shè)計(jì)模式/架構(gòu)模式等。它應(yīng)該是以滿足實(shí)現(xiàn)用戶需求為前提,以開(kāi)發(fā)人員普遍可接受為根本的,而且要符合系統(tǒng)特性和業(yè)務(wù)發(fā)展需要的,從軟件設(shè)計(jì)的角度,能夠達(dá)到層次清晰、可維護(hù)、可重用、可擴(kuò)展...就非常優(yōu)秀了,無(wú)需刻意去糾結(jié)分了多少層,是否使用了什么模式,有多么抽象等。以面向?qū)ο笤O(shè)計(jì)為例,基本目標(biāo)是“高內(nèi)聚、低耦合”,為此我們可能會(huì)遵循一些常見(jiàn)的設(shè)計(jì)原則(例如經(jīng)典的SOLID設(shè)計(jì)原則)。最后糾正一點(diǎn),通常我們所說(shuō)的模式,其實(shí)又分為很多種,并不是僅僅指的是“設(shè)計(jì)模式”(設(shè)計(jì)模式也有千千萬(wàn),并不是只有常見(jiàn)的GOF 23種設(shè)計(jì)模式)。通常包括:企業(yè)架構(gòu)模式、設(shè)計(jì)模式、SOA模式、企業(yè)集成模式等等。

      強(qiáng)調(diào)一下,架構(gòu)要講求“實(shí)用”,而且開(kāi)發(fā)人員普遍可接受,要符合現(xiàn)狀的。否則,再“優(yōu)雅”的設(shè)計(jì),都會(huì)淪為高成本的“花架子”,生搬硬套和過(guò)度設(shè)計(jì)只會(huì)讓項(xiàng)目“流產(chǎn)”。

       

       

      • 關(guān)于Tier和Layer

       

      筆者曾多次在一些技術(shù)社區(qū)和論壇看到一些關(guān)于TierLayer的爭(zhēng)論,眾說(shuō)紛紜。其實(shí)最容易被廣泛認(rèn)可和接受的理解就是:Tier通常指的是物理上的分層,由執(zhí)行同樣功能的一臺(tái)(或者一組)服務(wù)器定義。而Layer通常指的是邏輯上的分層,對(duì)于代碼的組織,例如:我們通常提到的“業(yè)務(wù)邏輯層,表現(xiàn)層,數(shù)據(jù)訪問(wèn)層”等等。

      Tier指代碼運(yùn)行的位置,多個(gè)Layer可以運(yùn)行在同一個(gè)Tier上的,不同的Layer也可以運(yùn)行在不同的Tier上,當(dāng)然,前提是應(yīng)用程序本身支持這種架構(gòu)。以J2EE和.NET平臺(tái)為例,大多數(shù)時(shí)候,不同的Layer之間都是直接通過(guò)DLL或者JAR包引用來(lái)完成調(diào)用的(例如:業(yè)務(wù)邏輯層需要引用數(shù)據(jù)訪問(wèn)層),這樣部署的時(shí)候,也只能將多個(gè)Layer同時(shí)部署在一臺(tái)服務(wù)器上。相反,不同的Layer之間如果是通過(guò)RPC的方式來(lái)實(shí)現(xiàn)通信調(diào)用的,部署的時(shí)候,便可以將不同的Layer部署在不同的服務(wù)器上面,這也是很常見(jiàn)的解耦設(shè)計(jì)。

      如下圖所示:

       

      順便再糾正一點(diǎn),很多人問(wèn)“到底什么是web服務(wù)器,什么是應(yīng)用服務(wù)器”。這個(gè)恐怕沒(méi)有標(biāo)準(zhǔn)答案的。有些人可能覺(jué)得,處理靜態(tài)資源的就是web服務(wù)器,處理動(dòng)態(tài)請(qǐng)求的就是應(yīng)用服務(wù)器,這其實(shí)是不準(zhǔn)確的。以互聯(lián)網(wǎng)領(lǐng)域典型的SOA架構(gòu)為例,上層Web應(yīng)用所在的服務(wù)器,可以叫web服務(wù)器,web應(yīng)用僅僅負(fù)責(zé)處理輸入/輸出,而提供服務(wù)宿主的服務(wù)器可以稱為應(yīng)用服務(wù)器(也包含對(duì)業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)的處理)。當(dāng)然,服務(wù)的宿主方式可以有很多中,可以是系統(tǒng)服務(wù),是可執(zhí)行程序,是web應(yīng)用,是Socket網(wǎng)絡(luò)服務(wù)...

       

       

      • 邏輯分層和物理分層的好處

       

      邏輯分層的好處:

       

      1. 代碼組織更清晰
      2. 更易于維護(hù)
      3. 更好的代碼重用性
      4. 更好的團(tuán)隊(duì)開(kāi)發(fā)體驗(yàn)性
      5. 更高的代碼清晰度
      物理分層的好處:
       
      1. 性能
      2. 可伸縮性
      3. 容錯(cuò)性
      4. 安全性
      • 架構(gòu)師的分類

       

      架構(gòu)師往往是很多開(kāi)發(fā)人員向往的職業(yè),也不是像很多人想象中的那樣(畫(huà)一下PPT或者UML草圖,然后交給程序員們?nèi)?shí)現(xiàn),然后自己就自由玩耍了)。國(guó)內(nèi)很多公司,是沒(méi)有架構(gòu)師這種崗位定義的,通常是由技術(shù)優(yōu)秀和經(jīng)驗(yàn)比較豐富的開(kāi)發(fā)人員擔(dān)任,身兼多職的情況也并不少見(jiàn)(我見(jiàn)過(guò)很多小公司的骨干人員是身兼技術(shù)主管、系統(tǒng)分析師、項(xiàng)目經(jīng)理、架構(gòu)師、核心開(kāi)發(fā)人員...)。值得糾正的就是,架構(gòu)師和系統(tǒng)分析師不同,系統(tǒng)分析師更側(cè)重在項(xiàng)目早期的需求分析。而架構(gòu)師,一般貫穿整個(gè)軟件開(kāi)發(fā)周期,與項(xiàng)目經(jīng)理也是相輔相成的。微軟對(duì)于架構(gòu)師,又分為:軟件架構(gòu)師、系統(tǒng)架構(gòu)師、解決方案架構(gòu)師、企業(yè)架構(gòu)師等。而其它一些廠商,可能又會(huì)劃分:技術(shù)架構(gòu)師、業(yè)務(wù)架構(gòu)師、網(wǎng)絡(luò)架構(gòu)師、安全架構(gòu)師、SOA架構(gòu)師......

      大家不必對(duì)這些概念太糾結(jié)。按照筆者的理解,國(guó)內(nèi)大互聯(lián)網(wǎng)公司里,架構(gòu)師一般只會(huì)分2-3個(gè)方向:軟件架構(gòu)師和系統(tǒng)架構(gòu)師(有些企業(yè)叫運(yùn)維架構(gòu)師),有些企業(yè)對(duì)于比較資深DBA而且懂整個(gè)系統(tǒng)架構(gòu)的,還會(huì)分出所謂的“數(shù)據(jù)架構(gòu)師”。至于具體Title,大可不必糾結(jié),只需了解自己的興趣,知曉了大致發(fā)展和定位,然后朝該方向努力即可。對(duì)于程序員而言,最基本的還是先寫(xiě)出高質(zhì)量的代碼,在實(shí)戰(zhàn)中逐步提升自己設(shè)計(jì)思維。

       

      限于筆者水平和理解有限,文中全部文字和描述等全憑筆者記憶和理解寫(xiě)出,難免出現(xiàn)錯(cuò)誤,請(qǐng)熱心的讀者及時(shí)批評(píng)和指正。

      由于時(shí)間有限,部分圖片筆者畫(huà)的比較粗糙,也請(qǐng)讀者諒解。

       

      本文出自http://www.rzrgm.cn/dinglang,轉(zhuǎn)載請(qǐng)注明出處。

      posted @ 2015-06-10 10:41  丁碼農(nóng)  閱讀(45730)  評(píng)論(5)    收藏  舉報(bào)
      主站蜘蛛池模板: 性xxxxxx中国寡妇mm| 粉嫩一区二区三区国产精品| 国产毛片子一区二区三区| 天天综合色一区二区三区| 香港日本三级亚洲三级| 亚洲国产在一区二区三区| 国产精品中文字幕综合| 免费人妻无码不卡中文字幕18禁| 国产精品白浆无码流出| 激情综合网一区二区三区| 亚洲高清乱码午夜电影网 | 亚洲男人av香蕉爽爽爽爽| 久久天天躁狠狠躁夜夜躁2o2o| 浴室人妻的情欲hd三级国产| 国产69精品久久久久99尤物| 国99久9在线 | 免费| 少妇宾馆粉嫩10p| 国产a级三级三级三级| 久久精品国产中文字幕| 极品尤物被啪到呻吟喷水| 日本久久99成人网站| 亚洲色欲色欲大片www无码| 人妻影音先锋啪啪av资源 | 乱码中文字幕| 亚洲成a人片在线观看中| 亚洲高清 一区二区三区| 亚洲av综合av一区| 色偷偷女人的天堂亚洲网| 亚洲老熟女一区二区三区| 国产一区二区三区免费观看| 成年无码av片在线蜜芽| 亚洲老熟女乱女一区二区| 啊┅┅快┅┅用力啊岳网站| 午夜免费福利小电影| 国产精品成人av电影不卡| 又爽又黄又无遮掩的免费视频 | 91精品久久久久久无码人妻| 亚洲精品综合网二三区| 国产精品一区二区日韩精品| 亚洲国产欧美在线人成大黄瓜| 人妻在线无码一区二区三区|