<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>DDD on Jeanphilo Blog</title><link>https://shio-chan-dev.github.io/jeanblog/zh/tags/ddd/</link><description>Recent content in DDD on Jeanphilo Blog</description><generator>Hugo -- 0.159.2</generator><language>zh-cn</language><lastBuildDate>Fri, 20 Mar 2026 14:44:10 +0800</lastBuildDate><atom:link href="https://shio-chan-dev.github.io/jeanblog/zh/tags/ddd/index.xml" rel="self" type="application/rss+xml"/><item><title>先写骨架，再补细节：用契约拆解算法题与中型程序</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/skeleton-first-contract-driven-coding/</link><pubDate>Fri, 20 Mar 2026 14:44:10 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/algorithm/skeleton-first-contract-driven-coding/</guid><description>把复杂程序拆成骨架、契约和原子状态变换：本文用 LRUCache、下单流程与反例解释为什么先写外部结构通常更稳，以及 helper 应该如何控制副作用。</description></item><item><title>先定不变量与契约，再写实现：Evans/Fowler 实战法</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/invariants-contract-before-implementation/</link><pubDate>Wed, 11 Feb 2026 07:53:37 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/invariants-contract-before-implementation/</guid><description>解释“先定不变量/契约，再写实现”到底在工程上多了什么，并给出可执行的落地模板。</description></item><item><title>AI 辅助编程不黑盒：责任主线工作流实战</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/ai-assisted-coding-responsibility-workflow/</link><pubDate>Sat, 07 Feb 2026 13:16:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/ai-assisted-coding-responsibility-workflow/</guid><description>用一套可执行的 commit 与分支流程，把 AI 变成加速器而不是黑盒来源。</description></item><item><title>反腐败层（ACL）：如何隔离外部系统的复杂性</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/design-patterns/anti-corruption-layer/</link><pubDate>Sat, 24 Jan 2026 13:08:42 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/design-patterns/anti-corruption-layer/</guid><description>解释反腐败层的作用、使用场景与实现方式。</description></item><item><title>以业务对象为核心的 Python 架构实践</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/python/python-business-object-first-architecture/</link><pubDate>Mon, 01 Dec 2025 11:00:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/python/python-business-object-first-architecture/</guid><description>通过一个工单（Ticket）示例，讲解在 Python + FastAPI + SQLAlchemy 项目中，如何先定义清晰的业务对象（领域模型），再围绕它设计接口 DTO、仓储抽象和应用服务，避免业务代码直接围绕表结构和框架 API 打转。</description></item><item><title>从表结构到领域模型：用聚合仓储设计权限系统</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/python/permission-architecture-aggregate-repository/</link><pubDate>Mon, 01 Dec 2025 10:00:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/python/permission-architecture-aggregate-repository/</guid><description>本文通过 FastAPI + SQLAlchemy + Alembic 的权限组管理示例，讲解如何用领域模型和仓储抽象设计权限系统，为什么仓储可以一次操作多张表，以及 service 层和 repository 层各自应该承担的职责。</description></item></channel></rss>