来源书籍

企业应用架构模式

系统架构类

经典原理(高信息浓度 + 高稳定性)

类别清单覆盖

3/6

已覆盖 3 补充生成 0 未覆盖 3

全书概览

企业应用架构模式

Skill 版本:v7

整体评级

四象限结论:经典原理(高信息浓度 + 高稳定性)

评级理由

本书围绕企业应用长期存在的结构性问题展开:分层边界如何划分、领域逻辑该用什么组织方式、对象模型与关系数据库如何映射、Web表现层的职责如何拆分、并发与事务隔离如何权衡、会话状态放在哪里代价最小、分布式调用的边界该划在何处。全书不是某个框架或版本的操作手册,而是在事务脚本、领域模型、表模块、数据映射器、工作单元、标识映射、远程外观、数据传输对象等几十个模式之间反复说明各自的适用条件、优点和代价,属于典型的”讲清楚为什么这样设计、各方案如何取舍”的高浓度内容。虽然书中大量示例使用Java、C#、J2EE、.NET、Web Services等2002年前后的具体技术栈,但支撑这些模式的核心判断——”远程调用不等于本地调用因此接口要粗粒度”“复杂领域逻辑需要领域模型而非事务脚本”“持久化机制应该与领域模型解耦”“业务事务可能跨越多个系统事务因此需要离线并发控制”——在今天的Web系统、微服务、ORM框架和SaaS后台架构中依然成立,稳定性很高。因此定为经典原理,是可反复查阅的架构决策参考书,而非速查手册。

类别:系统架构类(判定依据:全书围绕分层架构、领域逻辑组织方式、数据访问架构等大型软件系统的整体架构设计展开,不针对单一具体框架,符合category-checklists.md“系统架构类”的判定标准)

章节进度

章节号 章节标题 精读/略读 状态 卡片数
第0章 引言(架构/企业应用/企业应用的种类/关于性能的考虑/模式) 精读:定义全书讨论范围的核心概念,是后续所有模式的坐标系 done 5
第1章 分层 精读:三大基本层次的划分是全书核心方法论坐标系 done 7
第2章 组织领域逻辑 精读:事务脚本/领域模型/表模块/服务层的选型直接影响架构走向 done 7
第3章 映射到关系数据库 精读:对象模型与关系模型的错配问题及应对策略 done 14
第4章 Web表现层 精读:请求处理与视图生成的基本拆分方式 done 5
第5章 并发 精读:执行语境、隔离、锁、事务边界等企业系统一致性风险 done 14
第6章 会话状态 精读:会话状态放在客户端/服务器/数据库的代价权衡 done 7
第7章 分布策略 精读:远程接口与本地接口的本质区别及分布边界划分原则 done 6
第8章 通盘考虑 精读:不同领域逻辑模式搭配不同数据源模式的组合决策 done 8
第9章 领域逻辑模式 精读:事务脚本/领域模型/表模块/服务层四种模式 done 14
第10章 数据源架构模式 精读:表数据入口/行数据入口/活动记录/数据映射器四种模式 done 7
第11章 对象-关系行为模式 精读:工作单元/标识映射/延迟加载三种模式 done 9
第12章 对象-关系结构模式 精读:标识域/外键映射/关联表映射/依赖映射/嵌入值/序列化LOB/三种继承映射/继承映射器共十种模式 done 11
第13章 对象-关系元数据映射模式 精读:元数据映射/查询对象/资源库三种模式 done 5
第14章 Web表现模式 精读:MVC/页面控制器/前端控制器/模板视图/转换视图/两步视图/应用控制器七种模式 done 6
第15章 分布模式 精读:远程外观/数据传输对象两种模式 done 4
第16章 离线并发模式 精读:乐观离线锁/悲观离线锁/粗粒度锁/隐含锁四种模式 done 7
第17章 会话状态模式 精读:客户/服务器/数据库三种会话状态存放模式 done 4
第18章 基本模式 精读:入口/映射器/层超类型/分离接口/注册表/值对象/货币/特殊情况/插件/服务桩/记录集共十一种模式 done 12

实践卡进度

