有關(guān)架構(gòu)設(shè)計的概念和本質(zhì)學(xué)習(xí)-創(chuàng)新互聯(lián)

有關(guān)架構(gòu)設(shè)計的概念和本質(zhì),不知道大家了解多少?其實在IT行業(yè),大家對于架構(gòu)肯定不陌生了。然而關(guān)于架構(gòu)設(shè)計的概念和本質(zhì),還是有許多人沒有真正的理解。本文就來帶大家詳解架構(gòu)設(shè)計的概念和本質(zhì),內(nèi)容包括認(rèn)識架構(gòu)、理解架構(gòu)師崗位、架構(gòu)的分類、架構(gòu)的級別、應(yīng)用架構(gòu)的發(fā)展以及架構(gòu)設(shè)計的注意事項。感興趣的朋友可以一起來看看!

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的麻陽網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

有關(guān)架構(gòu)設(shè)計的概念和本質(zhì)學(xué)習(xí)

1、認(rèn)識架構(gòu)

架構(gòu)的本質(zhì)是經(jīng)過系統(tǒng)性地思考,權(quán)衡利弊之后,在現(xiàn)有資源約束下的最合理決策,最終明確的系統(tǒng)骨架:,包括子系統(tǒng), 模塊, 組件。以及他們之間協(xié)作關(guān)系,約束規(guī)范,,指導(dǎo)原則。并由它來指導(dǎo)團隊中的每個人思想層面上的一致。要全面理解架構(gòu)設(shè)計的概念,還需要掌握以下一些知識點的理解。

(1)系統(tǒng)與子系統(tǒng)

系統(tǒng):泛指由一群有關(guān)聯(lián)的個體組成,根據(jù)某種規(guī)則運作,能完成個別元件不能獨立完成的工作能力的群體。子系統(tǒng):也是由一群關(guān)聯(lián)的個體組成的系統(tǒng),多半是在更大的系統(tǒng)中的一部分。

(2)模塊與組件

都是系統(tǒng)的組成部分,從不同角度拆分系統(tǒng)而已。模塊是邏輯單元,組件是物理單元。模塊就是從邏輯上將系統(tǒng)分解, 即分而治之, 將復(fù)雜問題簡單化。模塊的粒度可大可小, 可以是系統(tǒng),幾個子系統(tǒng)、某個服務(wù),函數(shù), 類,方法、 功能塊等等。組件可以包括應(yīng)用服務(wù)、數(shù)據(jù)庫、網(wǎng)絡(luò)、物理機、還可以包括MQ、容器、Nginx等技術(shù)組件。

(3)框架與架構(gòu)

框架是組件實現(xiàn)的規(guī)范,例如:MVC、MVP、MVVM等,是提供基礎(chǔ)功能的產(chǎn)品,例如開源框架:Ruby on Rails、Spring、Laravel、Django等,這是可以拿來直接使用或者在此基礎(chǔ)上二次開發(fā)??蚣苁且?guī)范,架構(gòu)是結(jié)構(gòu)。軟件架構(gòu)指軟件系統(tǒng)的頂層結(jié)構(gòu)。

2、理解架構(gòu)師崗位

系統(tǒng)架構(gòu)師是一個最終確認(rèn)和評估系統(tǒng)需求,給出開發(fā)規(guī)范,搭建系統(tǒng)實現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點的技術(shù)人員。因此,作為主導(dǎo)系統(tǒng)全局分析設(shè)計和實施、負(fù)責(zé)軟件架構(gòu)和關(guān)鍵技術(shù)的決策者,架構(gòu)師人才需求缺口大,薪資待遇高。一般來講,架構(gòu)師的主要工作內(nèi)容是領(lǐng)導(dǎo)與協(xié)調(diào)整個項目中的技術(shù)活動,然后推動主要的技術(shù)決策,并最終表達(dá)為軟件構(gòu)架,接著確定和文檔化系統(tǒng)的相對構(gòu)架而言意義重大的方面,包括系統(tǒng)的需求、設(shè)計、實施和部署等“視圖”。同時還需要理解、評價并接收系統(tǒng)需求??偟膩碇v,一個合格的架構(gòu)師需要做到理解業(yè)務(wù),全局把控,選擇合適的技術(shù),解決關(guān)鍵問題、指導(dǎo)研發(fā)落地實施。

3、架構(gòu)的分類

