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

news2025/3/24 14:29:35

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


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.coloradmin.cn/o/2320204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos6配置yum源

Centos6配置yum源 为Centos6配置CentOS Vault源—防止yum源过期为Centos6配置epel源为Centos6配置ELRepo源---已ELRepo被官方清空Centos6安装dockerdocker配置国内镜像加速 为Centos6配置CentOS Vault源—防止yum源过期 参考:https://mirrors.ustc.edu.cn/help/cen…

CVPR 2025 | 文本和图像引导的高保真3D数字人高效生成GaussianIP

小小宣传一下CVPR 2025的工作GaussianIP。 arXiv:https://arxiv.org/abs/2503.11143 Github:https://github.com/silence-tang/GaussianIP 欢迎star, issue~ 摘要 文本引导的3D人体生成随着高效3D表示及2D升维方法(如SDS)的发展…

Cursor从小白到专家

文章目录 1:简单开发一个贪吃蛇游戏规则设置提示词 cursor开发小工具开发整体步骤创建.cursorrules输入提示词composer模式chat模式 执行cursor accept all发布到线上进行分享 cursor开发一个浏览器插件创建.cursorrulescursor rules范例集工具 输入提示词执行curso…

使用C++在Qt框架下调用DeepSeek的API接口实现自己的简易桌面小助手

项目背景 随着DeepSeek的爆火,最近的DeepSeek也进行了新一轮技术的更新,为了拥抱新时代,我们也要不断学习新的知识,难的底层原理我们接触不到,简单的调用还能难住我们? 因为在网络上搜集到的资源都是用Py…

【信息系统项目管理师】【高分范文】【历年真题】​论信息系统项目的风险管理

【手机端浏览】☞【信息系统项目管理师】【高分范文】【历年真题】​论信息系统项目的风险管理 2023年上半年考题 【题目】 论信息系统项目的风险管理 项目风险管理旨在识别和管理未被项目计划及其他过程所管理的风险,如果不妥善管理,这些风险可能导致项…

Debain-12.9使用vllm部署内嵌模型/embedding

Debain-12.9使用vllm部署内嵌模型/embedding 基础环境准备下载模型部署模型注册dify模型 基础环境准备 基础环境安装 下载模型 modelscope download --model BAAI/bge-m3 --local_dir BAAI/bge-m3部署模型 vllm serve ~/ollama/BAAI/bge-m3 --served-model-name bge-m3 --t…

Milvus学习整理

Milvus学习整理 一、度量类型(metric_type) 二、向量字段和适用场景介绍 三、索引字段介绍 (一)、概述总结 (二)、详细说明 四、简单代码示例 (一)、建立集合和索引示例 (二&#xff09…

MySQL事务全解析:从概念到实战

在数据库操作中,事务是一个至关重要的概念,它确保了数据的完整性和一致性。今天,就让我们深入探讨MySQL事务的方方面面,从基础概念到实际应用,全面掌握这一技能。 一、为什么需要事务 假设张三要给李四转账100元&…

手机怎么换网络IP有什么用?操作指南与场景应用‌

在数字化时代,手机已经成为我们日常生活中不可或缺的一部分,无论是工作、学习还是娱乐,手机都扮演着至关重要的角色。而在手机的使用过程中,网络IP地址作为设备在互联网上的唯一标识符,其重要性和作用不容忽视。本文将…

科技赋能安全:慧通测控的安全带全静态性能测试

汽车的广泛普及给人们的出行带来了极大便利,但交通事故频发也成为严重的社会问题。据世界卫生组织统计,全球每年约有 135 万人死于道路交通事故,而安全带在减少事故伤亡方面起着不可替代的作用。正确使用安全带可使前排驾乘人员的死亡风险降低…

记录修复一个推拉门滑轮

推拉门有个滑轮的固定螺丝不知什么时候掉了,也找不到,这就导致推拉门卡在轨道上。 这种滑轮在夕夕上很便宜,比哈罗单车还划算,但是现在缺的只是螺丝,如果买就会多出来一个轮… 这种螺丝比较长,大概是m4的…

压缩壳学习

壳是什么 壳就是软件的一个保护套,防止软件被进行反编译或被轻易地修改。 其作用就是为了保护软件。 常见的大类壳有压缩壳、加密壳、VM 壳的分类。 压缩壳顾名思义就是用来减小软件的文件大小的;加密壳,通过加密软件来保护软件&#xff…

深入理解 Linux ALSA 音频架构:从入门到驱动开发

文章目录 一、什么是 ALSA?二、ALSA 系统架构全景图核心组件详解:三、用户空间开发实战1. PCM 音频流操作流程2. 高级配置(asound.conf)四、内核驱动开发指南1. 驱动初始化模板2. DMA 缓冲区管理五、高级主题1. 插件系统原理2. 调试技巧3. 实时音频优化六、现代 ALSA 发展七…

CCF-CSP认证 202206-2寻宝!大冒险!

题目描述 思路 有一张绿化图和藏宝图,其中绿化图很大(二维数组在限定的空间内无法存储),而藏宝图是绿化图中的一部分,对于绿化图和藏宝图,左下角的坐标为(0, 0),右上角的坐标是(L, L)、(S, S)&…

仿函数 VS 函数指针实现回调

前提: 本博客对比 函数指针实现回调 和 仿函数 ,突出仿函数的优势。 目的: 一个类要能够灵活的调用两个函数,essfc 和 greaterfc,分别用于比较两个整数的大小: ①:lessfc:判断 x …

MQTT的安装和使用

MQTT的安装和使用 在物联网开发中,mqtt几乎已经成为了广大程序猿必须掌握的技术,这里小编和大家一起学习并记录一下~~ 一、安装 方式1、docker安装 官网地址 https://www.emqx.com/zh/downloads-and-install/broker获取 Docker 镜像 docker pull e…

PRODIGY: “不折腾人”的蛋白-蛋白/蛋白-小分子结合能计算工具

PRODIGY(全称为 PROtein binDIng enerGY prediction)是一种蛋白质结合能预测工具,可利用蛋白质-蛋白质复合物的三维结构来预测其结合亲和力。PRODIGY 利用一种高效的基于接触的方法,在估计结合自由能和解离常数的同时,…

C++之 【模板初阶(函数模板与类模板)】

目录 1.泛型编程 2.模板 3函数模板 3.1函数模板的概念 3.2函数模板的格式 3.3函数模板的原理 3.4函数模板的实例化 3.4.1隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 3.4.2显示实例化&#xff1a;在函数名后的<>中指定模板参数的实际类型 3.…

在线教育网站项目第四步:deepseek骗我, WSL2不能创建两个独立的Ubuntu,但我们能实现实例互访及外部访问

一、说明 上一章折腾了半天&#xff0c;搞出不少问题&#xff0c;今天我们在deepseek的帮助下&#xff0c;完成多个独立ubuntu24.04实例的安装&#xff0c;并完成固定ip&#xff0c;实践证明&#xff0c;deepseek不靠谱&#xff0c;浪费我2个小时时间&#xff0c;我们将在下面实…

在刀刃上发力:如何精准把握计划关键节点

关键路径分析是项目管理中的一种重要方法&#xff0c;它通过在甘特图中识别出项目中最长、最关键的路径&#xff0c;来确定项目的最短完成时间。 关键路径上的任务都是项目成功的关键因素&#xff0c;任何延误都可能导致整个项目的延期。关键路径分析对于项目管理者来说至关重要…