序号 实践标题 实践方式 状态(pending/done) 关联章节 产出
idea-001 Hibernate的Session如何实现三件套 实现深读 done 第10、11章 待完成的对照表框架+已核验的模式关系背景(源码级细节待后续深读)
idea-002 Rails胖模型问题印证活动记录的复杂度边界 证据验证 done 第9、10章 已核验的社区证据清单+对照笔记框架(逐篇精读结论待后续深读)
idea-003 Spring MVC的DispatcherServlet映射前端控制器理论 实现深读 done 第14章 已核验的框架级对应关系+对照表框架(源码级细节待后续深读)

待关联术语

术语名 出现章节 一句话语境
模式的标准描述结构(名字/意图/概要/动机/运行机制/使用时机/延伸阅读/例子) 第0章 0.5.1 说明后续每个模式条目将按此固定八段式呈现,属于全书排版约定而非可迁移架构知识
ISAM/VSAM等批处理文件格式 第1章 1.1 提及早期批处理系统直接操作的具体文件格式,未展开讲解
VB/PowerBuilder/Delphi 第1章 1.1 提及客户/服务器时代的具体胖客户端工具,未展开讲解
TRS-80 第1章 1.3 提及B2C系统必须兼容的极端老旧客户端型号,仅作举例
Unix X servers 第1章 1.3 提及远程操作台式机上Web服务器的特例场景,未展开讲解
微软COM/.NET记录集开发网格 第2章 2.12.2 提及表模块契合的具体平台生态,未展开讲解
JDO 第3章 3.1 提及Java世界中”面向对象数据库风格逻辑层”的例子,作者表示经验不足未展开评价
select*与列序号/列名索引的取舍、静态SQL预编译、多SQL打包调用 第3章 3.8 具体数据库驱动层面的操作技巧,时效性强,未单独展开生卡
拓扑分类法解决引用完整性写顺序问题 第3章 3.4.1 提及一种具体技术但明确”不是本书讲述的范围”,未展开
COM单线程空间、J2EE EJB隔离机制 第5章 5.7 提及为线程分配隔离数据空间的具体平台方案,未展开讲解
TOPLink等O/R映射工具的代理迁移方案 第7章 7.4 提及用代理在进程间迁移对象的分布方式,作者坦言未见过实际应用,未展开
异步的、基于消息的处理方式 第7章 7.5 作者表示个人偏好正转向此方向但本书未展开讨论,未单独生卡
JDBC2.0 Row Sets、EJB2.0规范、容器管理持久(CMP)、组成实体(Composite Entity)模式 第8章 8.4.1 提及Java/EJB具体技术细节,未展开讲解
Oracle数据库内运行Java程序的方案 第8章 8.4.3 提及缓解存储过程厂商绑定问题的具体技术,未展开讲解
收入确认问题的Java/C#代码示例(表数据入口/策略类/ADO.NET数据集/索引器等具体实现) 第9章 9.1.49.2.49.3.39.4.4 各模式的完整代码走查(含货币模式的浮点精度处理提示),核心思想已提炼入对应卡片,代码本身未逐条生卡
ADO.NET数据阅读器(游标式)与数据集(容器式)的取舍、分离接口解决查找方法依赖、存储过程封装为表数据入口的技巧 第10章 10.1.410.1.510.4.110.1.1 具体实现层面的取舍细节,核心思想已在相关卡片提炼,未单独展开
工作单元的批量更新(batch update)技巧、.NET无连接数据集实现工作单元的版本/状态机制、JDBC批处理机制 第11章 11.1.1 具体平台/技术实现细节,未单独展开
值列表处理器 第11章 11.3.1 提及应对巨型集合延迟加载的专门模式,未展开讲解(该模式在后续模式目录章节中会有专门定义)
第12章大量C#/Java代码示例(键表实现/多表查询/关联表SQL/XML序列化部门层级/继承层次加载等) 第12章 10个模式的完整代码走查,核心思想已提炼入对应卡片,代码本身未逐条生卡
组合模式(备忘录模式引用)、GUID生成算法细节 第12章 12.6.112.1.1 提及具体实现技术,未展开讲解
第13章代码示例(元数据+反射的Java实现/查询对象与资源库的具体代码) 第13章 13.1.313.2.413.3.413.3.5 完整代码走查,核心思想已提炼入对应卡片,未逐条生卡
第14章大量Java/C#/XSLT代码示例(Servlet+JSP/ASP.NET服务器页面/截取筛截器/两阶XSLT/状态模型应用控制器等) 第14章 14.2-14.7各模式代码走查,核心思想已提炼入对应卡片,未逐条生卡
观察者模式(用于MVC多视图同步)、CGI.pm(Perl脚本式模板视图) 第14章 14.1.114.4.1 提及具体实现技术,未展开讲解
第15章Java/C#代码示例(会话Bean远程外观/Web Service/DTO传输唱片信息/XML序列化) 第15章 15.1.315.1.415.2.415.2.5 完整代码走查,核心思想已提炼入对应卡片,未逐条生卡
异步接口配合DTO延迟加载表示调用结果 第15章 15.2.2 提及异步场景下DTO的用法,超出本书同步系统讨论范围,未展开
第16章Java代码示例(领域层+数据映射器/锁管理对象/共享锁与根对象锁的具体实现/隐含悲观离线锁) 第16章 16.1.316.2.316.3.3-516.4.3 完整代码走查,核心思想已提炼入对应卡片,未逐条生卡
Where子句全字段检查(无版本字段时的乐观锁替代方案)、序列化隔离级别系统事务处理读写锁不一致读 第16章 16.1.116.2.1 具体实现层面的取舍细节,核心思想已在相关卡片提炼,未单独展开
Java/.NET服务器会话状态具体实现(HTTP会话/有状态会话Bean/实体Bean存LOB/.NET状态服务) 第17章 17.2.1 平台特定实现细节,核心思想已在相关卡片提炼,未单独展开
层超类型(概念简单未单独展开)、Flyweight模式(特殊情况实现细节)、IEEE754浮点运算细节 第18章 18.318.8.1 提及的具体实现技术,核心思想已在相关卡片提炼或过于简单未生卡
第18章代码示例(私有消息服务入口/领域对象层超类型/单子与线程安全注册表/货币类/空对象/ID生成器插件/销售税服务桩) 第18章 18.1.318.3.318.5.3-418.7.318.8.418.9.318.10.3 完整代码走查,核心思想已提炼入对应卡片,未逐条生卡

