系統架構書單推薦(一)領域驅動設計與面向對象

本文主要是個人在學習過程中所涉獵的一些經典書籍,有些已經閱讀完,有些還在閱讀中。于我而言,希望追求軟件系統設計相關的原則、方法、思想、本質的東西,并希望通過不斷的學習、實踐和積累,提升自身的知識和認知。希望以下這些書籍在學習之路上對您也有所幫助。


1 UML相關

統一的建模語言UML是非常重要的輔助設計工具,在很多設計書中都會議UML作為設計模型的表述。掌握UML,有助于對這些經典軟件設計資料的學習,不至于由于 “晦澀難懂” 的圖形而心生怯意。《UML精粹》是大師Martin Fowler的經典著作,簡單但不乏大師洞見,值得拜讀。

中:《UML精粹:標準對象建模語言簡明指南

英文:UML Distilled: A Brief Guide to the Standard Object Modeling Language

作者:Martin Fowler

圖片

2 領域驅動設計

領域驅動設計的經典著作,不用多說。

中:《領域驅動設計 - 軟件核心復雜性應對之道

英:Domain Driven Design:Tackling Complexity in the Heart of Software

作者:Eric Evans

圖片

中:《實現領域驅動設計

英:Implementing Domain Driven Design

作者:Vaughn Vernon

圖片

中:《領域驅動設計精粹》

英:Domain-Driven Distilled

作者:Vaughn Vernon

圖片

3 領域建模相關

領域建模是領域驅動設計的核心工作之一,在我們大多數的開發過程中并沒有強調模型的重要性,大部分的系統設計似乎都弱化了“對象”。不論是為了輔助對領域驅動設計的學習,還是深入學習面向對象,這兩本書都一定能讓你收益頗豐。

中:《對象模型——策略、模式與應用

英:Object Models Strategies,Patterns,and Applications

作者:Coad

圖片

中:《分析模式:可復用的對象模型

英文:Analysis Patterns: Reusable Object Models

作者:Martin Fowler

圖片

圖片

4 架構相關

《軟件架構基礎》和《演進式架構》兩本書都探討了系統架構的相關知識。《軟件架構基礎》想尋找 “到底什么是軟件架構” 這一問題的答案,Mark Richards, Neal Ford 兩位大師在該書中從自身視角對軟件架構進行了定義說明,并詳細描述的不同的應用架構風格及其多維度的指標分析。《演進式架構》則對架構演進的原理和技巧進行了探討。

中:《軟件架構基礎

英:Fundamentals of Software Architecture

作者:Mark Richards, Neal Ford

圖片

中:《演進式架構

英:Building Evolutionary Architecture

作者:Neal Ford; Rebecca Parsons; Patrick Kua

圖片

5 探尋本質

中:《軟件設計的哲學

英:A Philosophy of Software Design

作者: John Ousterhout

圖片

推薦理由:在尋找 “什么是復雜性” 這一問題的答案過程中引起我對這本書的注意,該書開篇即對復雜性進行了闡述。同時介紹了軟件設計的基本問題,提出了在軟件設計過程中應用的一系列設計原則

中:《技術的本質:技術是什么,它是如何進化的

英文:The Nature of Technology:What It Is and How It Evolves

作者:Arthur, W. Brian

圖片

推薦理由:該書技術思想領域的開創性作品,歸納總結了技術的定義,詳細解釋了技術的進化機制,并且構建了一個完整的關于技術的理論體系。

中:《第一性原理

作者:李善友

圖片

推薦理由:黑天鵝事件、《三體》中的射手和農場主假說......在混亂的表象之上,我們應該如何追本溯源、直達問題的本質,相信這本書能帶給你一些醍醐灌頂的收獲。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73133.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73133.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73133.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態規劃-01背包

兜兜轉轉了半天,發現還是Carl寫的好。 看過動態規劃-基礎的讀者,大概都清楚。 動態規劃是將大問題,分解成子問題。并將子問題的解儲存下來,避免重復計算。 而背包問題,就是動態規劃延申出來的一個大類。 而01背包&…

使用VS2022編譯CEF

前提 選擇編譯的版本 CEF自動編譯,在這里可以看到最新的穩定版和Beta版。 從這里得出,最新的穩定版是134.0.6998.118,對應的cef branch是6998。通過這個信息可以在Build requirements查到相關的軟件配置信息。 這里主要看Windows下的編譯要…

C++20:玩轉 string 的 starts_with 和 ends_with

文章目錄 一、背景與動機二、string::starts_with 和 string::ends_with(一)語法與功能(二)使用示例1\. 判斷字符串開頭2\. 判斷字符串結尾 (三)優勢 三、string_view::starts_with 和 string_view::ends_w…

智能飛鳥監測 守護高壓線安全

飛鳥檢測新紀元:視覺分析技術的革新應用 在現代化社會中,飛鳥檢測成為了多個領域不可忽視的重要環節。無論是高壓線下的安全監測、工廠內的生產秩序維護,還是農業區的作物保護,飛鳥檢測都扮演著至關重要的角色。傳統的人工檢測方…

ADC噪聲全面分析 -04- 有效噪聲帶寬簡介

為什么要了解ENBW? 了解模數轉換器 (ADC) 噪聲可能具有挑戰性,即使對于最有經驗的模擬設計人員也是如此。 Delta-sigma ADC 具有量化和熱噪聲的組合,這取決于 ADC 的分辨率、參考電壓和輸出數據速率 (ODR)。 在系統級別,額外的信…

STM32單片機uCOS-Ⅲ系統10 內存管理

