從零開始學架構 讀書筆記1

2021-10-01 13:12:25 字數 1306 閱讀 9350

模組、物件、元件本質上是對達到一定規模的軟體進行拆分

成功軟體專案的最重要因素就是設計,架構師、設計師需要在業務和技術中尋找乙個平衡點平衡點的把握,就是架構設計中的取捨問題

為什麼要架構設計

因為開發流程需要

因為架構很重要

每個系統都要做設計

為了高效能、高可以、可擴充套件

為了解決軟體系統複雜度帶來的問題

通過理解和熟悉需求,識別系統複雜性所在的地方

高可用

低延遲

任務分解

本質上都是通過資料和服務的「冗餘」實現高可用

高效能與高可用的區別

高效能增加機器目的在於「擴充套件」處理器效能

高可用增加機器目的在於「冗餘」處理單元

複雜度需要增加任務分配器

任務分配器與業務伺服器之間的連線互動管理

任務分配器需要增加分配演算法

複雜度資料傳輸延遲或者中斷

減少或者規避資料不一致對業務的影響

複雜度**者

協商式

民主式

兩個基本條件:正確**變化、完美封裝變化

複雜度不是每個擴充套件點都需要考慮

不能完全不考慮擴充套件點

所有**都存在出錯的可能性

複雜度拆分「變化層」和「穩定層」

提煉「抽象層」和「實現層」

what

軟體內部

軟體外部

why快速響應變化,最大程度降低對現有系統的影響

how業務角度

技術角度

架構角度

應用層面

服務層面

儲存層面

結合資源、業務、場景等各種約束條件

複雜的表現

結構複雜

邏輯複雜

軟體架構需要根據業務發展不斷變化

誤區試圖一步到位,應對所有變化

複雜度**

過度設計問題

系統複雜,運維效率低下

版本發布需要多個系統配合

子系統太多,小問題不斷

正確做法

效能計算

常見錯誤

設計最優的方案

只做乙個方案

備選方案過於詳細

備選方案3-5個最佳,方案差異要明顯

360度環評,根據質量屬性點並結合優先順序進行評估

常見質量屬性點:

效能可用性

硬體成本

專案投入

複雜度安全性

可擴充套件性

避免推翻備選方案

對備選方案關鍵細節有較深入的理解

通過分步驟、分階段、分系統的方式,盡量降低系統複雜度

Mysql5 6 從零開始學 讀書筆記

安全等於運算子 可以用來判斷null值。between and 運算子 4 between 2 and 5 1 least 2,0 0 用於返回列表中最小的值。當引數為整型或者浮點型時,least返回最小的值 當引數為字串時,返回字母表中順序考前的字元 當比較值列表中有null時,不能判斷大小,返回...

從零開始學編碼1

我記得小時候學的課文,地下黨同志 前,將一把笤帚放到窗外,接頭的同志看到這個就知道這個地方不安全。我們看諜戰片的時候經常會有暗語,特殊聲音或標誌來通知自己的同志一些重要資訊。還有就是常見的發電報,滴滴噠噠的聲音。這些暗語,聲音,標誌,甚至於擺放特殊的笤帚。就是編碼,編碼重於約定。小時候我經常會想著,...

從零開始學架構 00學習

這個專欄躺在極客時間裡已經躺了很久了,有空的時候才會去聽它,斷斷續續的學習沒有多大效果。還是希望能有時間系統的學習一遍,所以才會整理這份學習筆記,希望寫完了還回再回過頭看看吧。廢話不多說,直接總結乾貨。1.架構設計相對程式設計來說思維方式有很大的差異。架構設計是判斷和取捨,程式設計是邏輯和實現。2....