当前位置: 首页 > news >正文

系统架构书单推荐(一)领域驱动设计与面向对象

本文主要是个人在学习过程中所涉猎的一些经典书籍,有些已经阅读完,有些还在阅读中。于我而言,希望追求软件系统设计相关的原则、方法、思想、本质的东西,并希望通过不断的学习、实践和积累,提升自身的知识和认知。希望以下这些书籍在学习之路上对您也有所帮助。


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

图片

推荐理由:该书技术思想领域的开创性作品,归纳总结了技术的定义,详细解释了技术的进化机制,并且构建了一个完整的关于技术的理论体系。

中:《第一性原理

作者:李善友

图片

推荐理由:黑天鹅事件、《三体》中的射手和农场主假说......在混乱的表象之上,我们应该如何追本溯源、直达问题的本质,相信这本书能带给你一些醍醐灌顶的收获。

相关文章:

  • pycharm快捷键汇总(持续更新)
  • 神聖的綫性代數速成例題12. 齊次方程組零解充要條件、其齊次方程組非零解、 齊次方程組基礎解系
  • SHELL练习01
  • Resume全栈项目(.NET)
  • Servlet、HttpServletRequest、HttpServletResponse、静态与动态网页、jsp、重定向与转发
  • 旋转编码器
  • 医学交互作用分析步骤和目的(R语言)
  • @Validated 使用介绍
  • Android开源库——Glide
  • Java主流开发框架之请求响应常用注释
  • 【LeetCode】大厂面试算法真题回忆(36)--相同数字的积木游戏
  • FFmpeg + ‌Qt‌ 简单视频播放器代码
  • 【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树
  • 如何在 Bash 中不依赖 curl 或 wget 发出 HTTP 请求并实现文件传输——/dev/tcp的妙用
  • illustrate:一款蛋白/核酸结构快速渲染为“卡通风格”的小工具
  • Ciura序列
  • 弱网测试:全链路实战、高阶策略与自动化落地
  • 多线程14(哈希表与文件操作IO)
  • CPU架构和微架构
  • 中颖SH366000介绍和使用全解
  • 世界人形机器人运动会将在北京“双奥场馆”举行
  • 李翔宁:城市的每个人都参与了上海的建造,这一过程还在持续
  • 云南禄丰一尾矿干堆场坍塌致5人被埋
  • 谢承祥已任自然资源部总工程师
  • 今天全国铁路、公路进入返程高峰,这些路段时段通行压力大
  • 自我田野|从城市搬到农村生活,我找回了真实和附近