一.什麼是架構
多個產品抽象出來的共性部分,進行有機的聯絡,成為架構。
目前我們抽象的主要是技術方面的共性部分,名為sea。
sea架構描述的是一個軟體中包含的要素以及要素之間的關係,形成一個骨架,可以在此基礎上搭建多個產品。
架構是一個靜態成果,可以體現在文檔上,也可以體現在支援庫及開發工具中。
二.為什麼要提出架構
我們準備圍繞若干業務領域開發多個產品,再從這些基準版本客戶化,形成客戶化版本,
這樣,我們將會有一個龐大的產品樹,根據以往的經驗,非常容易出現產品混亂的情況,以及重複開發的情況,
我們想通過架構及其之上的開發、管理工具來進行保障,避免出現上述情況。
三.架構能起到什麼作用
目前我們在sea架構進行多個產品的開發,可以發揮如下作用:
1.軟體通用和專有部分的分離
sea架構是一個開放的體系,在後續的開發過程中,將會繼續吸收一些通用的部分。
2.技術上難易的分離
大部分技術問題已經被sea屏蔽,應用產品開發人員主要精力集中在業務上。
3.網路版和單機版的開發一致性
sea架構屏蔽了網路層,對於應用開發人員來說,按照單機程式進行編碼、調試、單元測試,
發布時可以通過工具產生網路版。
四.架構的不同視圖
對於一個架構,可以從多個對比的角度來分析:
1.開發/運行
軟體以兩種形態存在:開發版;運行版;
開發版視圖涉及到如何組織、操作開發版本。
運行版視圖涉及到執行檔案的組織及軟體如何運行。
2.邏輯/物理
物理指的是針對某個具體的技術平台。
邏輯指的是技術平台無關。
3.靜態/動態
原始碼的組織、執行檔案的組織,這些都屬於靜態範疇。
開發版如何轉換為運行版,軟體如何運行則屬於動態範疇。
4.技術/業務
軟體是技術和業務的綜合體,技術和業務是構成軟體的兩個維度。
目前sea屬於技術架構,業務是否能提煉出架構,有待研究,可以參考領域。
各個角度可以綜合,進行精確描述。
例:物理開發靜態視圖描述的是某個技術平台上開發版的原始碼組織。
物理開發動態視圖描述的是某個技術平台上開發版的設計成果和原始碼如何轉換為運行版。
五.架構需要考慮的因素
目前考慮到的:
1.複用體系
2.運行安全
3.著作權安全
4.錯誤處理體系
5.調試體系
6.日誌體系
7.介面架構
8.OR map
9.工作流程
六.我們希望架構能夠達到的高度
1.業務架構
2.架構能夠支援外部協作