引用文献

标题 类型 出现章节 一句话语境
[Brown et al.] 论文/书 第1章 1.2 表现层/领域层/数据源层的命名取自该文献,未展开讲解具体出处细节
[Jacobson et al.] 论文/书 第2章 2.2 “控制器-实体风格”术语受该文献强烈影响,未展开讲解具体出处细节
[Gang of Four] 第3章 3.1 提及策略模式出处(即《设计模式》GoF),未展开讲解
[Brown and Whitenack]、[Ambler]、[Yoder]、[Keller and Coldewey] 书/论文 第3章 3.9”进一步阅读”推荐的数据库映射主题参考书,未展开讲解具体内容
[Alur et al.]、[Knight and Dai] 书/论文 第4章 4.3”进一步阅读”推荐的Web表现层模式与输入/应用控制器术语参考书,未展开讲解具体内容
[Snodgrass]、[Fowler TP] 书/论文 第5章 5.4.1 提及时序读具体实现方法的参考文献,未展开讲解
[Bernstein and Newcomer]、[Lea]、[Schmidt et al.] 书/论文 第5章 5.8”进一步阅读”推荐的并发主题深入参考书,未展开讲解具体内容
[Waldo et al.] 论文 第7章 7.1 提及分布式对象陷阱的出处,未展开讲解具体内容
[Beck XP]、[Fowler CI]、[Beck TDD]、[Fowler Refactoring] 第8章 8.0 提及极限编程/持续集成/测试驱动开发/重构的出处文献,未展开讲解
[Nilsson]、[Marinescu]、[Kirtland] 第8章 8.4.38.5 提及存储过程见解与其他分层方式的具体出处,未展开讲解
[Larman]、[Fowler AP]、[Hay]、[Martin and Odell]、[Evans] 第9章 9.2.3”进一步阅读”推荐的面向对象/领域模型主题参考书,未展开讲解具体内容
[Cockburn PloP]、[Cockburn UC]、[Alpert et al.]、[Coleman et al.] 书/论文 第9章 9.4.3”进一步阅读”推荐的服务层/应用边界/用例方法学参考文献,未展开讲解具体内容
[Beck Patterns]、[Nilsson] 第11章 11.1.111.3.1 提及延迟初始化模式出处与批量更新的.NET实现见解,未展开讲解具体内容
[Alpert et al.]、[Evans and Fowler]、[Evans] 第13章 13.2.313.3.3 提及查询对象/规约模式的具体参考文献,未展开讲解具体内容
[POSA] 第14章 14.1.1 提及深入了解MVC的参考文献,未展开讲解具体内容
[Riehle et al.] 第15章 15.2.3 提及序列化灵活方式的参考文献,未展开讲解具体内容

