<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>架构 on 追风笔记</title><link>https://0607501b.wangpeng.pages.dev/categories/%E6%9E%B6%E6%9E%84/</link><description>Recent content in 架构 on 追风笔记</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Wed, 12 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://0607501b.wangpeng.pages.dev/categories/%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>在银行客户信息系统（ECIF）里落地 DDD 聚合</title><link>https://0607501b.wangpeng.pages.dev/architecture/ddd-aggregate/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://0607501b.wangpeng.pages.dev/architecture/ddd-aggregate/</guid><description>&lt;p&gt;ECIF 里「客户」的概念极其庞大：个人、对公、同业，各自的属性、关系、生命周期都不同。如果用一个巨大的 &lt;code&gt;Customer&lt;/code&gt; 实体硬扛，代码会迅速腐化。&lt;/p&gt;&#10;&lt;h2 id="用界限上下文切分"&gt;用界限上下文切分&lt;/h2&gt;&#10;&lt;p&gt;把客户拆成几个界限上下文：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;客户主数据（Party）&lt;/strong&gt;：统一的自然人/机构标识与基础属性。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;客户画像（Profile）&lt;/strong&gt;：风险偏好、营销标签，读写频率高、变化快。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;客户关系（Relationship）&lt;/strong&gt;：持股、担保、集团关系。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="聚合根怎么定"&gt;聚合根怎么定&lt;/h2&gt;&#10;&lt;p&gt;每个上下文内部再定聚合根。例如 Party 上下文里，&lt;code&gt;Party&lt;/code&gt; 是聚合根，&lt;code&gt;Address&lt;/code&gt;、&lt;code&gt;Contact&lt;/code&gt; 是其值对象，保证一致性边界内不跨聚合调用。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;经验：聚合的边界应以「事务一致性」而非「业务概念大小」来划。ECIF 里最容易犯的错，就是把所有客户信息塞进一个聚合。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;这样设计后，主数据服务稳定，画像服务可以独立迭代，互不影响。&lt;/p&gt;</description></item></channel></rss>