1. 程式人生 > >架構的度量---簡單夠用就好 【草稿】

架構的度量---簡單夠用就好 【草稿】

架構的度量---簡單夠用就好

架構設計除滿足系統功能性需求外,主要滿足系統的非功能需求,如可擴充套件性、穩定性、可維護性等;架構設計部分一般包括:軟體體系結構、資料模型及資料流程、執行體系結構、系統物理結構、業務流程等【4+1檢視】。通過以上方面描述系統的全域性結構及實現方式,滿足使用者的核心業務要求。其實架構設計不要搞的太複雜,簡單夠用就好。架構越簡單,越利於開發人員、測試人員及後續維護人員的理解與實現;架構越簡單,穩定性越好;簡單的架構並不意味著架構設計過程就簡單;簡單的架構可能是從複雜架構抽象提煉重構而來。複雜的架構可能帶來如下問題:
1.
相關人員理解不完全、不一致,存在偏差;
2.

溝通成本、開發成本、測試成本、維護成本明顯增加;
3.
複雜的架構不易於改進,重構成本高;
4.
架構越複雜,系統越不穩定;架構度量一定要從使用者角度、業務需求角度、內部規劃角度、市場及競爭對手產品角度進行綜合考慮,不要過度設計,不要為了架構而架構。究竟怎樣進行架構的度量,好像沒有相關標準;個人感覺,只能靠經驗、案例、demo、迭代等進行驗證,保證架構設計簡單高效。架構度量之後,就需要考慮架構的重構。架構重構的必要性、時機、驗證方法等有待進一步學習。

相關推薦

架構度量---簡單夠用 草稿

架構的度量---簡單夠用就好 架構設計除滿足系統功能性需求外,主要滿足系統的非功能需求,如可擴充套件性、穩定性、可維護性等;架構設計部分一般包括:軟體體系結構、資料模型及資料流程、執行體系結構、系統物理結構、業務流程等【4+1檢視】。通過以上方面描述系統的全域性結構及實

Maven夠用

dependencyManagement(主要目的是管理多個子專案中對同一個依賴包的版本號保持一致,不會真實的引入) Maven 使用dependencyManagement 元素來提供了一種管理依賴版本號的方式。通常會在一個組織或者專案的最頂層的父POM 中看到dependencyManagement 元

軟體開發中的理想與現實(十一)——夠用