资金安全问题案例

问题标题 问题卡 解决方案卡(如有) 出现章节 一句话说明
5分钱按70%/30%分账无解 资金分配的舍入误差问题5分钱按比例分账无解 货币分配器方法用零误差伪随机方式解决多方分账 第18章 多方分账时逐项独立取整无法保证总额守恒,需用专门的分配器方法统一协调舍入

类别清单核对(系统架构类)

维度 覆盖状态(已覆盖/补充生成/未覆盖) 关联卡片标题或未覆盖理由
服务拆分原则 部分覆盖 本书成书于2002年、聚焦单体/2-3层企业应用而非微服务,但分层边界与服务边界划分的思路一致:ch01-004《三个基本层次的职责划分与依赖方向铁律》、ch07-004《必须使用分布的五种典型场景》、ch09-012《识别服务与操作的边界划分试探法》
通信机制 已覆盖 ch07-006《RPC接口与基于XML的Web服务接口的选择》,另ch08-007《Web Services的定位是应用集成而非应用构建》
一致性与事务权衡 已覆盖 ch05-011《业务事务与系统事务的错位》、第16章全部乐观/悲观离线锁与粗粒度锁卡片(ch16-001至ch16-007)
可观测性设计 未覆盖 全书未讨论日志采集、监控指标、链路追踪体系;成书年代(2002)早于现代可观测性实践成型,属于本书主题范围之外,非漏判
容错设计 未覆盖 未讨论熔断、降级、重试等现代分布式容错机制;书中”死锁快速失败”(ch16-005)解决的是并发锁竞争而非服务间调用容错,性质不同,确认未覆盖而非漏判
扩展性瓶颈与应对 已覆盖 ch07-003《集群才是正确的扩展方式:复制整个应用而非拆分对象》、ch05-013《每会话一进程与每会话一线程的权衡》
部署与发布策略 未覆盖 未讨论灰度发布、回滚等工程实践;ch08-001提及持续集成/测试驱动开发/重构三项技术实践,但不涉及具体的发布策略机制,确认未覆盖而非漏判

章节与卡片

00 引言

  1. 架构是关键选择 普通读书笔记卡

00

  1. 架构的两个共识点,与其主观性本质 普通读书笔记卡

00 引言

  1. 模式是交流语言 普通读书笔记卡

00

  1. 企业应用的六个典型特征 结构图卡

00 引言

  1. 性能先测量 普通读书笔记卡

00

  1. 没有通用架构:三个例子体现的选型前提 普通读书笔记卡
  2. 性能术语体系的精确辨析 结构图卡
  3. 模式是"半生不熟品",必须结合具体项目调整 普通读书笔记卡

01 分层

  1. 分层降低耦合 普通读书笔记卡

01

  1. 分层架构的收益与代价 结构图卡

01 分层

  1. 三层职责边界 普通读书笔记卡

01

  1. 三层架构诞生是为了给领域逻辑找一个安身之处 普通读书笔记卡

01 分层

  1. 逻辑层不同于进程 普通读书笔记卡

01

  1. layer与tier不是一回事:逻辑分层不等于物理分离 普通读书笔记卡
  2. 三个基本层次的职责划分与依赖方向铁律 结构图卡
  3. 领域逻辑边界判断法:新增一层看是否重复实现 普通读书笔记卡
  4. 非对称分层视图与六边形架构对称视图的差异 普通读书笔记卡
  5. 各层运行位置的决策框架与复杂性增压器 结构图卡

02 组织领域逻辑

  1. 领域逻辑三选 普通读书笔记卡

02

  1. 三种领域逻辑组织模式概览对比 结构图卡

02 组织领域逻辑

  1. 事务脚本适合简单 普通读书笔记卡

02

  1. 领域模型的"理论体系转换" 普通读书笔记卡

02 组织领域逻辑

  1. 领域模型承接复杂 普通读书笔记卡

02

  1. 表模块是记录集导向的中间地带 普通读书笔记卡

02 组织领域逻辑

  1. 服务层定义用例 普通读书笔记卡

02

  1. 模式选型没有量化阈值,只能靠经验判断 普通读书笔记卡
  2. 选错模式后,补救路径的不对称性 普通读书笔记卡
  3. 服务层的作用:统一API入口与横切关注点落点 普通读书笔记卡
  4. 服务层瘦身程度的两极与折中:控制器-实体风格 结构图卡