目錄 一、內存管理的基本概念 二、內存管理的運作機制 三、內存管理的應用場景 四、內存管理函數接口講解 1、內存池創建函數 OSMemCreate() 2、內存申請函數 OSMemGet() 3、內存釋放函數 OSMemPut() 五、實現 一、內存管理的基本概念 在計算系統中,變量、中…

考研課程安排(自用)

文章目錄 408數據結構(王道)計算機組成原理(王道)操作系統(王道)計算機網絡(湖科大版) 數學一高等數學(微積分)線性代數和概率論 408 數據結構(王…

ultraiso制作u盤啟動

UltraISO制作U盤啟動盤的方法 UltraISO是一款功能強大的工具,可以幫助用戶將ISO鏡像文件寫入U盤,從而制作成可啟動的系統安裝盤。以下是詳細的步驟和注意事項: 1. ?準備工作? ?硬件準備?:一個容量至少為8GB的U盤&#xff0…

C語言-發布訂閱模式詳解與實踐

文章目錄 C語言發布訂閱模式詳解與實踐1. 什么是發布訂閱模式?2. 為什么需要發布訂閱模式?3. 實際應用場景4. 代碼實現4.1 UML 關系圖4.2 頭文件 (pubsub.h)4.3 實現文件 (pubsub.c)4.4 使用示例 (main.c) 5. 代碼分析5.1 關鍵設計點5.2 實現特點 6. 編譯…

藍橋杯2023年第十四屆省賽真題-異或和之差

題目來自DOTCPP: 思路: 什么是異或和? ①題目要求我們選擇兩個不相交的子段,我們可以枚舉一個分界線i,子段1在 i 的左邊, 子段2在 i 的右邊,分別找到子段1和子段2的最大值、最小值。 ②怎么確…

Linux作業2——有關文件系統權限的練習

1、創建/www目錄,在/www目錄下新建name和https目錄,在name和https目錄下分別創建一個index.html文件,name下面的index.html文件中包含當前主機的主機名,https目錄下的index.html文件中包含當前主機的ip地址。 #創建/www目錄&…

leeCode 70. 爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 示例 1: 輸入:n 2 輸出:2 解釋:有兩種方法可以爬到樓頂。 1. 1 階 1 階 2. 2 階 示例 2&#x…

算法題(105):小貓爬山

審題: 本題需要我們找出將n個小貓放在有限重的纜車上運下山所需的最小纜車數 時間復雜度分析:本題的數據量小于等于18,所以我們在做好剪枝的前提下可以使用深度優先搜索解題 思路: 方法一:dfs 搜索策略:將小…

第十六章:Specialization and Overloading_《C++ Templates》notes

Specialization and Overloading 一、模板特化與重載的核心概念二、代碼實戰與測試用例三、關鍵知識點總結四、進階技巧五、實踐建議多選題設計題代碼測試說明 一、模板特化與重載的核心概念 函數模板重載 (Function Template Overloading) // 基礎模板 template<typename…

多協議兼容+高并發處理:EasyCVR如何破解AI安防規模化落地難題?

隨著AI技術在安防領域的深入應用&#xff0c;規模化部署面臨兩大核心挑戰&#xff1a;設備協議碎片化導致的接入壁壘與海量視頻流并發帶來的性能瓶頸。TSINGSEE青犀視頻的EasyCVR平臺通過“多協議兼容高并發處理”雙引擎驅動&#xff0c;結合云邊端協同架構與智能算法優化&…

IntelliJ IDEA 中 Git 高頻問題與操作詳解|新手避坑指南

標簽&#xff1a;IntelliJ IDEA Git操作, Git教程, 版本控制, 沖突解決, 分支管理 引言 你是否遇到過這些問題&#xff1f; 代碼提交后想撤銷怎么辦&#xff1f;合并分支時沖突不會解決&#xff1f;不小心把錯誤代碼推送到遠程倉庫&#xff1f; 本文針對 IntelliJ IDEA 中 Git …

【聊聊層次式架構設計:像搭樂高一樣構建軟件大廈】

文章目錄 聊聊層次式架構設計&#xff1a;像搭樂高一樣構建軟件大廈理論篇&#xff1a;層次式架構的“千層套路”最底層&#xff1a;基礎設施層——默默付出的“基石俠”數據訪問層&#xff1a;“數據快遞員”業務邏輯層&#xff1a;智慧的“大腦中樞”表示層&#xff1a;軟件的…

N列股票收盤價為起點的馬科維茨(Markowitz)均值—方差理論

1. 數據準備與收益率計算 輸入數據&#xff1a; 假設你有一個矩陣&#xff0c;每一列代表一只股票的歷史收盤價序列。每一行對應一個時間點的收盤價。 計算收益率&#xff1a; 馬科維茨理論要求使用資產的收益率而非價格。常用的收益率計算方法有對數收益率或簡單收益率。 2.…

Conda常用命令匯總(持續更新中)

原文章&#xff1a;安裝和使用Miniconda來管理Python環境-CSDN博客 一、Miniconda的使用 Miniconda沒有GUI界面&#xff0c;只能通過conda命令對Python環境和軟件包進行管理&#xff0c;所以這里主要介紹一下conda的常用命令。 1. Conda相關 (1)查詢conda版本 conda --vers…

Redis Cluster 詳解

Redis Cluster 詳解 1. 為什么需要 Redis Cluster&#xff1f; Redis 作為一個高性能的內存數據庫&#xff0c;在單機模式下可能會遇到以下問題&#xff1a; 單機容量受限&#xff1a;Redis 是基于內存存儲的&#xff0c;單機的內存資源有限&#xff0c;單實例的 Redis 只能…