(1)業(yè)務(wù)架構(gòu)

包括業(yè)務(wù)規(guī)劃,業(yè)務(wù)模塊、業(yè)務(wù)流程,對整個系統(tǒng)的業(yè)務(wù)進(jìn)行拆分,對領(lǐng)域模型進(jìn)行設(shè)計,把現(xiàn)實的業(yè)務(wù)轉(zhuǎn)化成抽象對象。沒有最優(yōu)的架構(gòu),只有最合適的架構(gòu),一切系統(tǒng)設(shè)計原則都要以解決業(yè)務(wù)問題為最終目標(biāo),脫離實際業(yè)務(wù)的技術(shù)情懷架構(gòu)往往會給系統(tǒng)帶入大坑,任何不基于業(yè)務(wù)做異想天開的架構(gòu)都是耍流氓。所有問題的前提要搞清楚我們今天面臨的業(yè)務(wù)量有多大,增長走勢是什么樣,而且解決高并發(fā)的過程,一定是一個循序漸進(jìn)逐步的過程。合理的架構(gòu)能夠提前預(yù)見業(yè)務(wù)發(fā)展1~2年為宜。這樣可以付出較為合理的代價換來真正達(dá)到技術(shù)引領(lǐng)業(yè)務(wù)成長的效果。

(2)應(yīng)用架構(gòu)

硬件到應(yīng)用的抽象,包括抽象層和編程接口。應(yīng)用架構(gòu)和業(yè)務(wù)架構(gòu)是相輔相成的關(guān)系。業(yè)務(wù)架構(gòu)的每一部分都有應(yīng)用架構(gòu)。應(yīng)用作為獨立可部署的單元,為系統(tǒng)劃分了明確的邊界,深刻影響系統(tǒng)功能組織、代碼開發(fā)、部署和運維等各方面. 應(yīng)用架構(gòu)定義系統(tǒng)有哪些應(yīng)用、以及應(yīng)用之間如何分工和合作。這里所謂應(yīng)用就是各個邏輯模塊或者子系統(tǒng)。

(3)數(shù)據(jù)架構(gòu)

數(shù)據(jù)架構(gòu)指導(dǎo)數(shù)據(jù)庫的設(shè)計. 不僅僅要考慮開發(fā)中涉及到的數(shù)據(jù)庫,實體模型,也要考慮物理架構(gòu)中數(shù)據(jù)存儲的設(shè)計。

(4)代碼架構(gòu)

子系統(tǒng)代碼架構(gòu)主要為開發(fā)人員提供切實可行的指導(dǎo),如果代碼架構(gòu)設(shè)計不足,就會造成影響全局的架構(gòu)設(shè)計。比如公司內(nèi)不同的開發(fā)團隊使用不同的技術(shù)棧或者組件,結(jié)果公司整體架構(gòu)設(shè)計就會失控。

(5)技術(shù)架構(gòu)

確定組成應(yīng)用系統(tǒng)的實際運行組件,這些運行組件之間的關(guān)系,以及部署到硬件的策略。技術(shù)架構(gòu)主要考慮系統(tǒng)的非功能性特征,對系統(tǒng)的高可用、高性能、擴展、安全、伸縮性、簡潔等做系統(tǒng)級的把握。系統(tǒng)架構(gòu)的設(shè)計要求架構(gòu)師具備軟件和硬件的功能和性能的過硬知識,這也是架構(gòu)設(shè)計工作中最為困難的工作。

(6)總結(jié)

架構(gòu)分類可細(xì)分為業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu), 代碼架構(gòu), 部署架構(gòu)。業(yè)務(wù)架構(gòu)是戰(zhàn)略,應(yīng)用架構(gòu)是戰(zhàn)術(shù),技術(shù)架構(gòu)是裝備。其中應(yīng)用架構(gòu)承上啟下,一方面承接業(yè)務(wù)架構(gòu)的落地,另一方面影響技術(shù)選型。熟悉業(yè)務(wù),形成業(yè)務(wù)架構(gòu),根據(jù)業(yè)務(wù)架構(gòu),做出相應(yīng)的應(yīng)用架構(gòu),最后技術(shù)架構(gòu)落地實施。如何針對當(dāng)前需求,選擇合適的應(yīng)用架構(gòu),如何面向未來,保證架構(gòu)平滑過渡,這個是軟件開發(fā)者,特別是架構(gòu)師,都需要深入思考的問題。