03 映射到关系数据库

  1. 对象关系错配 普通读书笔记卡

03

  1. 行数据入口与表数据入口的选择逻辑 结构图卡

03 映射到关系数据库

  1. 映射先处理行为 普通读书笔记卡

03

  1. 领域模型持久化机制的渐进选型:入口→活动记录→数据映射器 结构图卡

03 映射到关系数据库

  1. 元数据消除重复 普通读书笔记卡

03

  1. 面向对象数据库生产力更高,为什么关系数据库仍是主流 普通读书笔记卡
  2. 购买O/R映射工具的权衡与"工具不是一劳永逸" 普通读书笔记卡
  3. 工作单元把数据库读写协调从领域层剥离出来 普通读书笔记卡
  4. 标识映射保一致性、延迟加载保性能,是两回事 普通读书笔记卡
  5. 查找器方法归属位置由入口类型决定 普通读书笔记卡
  6. 数据库读取性能的三条经验法则 结构图卡
  7. 对象与关系表现"连接"方式的根本差异,是阻抗不匹配的核心 结构图卡
  8. 三种继承映射策略的权衡 结构图卡
  9. 先建模型还是先建数据库:短迭代周期原则 普通读书笔记卡
  10. 双向映射的两步策略:应对同一数据的多物理存储 普通读书笔记卡
  11. 元数据映射的核心思想 普通读书笔记卡
  12. 数据库连接生命周期管理:绑定到事务,而非依赖垃圾回收 普通读书笔记卡

04 Web表现层

  1. 表现层两职责 普通读书笔记卡

04

  1. 脚本与服务器页面:解释请求与格式化应答的分工 普通读书笔记卡

04 Web表现层

  1. 视图不承载业务 普通读书笔记卡

04

  1. MVC在Web场景下的重新诠释与"输入控制器"术语由来 结构图卡

04 Web表现层

  1. 控制器聚合请求 普通读书笔记卡

04

  1. 应用控制器的作用与"是否需要它"的测试法 普通读书笔记卡
  2. 视图模式的两个独立选择维度 结构图卡
  3. 页面控制器与前端控制器的选择 普通读书笔记卡

05 并发

  1. 并发来自共享可变 普通读书笔记卡

05

  1. 并发的两个本质问题:更新丢失与不一致读 结构图卡

05 并发

  1. 乐观悲观取舍 普通读书笔记卡

05

  1. 正确性与灵活性是并发设计永恒的权衡 普通读书笔记卡

05 并发

  1. 业务事务跨越系统 普通读书笔记卡

05

  1. 五个执行语境概念辨析:请求/会话/进程/线程/事务 结构图卡

05 并发

  1. 隔离降低灵活性 普通读书笔记卡

05

  1. 隔离与不变性是应对并发的两大根本策略 普通读书笔记卡
  2. 乐观并发控制与悲观并发控制的选择依据 结构图卡
  3. 悲观锁用读写锁、乐观锁用版本标记,应对不一致读 普通读书笔记卡
  4. 死锁的成因与三种预防策略 结构图卡
  5. 事务的三要素定义与ACID四属性 结构图卡
  6. 事务资源的锁升级问题,与请求事务 vs 延迟事务 普通读书笔记卡
  7. 四种SQL隔离级别与三类读错误的对应关系 结构图卡
  8. 业务事务与系统事务的错位 普通读书笔记卡
  9. 离线并发问题的处理原则:能不自己处理就不自己处理 普通读书笔记卡
  10. 每会话一进程与每会话一线程的权衡 结构图卡
  11. 为每次请求创建新对象,是避免多线程错误的最简单隔离手段 普通读书笔记卡

06 会话状态

  1. 会话状态有位置 普通读书笔记卡

06

  1. 无状态服务器的真正含义 普通读书笔记卡

06 会话状态

  1. 无状态利于集群 普通读书笔记卡

06

  1. 无状态服务器的资源杠杆 普通读书笔记卡

06 会话状态

  1. 状态生命周期分层 普通读书笔记卡

06

  1. 有状态会话不可避免的情形:购物车案例 普通读书笔记卡
  2. 会话状态的边界:ACID反直觉结果,与临时缓存的区分 普通读书笔记卡
  3. 三种会话状态存储方式的定义 结构图卡
  4. 选择会话状态存储方式的多维权衡框架 结构图卡
  5. 会话迁移与服务器亲和的取舍 普通读书笔记卡

