架構(gòu)設(shè)計是軟件設(shè)計過程的早期階段,它把需求分析和設(shè)計流程連接在一起。架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫,而是從事更高層次的開發(fā)構(gòu)架工作。他架構(gòu)設(shè)計不一定要有架構(gòu)師的頭銜。擁有架構(gòu)師頭銜的人不一定了解架構(gòu)設(shè)計,也不一定有機會真正參與架構(gòu)設(shè)計。對于程序員來說,即使沒有架構(gòu)師的頭銜,我們也可以很好地練習(xí)架構(gòu)設(shè)計技巧。下面就由
創(chuàng)新互聯(lián)建站小編和大家講一講什么是架構(gòu)設(shè)計,怎樣可以做好構(gòu)架設(shè)計。
一、好的架構(gòu)設(shè)計師有什么特點
1、技術(shù)不錯。至少代碼易于閱讀,易于擴展,并且具有良好的重用性,這不僅需要學(xué)習(xí)面向?qū)ο蠛驮O(shè)計模式,還需要大量的編碼實踐,而不僅僅是紙上談兵
2、了解業(yè)務(wù)。如果不了解業(yè)務(wù),就無法做好適合業(yè)務(wù)的架構(gòu)設(shè)計,行業(yè)的相關(guān)知識也無法在短時間內(nèi)積累。
3、良好的溝通能力。架構(gòu)師需要溝通和確認需求,團隊需要理解架構(gòu)設(shè)計。
4、有結(jié)構(gòu)性思維。知道如何使用抽象、分而治之、重用、迭代等思想來降低軟件復(fù)雜性
二、什么是架構(gòu)設(shè)計思維
降低軟件復(fù)雜性有幾種有效的方法:抽象、分治、重用和迭代。架構(gòu)設(shè)計思維就是這些的集合
1、構(gòu)架設(shè)計抽象思維
體系結(jié)構(gòu)的存在是為了滿足業(yè)務(wù)需求。它通常需要一些文字描述、原型和UI設(shè)計圖,這些最終將成為機器執(zhí)行的代碼。我們必須首先把需求抽象成計算機可以識別的模型。例如,抽象用戶、訂單、內(nèi)容等模型,明確每個角色的職責和對象交互方式,隱藏很多不重要的細節(jié)。
2、構(gòu)架設(shè)計分而治之思維
復(fù)雜系統(tǒng)分為小部分和簡單部分。例如,對于高并發(fā)場景,可以通過設(shè)計將流量劃分為不同的服務(wù)器,以避免單個服務(wù)器過載。另一個例子是將一個1000行函數(shù)封裝成n個不超過50行的獨立函數(shù)調(diào)用
3、構(gòu)架設(shè)計重用思維
重用是提高開發(fā)效率最簡單有效的方法。通過抽象相同的內(nèi)容,它可以在不同的場景中重用。很多新手程序喜歡復(fù)制粘貼代碼,如果需求發(fā)生變化,需要修改所有粘貼的地方,開發(fā)效率低,維護困難,同時也浪費了大量的測試精力。
4、構(gòu)架設(shè)計迭代思維
良好的體系結(jié)構(gòu)是不斷發(fā)展的。一步到位的架構(gòu)設(shè)計很少。我們需要確保業(yè)務(wù)的正常進展不受影響,然后逐步迭代到最終合理的架構(gòu)設(shè)計
三、什么是架構(gòu)設(shè)計
架構(gòu)設(shè)計就是用最小的人力成本來滿足開發(fā)和需求變化的需要,用最小的運行成本來保證軟件的運行。常用方法如下:
1、采用微服務(wù)體系架構(gòu)設(shè)計,將復(fù)雜的系統(tǒng)劃分為一系列的小服務(wù),再劃分為功能模塊,使人員能夠更好地工作
2、前端和后端分離,使程序員能夠?qū)W⒂谀骋恢R領(lǐng)域,降低開發(fā)難度
3、分層設(shè)計,隔離業(yè)務(wù)邏輯,減少需求變化的影響
四、架構(gòu)設(shè)計為什么存在
1、需求使技術(shù)復(fù)雜化。例如一個博客和一個谷歌,技術(shù)上的復(fù)雜性是不一樣的
2、人們使技術(shù)復(fù)雜化。軟件開發(fā)是一個團隊,成員的水平不一樣,擅長的技術(shù)方向也不一樣,如何有效的合作是一個很大的考驗。
一元廣告投放3、技術(shù)本身是復(fù)雜的。軟件項目中使用的編程語言、框架、組件、數(shù)據(jù)庫、人工智能、大數(shù)據(jù)等技術(shù)都有學(xué)習(xí)成本
4、軟件的穩(wěn)定運行也很復(fù)雜。軟件開發(fā)完成上線后,充滿了各種不確定性,比如云服務(wù)提供商可能宕機、明星微博導(dǎo)致系統(tǒng)癱瘓、數(shù)據(jù)庫刪除等
基于以上原因,我們需要架構(gòu)設(shè)計來降低復(fù)雜性
1、降低開發(fā)成本。將復(fù)雜的系統(tǒng)劃分為幾個相對簡單的服務(wù),可以由普通程序員來完成,降低了人工成本。
2、幫助組織高效地工作。通過抽象和拆分,開發(fā)人員可以獨立完成功能模塊。
3、組織各種技術(shù)。選擇合適的編程語言、協(xié)議、框架、組件等來達到高效的要求
4、保證服務(wù)的穩(wěn)定運行。使用成熟的架構(gòu)設(shè)計解決方案,如負載平衡、限流、降級、融合等,確保服務(wù)的高可用性。
五、怎樣做好架構(gòu)設(shè)計
架構(gòu)設(shè)計需要很多經(jīng)驗,但我們可以站在巨人的肩膀上,在成熟架構(gòu)設(shè)計的基礎(chǔ)上,把它改造成適合自己業(yè)務(wù)需求的架構(gòu)設(shè)計
1、分析需求。抽象產(chǎn)品需求,分析用例,了解各種用戶角色及其使用場景
2、選擇類似成熟的架構(gòu)設(shè)計。例如,微服務(wù)架構(gòu)設(shè)計,前端和后端分離,以及合適的開發(fā)語言和框架應(yīng)該根據(jù)團隊來選擇。
3、從上到下。好的做法是自上而下,不要過早進入技術(shù)細節(jié),從整體到局部規(guī)劃,設(shè)計部署架構(gòu),分層和分模塊,API設(shè)計,數(shù)據(jù)庫設(shè)計等。
4、驗證和優(yōu)化架構(gòu)設(shè)計。一個完整的體系結(jié)構(gòu)設(shè)計方案需要多次評審,充分收集各方面的反饋,反復(fù)修改后才能確定。此外,它還需要考慮架構(gòu)預(yù)計能滿足業(yè)務(wù)增長的時間,如半年或一年或三年。
5、架構(gòu)設(shè)計需要有戰(zhàn)略眼光,不僅要有架構(gòu)理念,還要有不同場景的架構(gòu)實踐,還要吸取以往的實踐經(jīng)驗。架構(gòu)設(shè)計更像是一門內(nèi)功,需要不斷修煉,才能應(yīng)對各種場景的挑戰(zhàn)。
與建筑學(xué)類似,如果軟件系統(tǒng)沒有一個好的架構(gòu)是不可能成為成功的軟件系統(tǒng)的。沒有圖紙的建筑地、沒有設(shè)計的造橋工程都是不可以想象的混亂世界。建筑工程如是,軟件工程中亦然!小伙伴們要想獲得更多架構(gòu)設(shè)計的內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)!
當前題目:什么是架構(gòu)設(shè)計,怎樣可以做好構(gòu)架設(shè)計?
當前網(wǎng)址:http://m.newbst.com/article12/sdsodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、標簽優(yōu)化、面包屑導(dǎo)航、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計公司、網(wǎng)站策劃
廣告
聲明:本網(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)