{T}

附录术语表

本术语表收录了《软件设计之美》知识体系中的核心术语,按主题分类排列。每个术语包含中文名、英文名、简要定义及相关章节链接,便于快速查阅与系统学习。


一、设计基础

术语英文名定义相关章节
模型Model软件的骨架,定义软件本质属性的核心抽象结构01-设计认知篇
规范Norm限定需求实现方式的约束规则,确保设计一致性01-设计认知篇
关注点分离Separation of Concerns将不同维度的关注点拆分,粒度越小越好01-设计认知篇
可测试性Testability软件模块在开发阶段能够被独立测试的容易程度01-设计认知篇
高内聚低耦合High Cohesion, Low Coupling对模型的核心要求,好的模型能有效隐藏细节01-设计认知篇
执行质量Execution Qualities运行时可观察的非功能性需求,如吞吐、延迟、安全01-设计认知篇
演化质量Evolution Qualities内含于软件结构的非功能性需求,如可测试性、可维护性01-设计认知篇

二、编程语言

术语英文名定义相关章节
运行时Runtime程序设计语言的实现部分,支撑程序运行的环境03-编程语言篇
语法糖Syntactic Sugar为方便程序员使用的语法,对语言功能无实质影响03-编程语言篇
图灵完备Turing Complete语言的数据操作规则能实现图灵机的全部功能03-编程语言篇
一等公民First-class Citizen可按需创建、存储、传参、返回的程序元素04-编程范式篇
领域特定语言Domain Specific Language, DSL针对特定领域设计的程序设计语言03-编程语言篇
内部 DSLInternal DSL使用宿主语言语法表达的 DSL,如 Java Config、Rails API03-编程语言篇
外部 DSLExternal DSL使用独立语法表达的 DSL,如 SQL、正则表达式03-编程语言篇

三、编程范式

术语英文名定义相关章节
编程范式Programming Paradigm程序的编写模式,决定可用的设计元素与约束04-编程范式篇
结构化编程Structured Programming以顺序、选择、循环三种基本结构构建程序的范式04-编程范式篇
面向对象编程Object-Oriented Programming, OOP以对象为核心,通过封装、继承、多态组织代码的范式04-编程范式篇
函数式编程Functional Programming, FP以函数为核心,强调不变性与组合性的编程范式04-编程范式篇
LambdaLambda匿名函数,函数式编程中的核心表达方式04-编程范式篇
MonadMonad函数式编程中处理上下文组合的核心概念04-编程范式篇
MixinMixinRuby 的代码复用机制,模块可被 include 到类中04-编程范式篇
TraitTraitScala 的代码复用机制,类似 Ruby 的 Mixin04-编程范式篇
面向组合编程Composition-Oriented Programming类由多个小模块组合而成,每个模块对应一个关注点04-编程范式篇
迪米特法则Law of Demeter最少知识原则,一个对象不应知道太多其他对象的内部结构04-编程范式篇
Goto 是有害的Go To Statement Considered HarmfulDijkstra 1968 年的文章,引发结构化编程革命04-编程范式篇

四、设计原则(SOLID)

术语英文名定义相关章节
单一职责原则Single Responsibility Principle, SRP一个模块对一类且仅对一类行为者负责05-设计原则篇
开放封闭原则Open-Closed Principle, OCP对扩展开放,对修改封闭05-设计原则篇
Liskov 替换原则Liskov Substitution Principle, LSP子类型必须能够替换其父类型05-设计原则篇
接口隔离原则Interface Segregation Principle, ISP不应让使用者依赖用不到的方法05-设计原则篇
依赖倒置原则Dependency Inversion Principle, DIP高层不应依赖底层,二者都应依赖抽象05-设计原则篇
IS-AIS-A继承关系的判定,基于行为一致性而非直觉概念05-设计原则篇
RTTIRuntime Type Identification运行时类型识别,instanceof 的使用通常意味着违反 LSP05-设计原则篇

五、设计模式

术语英文名定义相关章节
设计模式Design Pattern针对特定上下文中反复出现问题的标准解决方案06-设计模式篇
简单设计Simple DesignKent Beck 四原则:通过测试、揭示意图、消除重复、最少元素06-设计模式篇
DRYDon't Repeat Yourself不要重复,消除重复是设计的初衷之一06-设计模式篇
策略模式Strategy Pattern将算法族封装,使算法可独立变化06-设计模式篇

六、领域驱动设计(DDD)