07 分布策略

  1. 远程调用很昂贵 普通读书笔记卡

07

  1. 分布对象设计第一定律:不要分布使用对象 普通读书笔记卡

07 分布策略

  1. 不要分布对象 普通读书笔记卡

07

  1. 本地接口细粒度、远程接口粗粒度的根本原因 结构图卡

07 分布策略

  1. 边界需要显式 普通读书笔记卡

07

  1. 集群才是正确的扩展方式:复制整个应用,而非拆分对象 普通读书笔记卡
  2. 必须使用分布的五种典型场景 结构图卡
  3. 远程外观与数据传输对象的配套使用 结构图卡
  4. RPC接口与基于XML的Web服务接口的选择 普通读书笔记卡

08 通盘考虑

  1. 先选领域组织 普通读书笔记卡

08

  1. 架构决策非一成不变:用三项技术实践留后路 普通读书笔记卡

08 通盘考虑

  1. 技术建议有语境 普通读书笔记卡

08

  1. 工具生态对架构选型的现实影响 普通读书笔记卡

08 通盘考虑

  1. 存储过程双刃剑 普通读书笔记卡

08

  1. 三种领域逻辑模式对应的数据源层选择框架 结构图卡
  2. 表现层选型的决策框架 结构图卡
  3. Java与.NET平台的默认模式选择建议 普通读书笔记卡
  4. 存储过程应作为性能优化手段,而非架构原则 普通读书笔记卡
  5. Web Services的定位是应用集成,而非应用构建 普通读书笔记卡
  6. 五种分层方式的比较与中介层可选原则 结构图卡

09 领域逻辑模式

  1. 事务脚本模式 普通读书笔记卡

09

  1. 事务脚本组织成类的两种方式与独立性原则 普通读书笔记卡

09 领域逻辑模式

  1. 领域模型模式 普通读书笔记卡

09

  1. 领域模型的两种风格:简单对应数据库 vs 复杂细粒度对象网络 普通读书笔记卡

09 领域逻辑模式

  1. 表模块模式 普通读书笔记卡

09

  1. 多层信息系统无法像桌面应用一样整体导入对象图 普通读书笔记卡

09 领域逻辑模式

  1. 服务层模式 普通读书笔记卡

09

  1. 对象臃肿问题:不要过早分离用例特定行为 普通读书笔记卡
  2. EJB实体Bean在领域模型中的障碍,与POJO的历史起源 普通读书笔记卡
  3. 策略模式消除条件判断:复杂性从算法迁移到对象关系 普通读书笔记卡
  4. 表模块没有标识符,必须传入键值访问单行数据 普通读书笔记卡
  5. 表模块与表数据入口协作的两种组织方式 结构图卡
  6. 领域逻辑与应用逻辑的区分,是服务层存在的理由 普通读书笔记卡
  7. 服务层的两种实现方法:领域外观与操作脚本 结构图卡
  8. 服务层是否远程的建议:先本地,后按需加远程外观 普通读书笔记卡
  9. 识别服务与操作的边界划分试探法 普通读书笔记卡
  10. 服务层的必要性判断:多客户端或多事务性资源才需要 普通读书笔记卡
  11. 服务层与会话外观的设计动机差异 普通读书笔记卡

10 数据源架构模式

  1. 表数据入口 普通读书笔记卡

10

  1. 表数据入口返回多行数据的技巧性权衡 普通读书笔记卡

10 数据源架构模式

  1. 行数据入口 普通读书笔记卡

10

  1. 数据访问对象与表数据入口的关系,及命名考量 普通读书笔记卡

10 数据源架构模式

  1. 活动记录合并职责 普通读书笔记卡

10

  1. 行数据入口与活动记录的核心区别:是否包含领域逻辑 普通读书笔记卡

10 数据源架构模式

  1. 数据映射器隔离模型 普通读书笔记卡

10

  1. 从事务脚本到活动记录的自然演化路径 普通读书笔记卡
  2. 查找方法的设计需要了解客户端如何使用对象 普通读书笔记卡
  3. 映射器访问领域对象私有域的四种解法 普通读书笔记卡
  4. 丰富构造函数与空对象两种创建方式的权衡,及循环引用的解法 普通读书笔记卡

