本文主要是個人在學習過程中所涉獵的一些經典書籍,有些已經閱讀完,有些還在閱讀中。于我而言,希望追求軟件系統設計相關的原則、方法、思想、本質的東西,并希望通過不斷的學習、實踐和積累,提升自身的知識和認知。希望以下這些書籍在學習之路上對您也有所幫助。
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
推薦理由:該書技術思想領域的開創性作品,歸納總結了技術的定義,詳細解釋了技術的進化機制,并且構建了一個完整的關于技術的理論體系。
中:《第一性原理》
作者:李善友
推薦理由:黑天鵝事件、《三體》中的射手和農場主假說......在混亂的表象之上,我們應該如何追本溯源、直達問題的本質,相信這本書能帶給你一些醍醐灌頂的收獲。