《從0開始學架構》 什麼是架構設計

2021-08-30 09:06:39 字數 1062 閱讀 6643

本系列是極客時間《從0開始學架構》的讀書筆記。

對應《01|架構到底是指什麼?》

架構是頂層設計;框架是面向程式設計或配置的半成品;元件是從技術維度上的復用;模組是從業務維度上職責的劃分;系統是相互協同可執行的實體。

按照我的理解,架構的維度是最大的,一般我們會講業務架構和技術架構兩類。而框架重在提供一種約束,是半成品,實際的開發人員在框架內的約束下編寫業務**,而框架通過控制反轉(ioc)執行程式。元件和模組並沒有什麼區別。

對應《02|架構設計的歷史背景》

在本篇中,作者簡單介紹了下軟體工程的發展歷程。從機器語言,到組合語言,到高階語言。從第一次軟體危機背景下出現的結構化程式設計,到第二次軟體危機背景下出現的物件導向設計。

其實如果讀的多的話,會發現在計算機的很多領域都會或多或少複述一遍上面的歷史程序。比如說各類程式設計正規化,命令式、過程式、物件導向、函式式、邏輯式、並行式……比如說資料與計算量,從大型機到雲計算,從單一到分布式……

我們會發現,解決的問題越來越多,越來越大,但是相隨的是,出現的問題也越來越多,越來越複雜了。軟體工程是為了解決問題而不斷創新的,現在人們發現軟體架構的優劣也是乙個重要的影響因素。

但是呢,架構設計同之前出現過的結構化設計和物件導向設計一樣,並不是一勞永逸的。軟體工程領域沒有「銀彈」。

面對出現的未知問題,不斷創新,將問題拆分,將複雜度降低,這才是軟體工程領域永遠不變的主題。

對應《03 | 架構設計的目的》

從上篇可知,架構設計同之前出現過的其他設計理念相同,都是為了解決新出現的問題而提出的。那為什麼會新出現問題?在於複雜度。所以,架構設計是解決由於複雜度帶來的問題的方法之一。

基於複雜度來思考也是架構設計領域的指導思想。比如說哪個部分需要設計架構?架構設計主要偏向於哪方面,是高可用,高效能,還是可擴充套件?需不需要引入某技術?

作者在之前也提到過,同編寫程式不同,架構設計更趨向於「取捨」,那如何去取捨的重要依據也是「複雜度」。

《從0開始學架構》 架構設計的原則與流程

本系列是極客時間 從0開始學架構 的讀書筆記。我們已經知道了架構設計的定義 歷史源流 等等背景知識。對應 08 架構設計三原則 既然架構設計關鍵在於取捨,那取捨的依據原則是什麼?作者提出了三條原則 合適 簡單 演化。合適優於業界領先。簡單優於複雜。演化優於一步到位。這三條看起來簡單,但想想還真就是這...

從0開始學架構 推薦

程式設計師的成長繞不開架構設計,有時架構設計就像鴻溝一樣擋在程式設計師晉公升之路上,只要跨過去就可以海闊天空。但不少技術能力很強的程式設計師依然不能完全掌握架構設計,這與架構設計的思維方式和訓練機制與寫 有很大差異有關,加之人們對架構設計存在很多誤區,缺乏一套行之有效的架構設計方 就可能導致在實踐過...

學習 從0開始學架構 5

儲存高可用方案的本質都是通過將資料複製到多個儲存裝置,通過資料冗餘的方式來實現高可用,其複雜性主要體現在如何應對複製延遲和中斷導致的資料不一致問題 主備 讀寫主機,備機 主要還是起到乙個備份作用,並不承擔實際的業務讀寫操作 主從 主機讀寫,從機讀 雙機切換 狀態判斷 切換決策 中介式 主機和備機不再...