11 对象-关系行为模式

  1. 工作单元统一提交 普通读书笔记卡

11

  1. 工作单元记录变化的三种技术 结构图卡

11 对象-关系行为模式

  1. 标识映射保同一性 普通读书笔记卡

11

  1. 判断该不该用工作单元的技术演进路径 结构图卡

11 对象-关系行为模式

  1. 延迟加载推迟代价 普通读书笔记卡

11

  1. 显式标识映射优于通用标识映射 普通读书笔记卡
  2. 继承树场景下,标识映射数量的决策 普通读书笔记卡
  3. 标识映射该放在哪里:工作单元优先,只读对象例外 普通读书笔记卡
  4. 延迟加载的核心思想与四种实现方式概览 结构图卡
  5. 波动加载陷阱:延迟加载集合的性能反噬 普通读书笔记卡
  6. 延迟加载的使用时机判断:只对需要额外数据库访问的域使用 普通读书笔记卡
  7. 不同用例配不同延迟加载策略,但级别不宜过多 普通读书笔记卡

12 对象-关系结构模式

  1. 标识域连接身份 普通读书笔记卡

12

  1. 有意义键与无意义键的选择 普通读书笔记卡

12 对象-关系结构模式

  1. 外键映射关联 普通读书笔记卡

12

  1. 新键生成的四种策略 结构图卡

12 对象-关系结构模式

  1. 关联表映射多对多 普通读书笔记卡

12

  1. 集合外键更新的三种策略 结构图卡

12 对象-关系结构模式

  1. 依赖映射随主对象 普通读书笔记卡

12

  1. 关联表映射用链接表处理多对多关联 普通读书笔记卡

12 对象-关系结构模式

  1. 嵌入值保值对象 普通读书笔记卡

12

  1. 依赖映射的适用前提,及与工作单元的冲突 普通读书笔记卡

12 对象-关系结构模式

  1. 序列化LOB隐藏结构 普通读书笔记卡

12

  1. 嵌入值与序列化LOB的选型判据:能否用SQL查询依赖者内部值 普通读书笔记卡

12 对象-关系结构模式

  1. 继承映射三方案 普通读书笔记卡

12

  1. 序列化LOB的ID陷阱:LOB该挂在谁的表上 普通读书笔记卡

12 对象-关系结构模式

  1. 继承映射器复用 普通读书笔记卡

12

  1. 单表继承判别符字段的选择,与命名空间冲突 普通读书笔记卡
  2. 类表继承的连接查询困境:不知道该连接哪些表 普通读书笔记卡
  3. 具体表继承的键唯一性噩梦,与超类域的绕过技巧 普通读书笔记卡
  4. 继承映射器如何支持抽象类的查找:委托而非硬塞接口 普通读书笔记卡

13 对象-关系元数据映射模式

  1. 元数据映射 普通读书笔记卡

13

  1. 元数据映射的两种实现途径:代码生成 vs 反射编程 结构图卡

13 对象-关系元数据映射模式

  1. 查询对象封装条件 普通读书笔记卡

13

  1. 元数据映射对自动化重构工具的隐蔽破坏 普通读书笔记卡

13 对象-关系元数据映射模式

  1. 资源库像集合 普通读书笔记卡

13

  1. 查询对象是解释器模式:用类和域取代表和列 普通读书笔记卡
  2. 资源库用规约替代查找器方法:客户不写查询,只描述条件 普通读书笔记卡
  3. 资源库的策略可替换性:切换数据源而不改客户代码 普通读书笔记卡

14 Web表现模式

  1. MVC分离两件事 普通读书笔记卡

14

  1. MVC的两个分离,及其重要性差异 结构图卡

14 Web表现模式

  1. 页面控制器直观 普通读书笔记卡

14

  1. 页面控制器与前端控制器可以混合使用,不必强求一致 普通读书笔记卡

14 Web表现模式

  1. 前端控制器集中 普通读书笔记卡

14

  1. 前端控制器的command调度权衡,与装饰器插入横切关注点 普通读书笔记卡

14 Web表现模式

  1. 模板视图贴近页面 普通读书笔记卡

14

  1. 模板视图避免scriptlet的关键:条件逻辑该在辅助对象里判断好 普通读书笔记卡

14 Web表现模式

  1. 转换视图面向数据 普通读书笔记卡

14

  1. 两步视图的模块数量优势,与设计自由度的限制 结构图卡