2月21日,專案正式開始第二天。依照昨天設計的框架和介面,我們開始實現這些功能,不過似乎大家的進展都比較慢,特別是XophiiX,似乎他陷入了困境之中。具體是什麼問題呢?請看下面的介面定義:    class CReader    {        // ...    pub

可擴充套件能力還是夠用

兄弟公司打算購買一臺新的伺服器給測試組用來測試,在硬體採購上讓我給一些意見,因為考慮到目前硬體裝置存在的一些問題,我的建議中主要考慮了今後的擴充套件特性,但採購考慮到預算問題,採購人員主張夠用就好,這是一個平衡的問題,究竟是夠用就好還是預留一定的擴充套件特性。企業應該以主營業務為主,以計算機系統或者網路擴

草稿簡單python腳本監控ORACle 數據

定時任務 sdn 簡單 tps tails class 定時執行 com .com 1、打包成。exe 2、定時執行 3、python中通過定時任務 如何將 Python 程序打包成 .exe 文件? https://blog.csdn.net

Linux中實現一個簡單的進度條

做的 會有 發現 文件 rsquo 實時 時間 改進 常見 轉自:http://blog.csdn.net/yuehailin/article/details/53999288 說起進度條,其實大家常常見到,比如說你在下載視頻或文件的時候,提示你當前下載進度的就是我們今天

草稿實驗室新手需要掌握的幾點

12px spa tps rec nes ont p s 服務 列表 PS:本文旨在給初入實驗室的新手一個可供參考的學習列表,使得能夠快速熟悉常用且必要的工具。?? 1. Linux基本命令行使用 參考:初窺Linux 之 我最常用的20條命令 2. 如何遠程連接服務器

BZOJ3609 [Heoi2014]人人盡說江南 博弈

com heoi2014 ons bzoj3 HR const out esp red 題目鏈接 BZOJ3609 題解 我們假設最後合成若幹個\(m\),和\(n \mod m\),此時合成次數是最多的,也唯一確定勝利者 可以發現,在輪流操作的情況下,勝利者一定可以將終態

shareinstall App推廣轉化率提升80% so easy!

先來說說App推廣市場的現狀,如今App推廣成本越來越高,流量越來越往BAT三大巨頭集中。應用市場的爭奪戰如此激烈,儘管有人號稱App紅利消失,但依然每天不斷有新的App像雨後春筍一樣冒出來。大家都在爭奪使用者的時間,搶佔市場空白,當App開發出來後,如何獲得精準的流量才是企業最關心的問題。

tigase客戶端之smack用法草稿

專案介紹 sureim 專案地址: sureim專案地址 git clone https://git.tigase.tech/sureim.git demo網站: tigase im spark 原始碼編譯 獲取原始碼 git clone https://git.ti

tigase相關參考資料--linux+tigase+postgresql 二次開發環境搭建草稿

參考資料 搭建Tigase進行二次開發 idea搭建tigase原始碼環境 tigase服務端二次開發官方文件 配置【草稿-試錯】 獲取原始碼 下載原始碼到特定目錄: git clone -b stable https://git.tigase.tech/t

使用spring非同步請求處理以及執行緒池所帶來的坑以及利用visualvm監測執行緒及效能草稿

前言 在開始前,請先看看: 因為涉及到執行緒,估計肉眼是沒辦法觀測的了只能用工具了。 預設執行緒池的坑 非同步web開發專題及tomcat下的spring非同步請求配置勘誤 當你按照上文高高興興地配置好非同步支援然後想要開啟高併發的人生,我只能說你圖樣圖森破

《Netty5.0架構剖析和原始碼解讀》PDF下載

    內容簡介 Netty 是個非同步的事件驅動網絡應用框架,具有高效能、高擴充套件性等特性。Netty提供了統一的底層協議介面,使得開發 者從底層的網路協議 (比如 TCP/IP、 UDP) 中解脫出來。 就使用來說, 開發者只要參考Netty 提供的若干例子和它的指南

簡單線性迴歸分析筆記

簡單線性迴歸分析 目錄 1. 摘要 / 引言 迴歸分析是統計學的核心,是一個廣義概念,通常指用一個或多個自變數(也成解釋變數、預測變數)來預測應變數(也稱因變數、校變數或結果變數)。簡單線性迴歸只包括一個應變數和一個自變數。這種迴歸也稱一元線

Angular CLI 模組呼叫報錯分析草稿

1、新增一個模組,程式碼如下: export const ROUTES: Routes = [ { path: '', component: ArticleComponent, } ]; @NgModule({ imports

如何用Eclipse建立一個簡單的Maven專案入門

一.maven安裝 2.解壓到本地某個目錄下。 3.新增環境變數 M2_HOME. 同時在path中新增 %M2_HOME%/bin. 4. 在cmd命令列中輸入 mvn -v,提示以下內容,則安裝成功。 二、eclipse中maven配置 在use

如何理解雲計算?很簡單像吃貨想吃披薩了

公司 如果 pan 雲技術 cit 分類 本地應用 style 分發 你一定聽說過雲計算中的三個“高大上”的概念:IaaS、PaaS和SaaS。這幾個術語並不好理解。不過,如果你是個吃貨,還喜歡披薩,這個問題就好解決了!好吧,其實你根本不是一個吃貨,之所以自我標榜為

課推薦再不懂區塊鏈,你out了!快快開啟進階之路,挑戰高薪職位吧

理念 培訓 政府 改變 全國 要素 sha 精品 下一個 區塊鏈技術被認為是繼蒸汽機、電力、互聯網之後,下一代顛覆性的核心技術。 如果說蒸汽機釋放了人們的生產力,電力解決了人們基本的生活需求,互聯網徹底改變了信息傳遞的方式,那麽區塊鏈作為構造信任的機器,將可能徹底改變整個人

超實用的Excel自動排序小技巧,原來這麼簡單,早點知道了!

日常製作表格中,我們總是要給Excel資料進行排列,這樣更利於我們預覽。大家知道有哪幾種比較實用的排序方法嗎?如果不知道的話,請跟我一起動動手吧! 第一種:最為實用普遍的方法:升序降序排列 步驟:單擊【資料】--【排序和篩選】--選擇【升序】或【降序】就可以進行資料的簡單排序。

slighttpd基於lighttpd架構的Server專案實戰(4)—簡單的echo伺服器

轉載地址:https://blog.csdn.net/jiange_zh/article/details/50636536 在這一部分,我們將對上一篇中的master-worker進行拓展,成為一個簡單的echo伺服器。 這一步我們需要新增兩個類:Listener和Connection;