任何軟件開發項目都將經歷需求獲取,系統分析,系統設計,編碼研究與開發,系統運行與維護的常規階段,并且軟件系統架構設計介于系統分析與系統設計之間。技術選擇是在兩個或多個技術解決方案中選擇一種適合當前項目情況的技術。技術選擇不僅是技術選擇,而且是與項目情況密切相關的項目決策。那么到底技術架構是什么?有哪些戰略層設計原則?
技術架構是什么?
技術架構,是將產品需求轉變為技術實現的過程。技術架構解決的問題包括了如何進行純技術層面的分層、開發框架選擇、語言選擇、涉及到各自非功能性需求的技術點。技術架構是確定組成應用系統實際運行的技術組件、技術組件之間的關系,以及部署到硬件的策略。
技術架構面臨最大的挑戰是“不確定性”。在技術架構上,很多時候就會面臨這種選擇。是要選擇業界最新的技術?還是選擇團隊最熟悉的技術?如果選擇最新的技術,遇到新技術出了問題怎么解決?如果選擇目前熟悉的技術,后續技術演進怎么辦?這些都是架構師在做技術架構過程中需要考慮的。
業務在千變萬化、技術在層出不窮,沒有一套通用的技術架構模式來適用所有的系統。那么,我們如何保證在做技術架構時,能夠實現一個穩定、出色的系統。面對這些“不確定性”時的架構設計問題,這里從戰略和戰術兩個層面來提供一些設計原則。戰略層提供的是技術架構的方法和思路,屬于頂層設計;戰術層提供的是技術架構的技術實踐方式,更偏向詳細設計。
技術架構有哪些戰略層設計原則?
一、戰略層的設計原則就是:合適原則、簡單原則、演化原則。
1.合適原則
技術人員有一種很強的技術情懷,就是在做設計的過程中,很希望挑戰新的技術、在項目中采用最新的框架、或者自己重造一個比業界的還要牛的輪子。這樣才能夠顯示出自己的優秀,以至于不讓自己顯的那么平庸。
2.簡單原則
我們總是希望能將我們的軟件設計的精美、宏大,這樣才能彰顯我們系統的復雜度和難度。我們是不是會遇到這樣的場景,在做設計方案的時候,如果一個解決方案很簡單,而且能很快的滿足需求。在評審方案時,就會有人覺得這個方案是不是太簡單了,沒有什么技術含量,是不是需要再設計的復雜一點。
3.演化原則
軟件架構和建筑架構很多相同的地方,架構這個詞也是從建筑領域借鑒過來的。比如,軟件架構描述的是系統的結構、以及各模塊之間的關系。而建筑結構描述的是一幢建筑的結構,以及建筑內部各部件如何有機的組成。
但是,軟件架構和建筑架構有一個本質上的差異:那就是建筑一旦完成就不會再變,而軟件卻需要根據業務的發展不斷的變化。對于建筑來說,永恒是主題;而對于軟件來說,變化才是主題。
二、戰術層設計原則
戰術層的設計原則分為 3 部分:高并發原則、高可用原則、業務設計原則。這些原則是對技術架構設計過程中提供詳細的指導思路,幫助你做技術選型、技術拆分。
1.高并發原則
設計高并發的系統,需要考慮以下幾個方面的設計:無狀態、拆分、服務化、消息隊列、數據異構、緩存。
2.高可用原則
三、技術架構圖
技術架構圖是將系統的技術方案、技術選型通過視圖的方式進行展現。技術架構圖分為兩類:一類,功能需求技術架構圖,是描繪如何通過技術組件來實現系統產品功能的圖。另一來,非功能需求技術架構圖,是描繪如何通過物理部署的來實現系統運行的圖。
以上就是關于技術架構是什么,以及技術架構有哪些戰略層設計原則的全部內容,想了解更多關于技術架構的信息,請繼續關注中培偉業。