4、架構(gòu)的級別

架構(gòu)的級別分別是系統(tǒng)級、應(yīng)用級、模塊級和代碼級。系統(tǒng)級即整個系統(tǒng)內(nèi)各部分的關(guān)系以及如何治理分層;應(yīng)用級即單個應(yīng)用的整體架構(gòu),及其與系統(tǒng)內(nèi)單個應(yīng)用的關(guān)系等;模塊級即應(yīng)用內(nèi)部的模塊架構(gòu),如代碼的模塊化、數(shù)據(jù)和狀態(tài)的管理等;代碼級即從代碼級別保障架構(gòu)實施。

有關(guān)架構(gòu)設(shè)計的概念和本質(zhì)學(xué)習(xí)

5、應(yīng)用架構(gòu)的發(fā)展

從本質(zhì)上來看,業(yè)務(wù)架構(gòu)是生產(chǎn)力,應(yīng)用架構(gòu)是生產(chǎn)關(guān)系,技術(shù)架構(gòu)是生產(chǎn)工具。業(yè)務(wù)架構(gòu)決定應(yīng)用架構(gòu),應(yīng)用架構(gòu)需要適配業(yè)務(wù)架構(gòu),并隨著業(yè)務(wù)架構(gòu)不斷進(jìn)化,同時應(yīng)用架構(gòu)依托技術(shù)架構(gòu)最終落地。架構(gòu)發(fā)展路程,即從單體應(yīng)用到分布式應(yīng)用服務(wù)化,最后到微服務(wù)。

6、架構(gòu)設(shè)計的注意事項

(1)業(yè)務(wù)開發(fā)人員也需要關(guān)注架構(gòu)設(shè)計。

架構(gòu)的再好,最終還是需要代碼來落地,并且組織越大這個落地的難度越大。不單單是系統(tǒng)架構(gòu),每個解決方案每個項目也由自己的架構(gòu),如分層、設(shè)計模式等。如果每一塊磚瓦不夠堅固,那么整個系統(tǒng)還是會由崩塌的風(fēng)險。

(2)架構(gòu)設(shè)計并不是一開始就很完美。

世上沒有最好架構(gòu),只有最合適的架構(gòu),不要企圖一步到位。我們需要的不是一下子造出一輛汽車,而是從單輪車→自行車→摩托車,最后再到汽車。想象一下2年后才能造出的產(chǎn)品,當(dāng)初市場還存在嗎?

(3)不要為虛無的未來而過度設(shè)計。

在創(chuàng)業(yè)公司初期,業(yè)務(wù)場景和需求邊界很難把握,產(chǎn)品需要快速迭代和變現(xiàn),需求頻繁更新,這個時候需要的是快速實現(xiàn)。不要過多考慮未來的擴展,說不定功能做完,效果不好就無用了。如果業(yè)務(wù)模式和應(yīng)用場景邊界都已經(jīng)比較清晰,是應(yīng)該適當(dāng)?shù)目紤]未來的擴展性設(shè)計。

(4)架構(gòu)技術(shù)是為業(yè)務(wù)而存在的。

不要為了技術(shù)而技術(shù),在技術(shù)選型和架構(gòu)設(shè)計中,脫離網(wǎng)站業(yè)務(wù)發(fā)展的實際,一味追求時髦的新技術(shù),可能會將技術(shù)發(fā)展引入崎嶇小道,架構(gòu)之路越走越難??紤]實現(xiàn)成本、時間、人員等各方面都要綜合考慮,理想與現(xiàn)實需要折中。

以上就是有關(guān)架構(gòu)設(shè)計的概念和本質(zhì)學(xué)習(xí)的全部內(nèi)容了,不知道大家都看懂了沒有。其實對于許多技術(shù)從業(yè)者來講,架構(gòu)師不失為一個很好的發(fā)展方向。如果大家對于架構(gòu)設(shè)計有更深入的學(xué)習(xí)興趣,不妨上創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊了解更多關(guān)于架構(gòu)設(shè)計的知識吧。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:有關(guān)架構(gòu)設(shè)計的概念和本質(zhì)學(xué)習(xí)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article6/csjjig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化品牌網(wǎng)站制作、定制網(wǎng)站網(wǎng)站內(nèi)鏈、Google、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)