术语英文名定义相关章节
领域驱动设计Domain-Driven Design, DDD从业务出发的设计方法,核心是通用语言和模型驱动设计07-领域驱动设计篇
通用语言Ubiquitous Language业务与开发之间共有的语言,包含概念与操作07-领域驱动设计篇
限界上下文Bounded ContextDDD 战略设计中显式的模型边界,边界内概念有统一含义07-领域驱动设计篇
模型驱动设计Model-Driven DesignDDD 的核心方法,通过建立模型来驱动设计07-领域驱动设计篇
实体EntityDDD 中有唯一标识的领域对象,生命周期内有连续性07-领域驱动设计篇
值对象Value ObjectDDD 中无唯一标识、由属性定义、不可变的领域对象07-领域驱动设计篇
聚合AggregateDDD 中一组相关实体的一致性边界,通过聚合根作为唯一入口07-领域驱动设计篇
聚合根Aggregate Root聚合的入口实体,外部只能通过聚合根访问聚合内部的实体07-领域驱动设计篇
领域服务Domain Service不属于任何实体或值对象的业务逻辑,承载跨实体的操作07-领域驱动设计篇
领域事件Domain Event领域中发生的有业务意义的事件,用于聚合间的异步通信07-领域驱动设计篇
资源库RepositoryDDD 中持久化的抽象接口,面向领域而非数据库07-领域驱动设计篇
防腐层Anti-Corruption LayerDDD 上下文映射中的关键模式,隔离外部模型对内部领域模型的侵蚀07-领域驱动设计篇

七、架构模式

术语英文名定义相关章节
六边形架构Hexagonal Architecture端口与适配器架构,应用核心不依赖任何外部技术09-扩展补充篇
端口Port六边形架构中应用核心定义的接口09-扩展补充篇
适配器Adapter六边形架构中的技术对接层,实现端口接口的具体技术方案09-扩展补充篇
CQRSCommand Query Responsibility Segregation命令查询职责分离,写模型与读模型独立设计09-扩展补充篇
事件溯源Event Sourcing不存储当前状态,而是存储所有改变状态的事件09-扩展补充篇
响应式编程Reactive Programming面向数据流和变化传播的编程范式09-扩展补充篇
回压Backpressure响应式编程中消费者控制数据流速的机制,防止被数据淹没09-扩展补充篇

八、并发模型

术语英文名定义相关章节
Actor 模型Actor Model一种并发模型,每个 Actor 有独立状态,通过异步消息通信09-扩展补充篇
CSP 模型Communicating Sequential Processes通过通道传递数据的并发模型,Go 语言采用此模型09-扩展补充篇

九、依赖管理

术语英文名定义相关章节
依赖注入Dependency Injection, DI将对象创建从业务代码中分离,由容器统一管理02-设计分析篇
约定优于配置Convention over ConfigurationRails 的核心设计理念,无需配置按缺省风格即可完成基本功能02-设计分析篇

十、其他

术语英文名定义相关章节
虚拟文件系统Virtual File System, VFSLinux 中的文件系统接口,C 语言用函数指针实现多态04-编程范式篇

术语索引(按字母排序)

A-C

  • Actor 模型 (Actor Model)
  • 适配器 (Adapter)
  • 防腐层 (Anti-Corruption Layer)
  • 聚合 (Aggregate)
  • 聚合根 (Aggregate Root)
  • 回压 (Backpressure)
  • 限界上下文 (Bounded Context)
  • 命令查询职责分离 (CQRS)
  • CSP 模型 (Communicating Sequential Processes)
  • 约定优于配置 (Convention over Configuration)

D-G

  • 依赖注入 (Dependency Injection, DI)
  • 依赖倒置原则 (Dependency Inversion Principle, DIP)
  • 领域驱动设计 (Domain-Driven Design, DDD)
  • 领域事件 (Domain Event)
  • 领域服务 (Domain Service)
  • 领域特定语言 (Domain Specific Language, DSL)
  • 不要重复 (Don't Repeat Yourself, DRY)
  • 实体 (Entity)
  • 事件溯源 (Event Sourcing)
  • 演化质量 (Evolution Qualities)
  • 执行质量 (Execution Qualities)
  • 一等公民 (First-class Citizen)
  • Goto 是有害的 (Go To Statement Considered Harmful)

H-L

  • 六边形架构 (Hexagonal Architecture)
  • 高内聚低耦合 (High Cohesion, Low Coupling)
  • IS-A
  • 接口隔离原则 (Interface Segregation Principle, ISP)
  • 内部 DSL (Internal DSL)
  • 外部 DSL (External DSL)
  • Liskov 替换原则 (Liskov Substitution Principle, LSP)
  • Lambda
  • 迪米特法则 (Law of Demeter)

M-O

  • 模型 (Model)
  • 模型驱动设计 (Model-Driven Design)
  • Monad
  • Mixin
  • 规范 (Norm)
  • 开放封闭原则 (Open-Closed Principle, OCP)
  • 面向组合编程 (Composition-Oriented Programming)

P-S

  • 端口 (Port)
  • 编程范式 (Programming Paradigm)
  • 资源库 (Repository)
  • 响应式编程 (Reactive Programming)
  • 运行时类型识别 (RTTI)
  • 运行时 (Runtime)
  • 单一职责原则 (Single Responsibility Principle, SRP)
  • 关注点分离 (Separation of Concerns)
  • 语法糖 (Syntactic Sugar)
  • 简单设计 (Simple Design)
  • 策略模式 (Strategy Pattern)

T-Z

  • 可测试性 (Testability)
  • Trait
  • 图灵完备 (Turing Complete)
  • 通用语言 (Ubiquitous Language)
  • 值对象 (Value Object)
  • 虚拟文件系统 (Virtual File System, VFS)