14 Web表现模式

  1. 两步视图分离外观 普通读书笔记卡

14

  1. 应用控制器与UI机制解耦,及领域逻辑/应用逻辑边界的实用判断 普通读书笔记卡

14 Web表现模式

  1. 应用控制器管流程 普通读书笔记卡

15 分布模式

  1. 远程外观粗粒度 普通读书笔记卡

15

  1. 远程外观数量应少而粗,而非每用例一个 普通读书笔记卡

15 分布模式

  1. DTO合并传输 普通读书笔记卡

15

  1. 远程外观与服务层的关系:能否共存 普通读书笔记卡
  2. 组装器对象保持DTO与领域对象的双向独立 普通读书笔记卡
  3. 序列化格式的容错性:纯二进制对结构变化极脆弱 普通读书笔记卡

16 离线并发模式

  1. 乐观离线锁 普通读书笔记卡

16

  1. 乐观离线锁默认防不了不一致读,需主动扩大版本检查范围 普通读书笔记卡

16 离线并发模式

  1. 悲观离线锁 普通读书笔记卡

16

  1. 并发冲突判断本质是领域问题,而非纯技术判断 普通读书笔记卡

16 离线并发模式

  1. 粗粒度锁保一致 普通读书笔记卡

16

  1. 源代码管理系统的自动合并策略是乐观锁威力的放大器 普通读书笔记卡

16 离线并发模式

  1. 隐含锁防遗漏 普通读书笔记卡

16

  1. 悲观离线锁的三种类型:独占写锁/独占读锁/读写锁 结构图卡
  2. 悲观离线锁两个实践坑:死锁与会话丢失 普通读书笔记卡
  3. 粗粒度锁的两种实现:共享锁与根对象锁 结构图卡
  4. 隐含锁该自动化读锁,而非写锁的获取 普通读书笔记卡

17 会话状态模式

  1. 客户会话状态 普通读书笔记卡

17

  1. HTML客户端会话状态的三种技术,与各自局限 结构图卡

17 会话状态模式

  1. 服务器会话状态 普通读书笔记卡

17

  1. "有状态会话Bean性能差"是无稽之谈:用负载测试代替直觉 普通读书笔记卡

17 会话状态模式

  1. 数据库会话状态 普通读书笔记卡

17

  1. 会话表分段轮换清理策略(Kai Yu方案) 普通读书笔记卡
  2. 数据库会话状态的核心张力:会话数据不能过早污染已提交数据 结构图卡

18 基本模式

  1. 入口封装外部 普通读书笔记卡

18

  1. 入口与外观、适配器、调停者的精确区别 结构图卡

18 基本模式

  1. 映射器隔离双方 普通读书笔记卡

18

  1. 映射器最大的实现难点:如何被激活 普通读书笔记卡

18 基本模式

  1. 层超类型收公共 普通读书笔记卡

18

  1. 分离接口:不要每个类都用 普通读书笔记卡

18 基本模式

  1. 分离接口反转依赖 普通读书笔记卡

18

  1. 注册表接口用静态方法,但数据不必是静态域 结构图卡

18 基本模式

  1. 注册表是全局入口 普通读书笔记卡

18

  1. 注册表是"有罪推定"的全局数据 普通读书笔记卡

18 基本模式

  1. 值对象无身份 普通读书笔记卡

18

  1. 值对象不可变的真正理由:避免别名bug 普通读书笔记卡

18 基本模式

  1. 货币需要专门类型 普通读书笔记卡

18

  1. 资金分配的舍入误差问题:5分钱按比例分账无解 支付系统案例卡

18 基本模式

  1. 特殊情况消除空值 普通读书笔记卡

18

  1. 货币分配器方法用零误差伪随机方式解决多方分账 支付系统案例卡

18 基本模式

  1. 插件延后绑定 普通读书笔记卡

18

  1. 特殊情况:用同类型的替身消除到处判空 普通读书笔记卡

18 基本模式

  1. 服务桩隔离测试 普通读书笔记卡

18

  1. 插件:把散落各工厂的环境判断收拢成运行时可配置的单点 普通读书笔记卡

18 基本模式

  1. 记录集保留表格 普通读书笔记卡

18

  1. 服务桩的关键是保持极简,而非追求逼真 普通读书笔记卡
  2. 记录集的隐式接口与显式接口权衡 普通读书笔记卡

相关主题

暂无公开主题。