<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>详细设计 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E8%AF%A6%E7%BB%86%E8%AE%BE%E8%AE%A1/</link><description>Recent content in 详细设计 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 15 Sep 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/%E8%AF%A6%E7%BB%86%E8%AE%BE%E8%AE%A1/index.xml" rel="self" type="application/rss+xml"/><item><title>详细设计实战：数据库 + 接口 + 概要设计的层次化文档</title><link>https://liangweidonggood.github.io/p/xiangxi-sheji-shizhan-moban/</link><pubDate>Mon, 15 Sep 2025 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/xiangxi-sheji-shizhan-moban/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/xiangxi-sheji-shizhan-moban/image/cover.jpg" alt="Featured image of post 详细设计实战：数据库 + 接口 + 概要设计的层次化文档" /&gt;&lt;p&gt;详细设计（Detailed Design）是项目从&amp;quot;概要&amp;quot;走向&amp;quot;可编码&amp;quot;的关键文档——&lt;strong&gt;它是程序员写代码的&amp;quot;施工图&amp;quot;&lt;/strong&gt;。本文基于多年项目实践，给出一套&lt;strong&gt;层次化、可落地&lt;/strong&gt;的详细设计实战模板。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;本文写于 2025 年 9 月&lt;/strong&gt;——敏捷开发的时代，&lt;strong&gt;详设不会过时&lt;/strong&gt;，只是形式更轻量。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="一详细设计-vs-概要设计"&gt;一、详细设计 vs 概要设计
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;概要设计&lt;/th&gt;
					&lt;th&gt;详细设计&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;粒度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模块 / 子系统&lt;/td&gt;
					&lt;td&gt;函数 / 类 / 表&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;读者&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;架构师 / PM&lt;/td&gt;
					&lt;td&gt;程序员&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;目的&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;划定边界&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;指导编码&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;重点&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;架构图 / 模块划分&lt;/td&gt;
					&lt;td&gt;数据结构 / 算法 / 接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;产物&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;架构图 / 接口契约&lt;/td&gt;
					&lt;td&gt;类图 / 时序图 / 表结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;更新频率&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;季度&lt;/td&gt;
					&lt;td&gt;周 / 迭代&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="二详细设计-7-大章节"&gt;二、详细设计 7 大章节
&lt;/h2&gt;&lt;h3 id="21-章节结构总览"&gt;2.1 章节结构总览
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. 引言
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1.1 编写目的
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1.2 背景
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1.3 参考资料
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1.4 术语定义及说明
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. 设计概述
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2.1 任务和目标
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2.2 需求概述
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2.3 运行环境概述
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2.4 条件与限制
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2.5 详细设计方法和工具
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. 系统详细需求分析
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 3.1 详细需求分析
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 3.2 详细系统运行环境及限制条件分析
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 3.3 接口需求分析
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;4. 总体方案确认
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 4.1 系统总体结构确认
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 4.2 系统详细界面划分
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;5. 系统详细设计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 5.1 系统结构设计及子系统划分
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 5.2 系统功能模块详细设计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; （采用 HIPO 图进行功能分解与模块描述）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 5.3 用 IPO 或结构图描述各模块的组成结构、算法、模块间的接口关系，
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 以及需求、功能和模块三者之间的交叉参照关系
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 5.4 系统界面详细设计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;6. 数据库系统设计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 6.1 数据库概念设计（E-R 图）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 6.2 数据库逻辑设计（表结构）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 6.3 数据库物理设计（索引 / 分区）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 6.4 数据字典
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;7. 接口设计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 7.1 内部接口（模块间）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 7.2 外部接口（系统间）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 7.3 用户接口（UI）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="三章节-1引言"&gt;三、章节 1：引言
&lt;/h2&gt;&lt;h3 id="31-编写目的"&gt;3.1 编写目的
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;模板&lt;/strong&gt;：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;本文是某项目的详细设计文档，目的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明确系统的功能模块划分和接口关系&lt;/li&gt;
&lt;li&gt;为程序员编码提供&amp;quot;施工图&amp;quot;&lt;/li&gt;
&lt;li&gt;作为测试用例设计的依据&lt;/li&gt;
&lt;li&gt;作为项目验收的标准&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;预期读者&lt;/strong&gt;：项目开发工程师、测试工程师、架构师、产品经理&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="32-背景"&gt;3.2 背景
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;模板&lt;/strong&gt;：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;项目名称：某业务系统
委托单位：某部门
开发单位：某研发部
主管部门：某信息中心&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="33-参考资料"&gt;3.3 参考资料
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;模板&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;序号&lt;/th&gt;
					&lt;th&gt;文档名称&lt;/th&gt;
					&lt;th&gt;作者&lt;/th&gt;
					&lt;th&gt;日期&lt;/th&gt;
					&lt;th&gt;版本&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;需求规格说明书&lt;/td&gt;
					&lt;td&gt;张三&lt;/td&gt;
					&lt;td&gt;2025-09-01&lt;/td&gt;
					&lt;td&gt;V1.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;概要设计文档&lt;/td&gt;
					&lt;td&gt;李四&lt;/td&gt;
					&lt;td&gt;2025-09-10&lt;/td&gt;
					&lt;td&gt;V1.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;数据库设计规范&lt;/td&gt;
					&lt;td&gt;王五&lt;/td&gt;
					&lt;td&gt;2025-08-15&lt;/td&gt;
					&lt;td&gt;V2.0&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="34-术语定义"&gt;3.4 术语定义
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;术语&lt;/th&gt;
					&lt;th&gt;解释&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CRM&lt;/td&gt;
					&lt;td&gt;客户关系管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ERP&lt;/td&gt;
					&lt;td&gt;企业资源计划&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MES&lt;/td&gt;
					&lt;td&gt;制造执行系统&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="四章节-2设计概述"&gt;四、章节 2：设计概述
&lt;/h2&gt;&lt;h3 id="41-任务和目标"&gt;4.1 任务和目标
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：完成某业务系统的详细设计，确保系统可实现性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;100% 覆盖需求规格说明书的功能点&lt;/li&gt;
&lt;li&gt;性能指标：响应时间 &amp;lt; 2s，并发 1000+&lt;/li&gt;
&lt;li&gt;可用性：99.9%&lt;/li&gt;
&lt;li&gt;安全性：通过等保三级&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="42-需求概述"&gt;4.2 需求概述
&lt;/h3&gt;&lt;p&gt;简要说明系统要实现的&lt;strong&gt;核心功能&lt;/strong&gt;（不超过 5 页）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户管理（登录、权限、角色）&lt;/li&gt;
&lt;li&gt;订单管理（创建、查询、修改、删除）&lt;/li&gt;
&lt;li&gt;报表管理（日报、月报、季报）&lt;/li&gt;
&lt;li&gt;系统管理（参数配置、日志审计）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="43-运行环境"&gt;4.3 运行环境
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;操作系统&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Linux 7+ / Windows Server 2016+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Web 服务器&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Nginx 1.20+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;应用服务器&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Tomcat 9 / Spring Boot 内嵌&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;数据库&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;MySQL 8.0+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;缓存&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Redis 6+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;消息队列&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;RabbitMQ / Kafka&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;监控&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Prometheus + Grafana&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;日志&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;ELK（Elasticsearch + Logstash + Kibana）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="44-条件与限制"&gt;4.4 条件与限制
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;必须兼容 IE 11 浏览器（仅老系统迁移）&lt;/li&gt;
&lt;li&gt;数据库必须使用 MySQL（甲方要求）&lt;/li&gt;
&lt;li&gt;单台服务器资源：16 核 32G&lt;/li&gt;
&lt;li&gt;项目周期：6 个月&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="45-详细设计方法和工具"&gt;4.5 详细设计方法和工具
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;设计方法&lt;/strong&gt;：面向对象（OOAD）+ 结构化（SA/SD）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;设计模式&lt;/strong&gt;：MVC、Factory、Strategy、Observer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;设计工具&lt;/strong&gt;：PlantUML、draw.io、Visio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文档工具&lt;/strong&gt;：Confluence + Markdown&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="五章节-3详细需求分析"&gt;五、章节 3：详细需求分析
&lt;/h2&gt;&lt;h3 id="51-功能需求矩阵"&gt;5.1 功能需求矩阵
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;需求 ID&lt;/th&gt;
					&lt;th&gt;需求名称&lt;/th&gt;
					&lt;th&gt;优先级&lt;/th&gt;
					&lt;th&gt;详细说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;FR-001&lt;/td&gt;
					&lt;td&gt;用户登录&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;支持账密、SSO、扫码登录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;FR-002&lt;/td&gt;
					&lt;td&gt;权限管理&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;RBAC 模型&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;FR-003&lt;/td&gt;
					&lt;td&gt;订单创建&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;包含订单明细&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
					&lt;td&gt;&amp;hellip;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="52-非功能需求"&gt;5.2 非功能需求
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类别&lt;/th&gt;
					&lt;th&gt;指标&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;性能&lt;/td&gt;
					&lt;td&gt;响应时间 &amp;lt; 2s，并发 1000+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可用性&lt;/td&gt;
					&lt;td&gt;99.9%（年宕机 &amp;lt; 8.76 小时）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;安全性&lt;/td&gt;
					&lt;td&gt;等保三级&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;兼容性&lt;/td&gt;
					&lt;td&gt;Chrome / Edge / Firefox 最新版&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可维护性&lt;/td&gt;
					&lt;td&gt;模块独立部署&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="53-接口需求"&gt;5.3 接口需求
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内部接口&lt;/strong&gt;：模块 A 调用模块 B 的接口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外部接口&lt;/strong&gt;：与 CRM、ERP、支付的接口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据接口&lt;/strong&gt;：数据库、缓存、文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="六章节-4总体方案确认"&gt;六、章节 4：总体方案确认
&lt;/h2&gt;&lt;h3 id="41-系统总体结构"&gt;4.1 系统总体结构
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;┌────────────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 表现层（Web/App） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ API 网关（Gateway） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 业务服务层（订单 / 用户 / 报表） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 数据访问层（MyBatis / JPA） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 数据层（MySQL / Redis / MQ） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└────────────────────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="42-模块划分"&gt;4.2 模块划分
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;模块编号&lt;/th&gt;
					&lt;th&gt;模块名称&lt;/th&gt;
					&lt;th&gt;职责&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;M-001&lt;/td&gt;
					&lt;td&gt;用户中心&lt;/td&gt;
					&lt;td&gt;登录、权限、SSO&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;M-002&lt;/td&gt;
					&lt;td&gt;订单中心&lt;/td&gt;
					&lt;td&gt;订单生命周期&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;M-003&lt;/td&gt;
					&lt;td&gt;报表中心&lt;/td&gt;
					&lt;td&gt;数据聚合、可视化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;M-004&lt;/td&gt;
					&lt;td&gt;系统中心&lt;/td&gt;
					&lt;td&gt;字典、参数、日志&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="七章节-5系统详细设计核心"&gt;七、章节 5：系统详细设计（核心）
&lt;/h2&gt;&lt;h3 id="71-模块-hipo-图"&gt;7.1 模块 HIPO 图
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;HIPO（Hierarchy plus Input-Process-Output）&lt;/strong&gt; 是经典的结构化设计方法。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;示例：订单中心 HIPO 图&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 订单中心
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌─────────────────┼─────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 订单创建 订单查询 订单修改
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌────┴────┐ ┌───┴───┐ ┌────┴────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │ │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 输入参数 业务规则 输入条件 返回结果 输入参数 业务规则
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="72-模块详细设计"&gt;7.2 模块详细设计
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;每个模块都需要包含&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;1. 模块编号&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;M-002&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;2. 模块名称&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;订单中心&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;3. 输入&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;订单数据 / 用户 ID / 操作类型&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;4. 处理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;业务逻辑描述&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;5. 算法描述&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;伪代码 / 流程图&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;6. 输出&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;订单结果 / 错误码&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="73-模块-1订单创建m-002-001"&gt;7.3 模块 1：订单创建（M-002-001）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1. 模块编号&lt;/strong&gt;：M-002-001&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 模块名称&lt;/strong&gt;：订单创建&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 输入&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;userId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;12345&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;items&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;productCode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;P001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;qty&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;99.00&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;productCode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;P002&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;qty&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;199.00&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;addressId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;A001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;remark&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;请尽快发货&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;4. 处理&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;校验用户登录态&lt;/li&gt;
&lt;li&gt;校验商品库存（每件商品）&lt;/li&gt;
&lt;li&gt;校验地址有效性&lt;/li&gt;
&lt;li&gt;计算订单总金额（含运费、优惠）&lt;/li&gt;
&lt;li&gt;创建订单记录&lt;/li&gt;
&lt;li&gt;冻结库存&lt;/li&gt;
&lt;li&gt;返回订单号&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;5. 算法描述&lt;/strong&gt;（伪代码）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;span class="lnt"&gt;44
&lt;/span&gt;&lt;span class="lnt"&gt;45
&lt;/span&gt;&lt;span class="lnt"&gt;46
&lt;/span&gt;&lt;span class="lnt"&gt;47
&lt;/span&gt;&lt;span class="lnt"&gt;48
&lt;/span&gt;&lt;span class="lnt"&gt;49
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;remark&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 1. 校验登录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;check_login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;401&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;未登录&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 2. 校验库存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_stock&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;stock&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;商品 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; 库存不足&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 3. 校验地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_address&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;地址无效&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 4. 计算金额&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;shipping_fee&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calc_shipping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;discount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calc_discount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;final_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;shipping_fee&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;discount&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 5. 创建订单&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order_no&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;generate_order_no&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;待付款&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;final_total&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;remark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;remark&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order_item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OrderItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;order_item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 6. 冻结库存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;freeze_stock&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;success&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;order_no&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;order_no&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;final_total&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;6. 输出&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;orderNo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SO20250915001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;397.00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;payUrl&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://pay.example.com/...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="74-模块-2订单查询m-002-002"&gt;7.4 模块 2：订单查询（M-002-002）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;userId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;12345&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;size&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;待发货&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;处理&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;分页查询订单主表&lt;/li&gt;
&lt;li&gt;关联查询订单明细&lt;/li&gt;
&lt;li&gt;返回结果&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;list&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;orderNo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SO20250915001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;待发货&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;397.00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;items&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="八章节-6数据库系统设计"&gt;八、章节 6：数据库系统设计
&lt;/h2&gt;&lt;h3 id="81-e-r-图"&gt;8.1 E-R 图
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户 ──&amp;lt; 订单 &amp;gt;── 订单明细 &amp;gt;── 商品
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └──&amp;lt; 支付
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="82-核心表设计"&gt;8.2 核心表设计
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;订单主表（t_order）&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;必填&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;VARCHAR(32)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;主键&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;user_id&lt;/td&gt;
					&lt;td&gt;BIGINT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;用户 ID&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;status&lt;/td&gt;
					&lt;td&gt;VARCHAR(20)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;订单状态&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;total_amount&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;总金额&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;shipping_fee&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;运费&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;discount&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;优惠&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;final_amount&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;实付金额&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;address_id&lt;/td&gt;
					&lt;td&gt;BIGINT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;收货地址 ID&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;remark&lt;/td&gt;
					&lt;td&gt;VARCHAR(500)&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;备注&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;created_at&lt;/td&gt;
					&lt;td&gt;DATETIME&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;创建时间&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;updated_at&lt;/td&gt;
					&lt;td&gt;DATETIME&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;更新时间&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;version&lt;/td&gt;
					&lt;td&gt;INT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;乐观锁版本&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;订单明细表（t_order_item）&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;必填&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;id&lt;/td&gt;
					&lt;td&gt;BIGINT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;主键&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;VARCHAR(32)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;订单号&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;product_code&lt;/td&gt;
					&lt;td&gt;VARCHAR(50)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;商品编码&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;product_name&lt;/td&gt;
					&lt;td&gt;VARCHAR(200)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;商品名称（冗余）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;qty&lt;/td&gt;
					&lt;td&gt;INT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;数量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;price&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;单价&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;amount&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;金额&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;支付表（t_payment）&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;必填&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;id&lt;/td&gt;
					&lt;td&gt;BIGINT&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;主键&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;VARCHAR(32)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;订单号&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;pay_type&lt;/td&gt;
					&lt;td&gt;VARCHAR(20)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;支付方式&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;pay_amount&lt;/td&gt;
					&lt;td&gt;DECIMAL(18,2)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;支付金额&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;pay_status&lt;/td&gt;
					&lt;td&gt;VARCHAR(20)&lt;/td&gt;
					&lt;td&gt;Y&lt;/td&gt;
					&lt;td&gt;支付状态&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;pay_time&lt;/td&gt;
					&lt;td&gt;DATETIME&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;支付时间&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="83-索引设计"&gt;8.3 索引设计
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;表&lt;/th&gt;
					&lt;th&gt;索引&lt;/th&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order&lt;/td&gt;
					&lt;td&gt;PK&lt;/td&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;主键索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order&lt;/td&gt;
					&lt;td&gt;IDX_user_status&lt;/td&gt;
					&lt;td&gt;user_id, status&lt;/td&gt;
					&lt;td&gt;联合索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order&lt;/td&gt;
					&lt;td&gt;IDX_created&lt;/td&gt;
					&lt;td&gt;created_at&lt;/td&gt;
					&lt;td&gt;普通索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order_item&lt;/td&gt;
					&lt;td&gt;PK&lt;/td&gt;
					&lt;td&gt;id&lt;/td&gt;
					&lt;td&gt;主键索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order_item&lt;/td&gt;
					&lt;td&gt;IDX_order&lt;/td&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;普通索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_order_item&lt;/td&gt;
					&lt;td&gt;IDX_product&lt;/td&gt;
					&lt;td&gt;product_code&lt;/td&gt;
					&lt;td&gt;普通索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_payment&lt;/td&gt;
					&lt;td&gt;PK&lt;/td&gt;
					&lt;td&gt;id&lt;/td&gt;
					&lt;td&gt;主键索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;t_payment&lt;/td&gt;
					&lt;td&gt;IDX_order&lt;/td&gt;
					&lt;td&gt;order_no&lt;/td&gt;
					&lt;td&gt;唯一索引&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="84-数据字典"&gt;8.4 数据字典
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;订单状态字典&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;状态码&lt;/th&gt;
					&lt;th&gt;状态名称&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;10&lt;/td&gt;
					&lt;td&gt;待付款&lt;/td&gt;
					&lt;td&gt;订单创建未支付&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;20&lt;/td&gt;
					&lt;td&gt;已付款&lt;/td&gt;
					&lt;td&gt;已支付待发货&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;30&lt;/td&gt;
					&lt;td&gt;已发货&lt;/td&gt;
					&lt;td&gt;已发货待收货&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;40&lt;/td&gt;
					&lt;td&gt;已完成&lt;/td&gt;
					&lt;td&gt;已确认收货&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;50&lt;/td&gt;
					&lt;td&gt;已取消&lt;/td&gt;
					&lt;td&gt;用户主动取消&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;60&lt;/td&gt;
					&lt;td&gt;已退款&lt;/td&gt;
					&lt;td&gt;退款完成&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="九章节-7接口设计"&gt;九、章节 7：接口设计
&lt;/h2&gt;&lt;h3 id="71-restful-api-规范"&gt;7.1 RESTful API 规范
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;统一格式&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2025-09-15T10:00:00Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;traceId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;abc123&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;错误码&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;200&lt;/td&gt;
					&lt;td&gt;成功&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;参数错误&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;未登录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;无权限&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;404&lt;/td&gt;
					&lt;td&gt;资源不存在&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;系统错误&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="72-订单-api-列表"&gt;7.2 订单 API 列表
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方法&lt;/th&gt;
					&lt;th&gt;路径&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;POST&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;创建订单&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;GET&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders/{orderNo}&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;查询订单详情&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;GET&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;分页查询&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;PUT&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders/{orderNo}&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;修改订单&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DELETE&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders/{orderNo}&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;删除订单（仅草稿）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;POST&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders/{orderNo}/pay&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;发起支付&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;POST&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/api/orders/{orderNo}/cancel&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;取消订单&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="73-api-详细设计"&gt;7.3 API 详细设计
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;POST /api/orders 创建订单&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;请求&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-http" data-lang="http"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;POST&lt;/span&gt; &lt;span class="nn"&gt;/api/orders&lt;/span&gt; &lt;span class="kr"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Content-Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;application/json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Authorization&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;Bearer eyJhbGc...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;items&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;productCode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;P001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;qty&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;99.00&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;addressId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;A001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;remark&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;请尽快发货&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;响应&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-http" data-lang="http"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt; &lt;span class="ne"&gt;OK&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Content-Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;application/json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;orderNo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SO20250915001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;198.00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;payUrl&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://pay.example.com/...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;错误码&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;code&lt;/th&gt;
					&lt;th&gt;message&lt;/th&gt;
					&lt;th&gt;触发条件&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;INVALID_PARAMS&lt;/td&gt;
					&lt;td&gt;参数校验失败&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;UNAUTHORIZED&lt;/td&gt;
					&lt;td&gt;未登录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;NO_PERMISSION&lt;/td&gt;
					&lt;td&gt;无下单权限&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;409&lt;/td&gt;
					&lt;td&gt;STOCK_NOT_ENOUGH&lt;/td&gt;
					&lt;td&gt;库存不足&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;SYSTEM_ERROR&lt;/td&gt;
					&lt;td&gt;系统异常&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="十详细设计的常见问题"&gt;十、详细设计的常见问题
&lt;/h2&gt;&lt;h3 id="101-写得太概要"&gt;10.1 写得太&amp;quot;概要&amp;quot;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;症状&lt;/strong&gt;：详细设计文档和概要设计文档内容重复，没有具体到函数 / 表 / 接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：每个模块都必须有&amp;quot;输入 / 处理 / 输出 / 算法描述&amp;quot;4 个要素。&lt;/p&gt;
&lt;h3 id="102-写得太详细"&gt;10.2 写得太&amp;quot;详细&amp;quot;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;症状&lt;/strong&gt;：详细设计文档变成代码注释，文档太长没人看。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：只描述&amp;quot;做什么&amp;quot;和&amp;quot;用什么算法&amp;quot;，不写具体代码。伪代码为主，复杂逻辑用流程图。&lt;/p&gt;
&lt;h3 id="103-不更新"&gt;10.3 不更新
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;症状&lt;/strong&gt;：代码已经改了好几版，详细设计文档还是 v1.0。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;每个迭代更新一次&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;引入变更管理（设计变更需评审）&lt;/li&gt;
&lt;li&gt;详细设计与代码不一致时，&lt;strong&gt;以代码为准&lt;/strong&gt; + 标注 TODO 更新文档&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="104-不评审"&gt;10.4 不评审
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;症状&lt;/strong&gt;：详细设计文档直接进入开发，没有同行评审。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必须经过&lt;strong&gt;至少 2 人&lt;/strong&gt;评审&lt;/li&gt;
&lt;li&gt;评审 checklist：覆盖率、正确性、一致性、可读性&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="十一写在最后"&gt;十一、写在最后
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;详细设计的本质&lt;/strong&gt;是&amp;quot;&lt;strong&gt;将概要变成可施工的图纸&lt;/strong&gt;&amp;quot;——既不能太抽象（程序员看不懂），也不能太具体（变成代码注释）。&lt;/p&gt;

 &lt;/blockquote&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;个人建议&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;新项目起步&lt;/strong&gt;：用本模板的 7 大章节结构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;敏捷项目&lt;/strong&gt;：用轻量版（只保留 3 / 5 / 6 / 7 章节）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;核心模块&lt;/strong&gt;：必须写（订单、支付、库存）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;辅助模块&lt;/strong&gt;：可以只写接口设计&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评审流程&lt;/strong&gt;：至少 2 人同行评审 + 1 人架构师 review&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.ibm.com/docs/en/rational-rose" target="_blank" rel="noopener"
 &gt;概要设计 vs 详细设计（IBM Rational）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://en.wikipedia.org/wiki/HIPO" target="_blank" rel="noopener"
 &gt;HIPO 图设计方法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://openstd.samr.gov.cn/" target="_blank" rel="noopener"
 &gt;软件详细设计国家标准 GB/T 8567-2006&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/alibaba/p3c" target="_blank" rel="noopener"
 &gt;阿里巴巴 Java 开发手册（详设章节）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>架构设计基础：概要设计与详细设计的区别与实践</title><link>https://liangweidonggood.github.io/p/jiagou-sheji-jichu/</link><pubDate>Fri, 30 Oct 2015 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/jiagou-sheji-jichu/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/jiagou-sheji-jichu/image/cover.jpg" alt="Featured image of post 架构设计基础：概要设计与详细设计的区别与实践" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;这是一份关于&amp;quot;概要设计 vs 详细设计&amp;quot;的对比梳理，源于 2015 年前后的架构师培训资料。&lt;strong&gt;为什么把它单独提一篇&lt;/strong&gt;？因为在多数团队里，&lt;strong&gt;&amp;ldquo;概要设计&amp;quot;和&amp;quot;详细设计&amp;quot;的边界是模糊的&lt;/strong&gt;——有人写到伪代码、有人只画个框图，评审会上吵成一团。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="一为什么这篇值得读"&gt;一、为什么这篇值得读
&lt;/h2&gt;&lt;p&gt;很多团队把&amp;quot;设计文档&amp;quot;当成一个文档：写完直接进开发。结果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;评审会上&lt;strong&gt;没人能看完&lt;/strong&gt; 50 页的&amp;quot;设计文档&amp;rdquo;&lt;/li&gt;
&lt;li&gt;设计粒度不统一，&lt;strong&gt;有人写到 SQL，有人只画模块图&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;模块之间的接口没定清楚，&lt;strong&gt;联调时互相甩锅&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;正确做法&lt;/strong&gt;是&lt;strong&gt;先概要、后详细&lt;/strong&gt;——&lt;strong&gt;概要设计解决&amp;quot;分模块、定接口、估工作量&amp;quot;&lt;/strong&gt;，&lt;strong&gt;详细设计解决&amp;quot;模块内算法、流程、状态&amp;quot;&lt;/strong&gt;。两个文档&lt;strong&gt;职责分离、粒度分离、受众分离&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When to use&lt;/strong&gt;：当一个系统超过 3 个人、超过 3 个月、超过 3 个子系统时，&lt;strong&gt;概要设计文档就是必需的&lt;/strong&gt;。否则项目进入开发就是&amp;quot;集体蒙眼摸象&amp;quot;。&lt;/p&gt;
&lt;h2 id="二概要设计-vs-详细设计分界"&gt;二、概要设计 vs 详细设计：分界
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;概要设计&lt;/th&gt;
					&lt;th&gt;详细设计&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;回答的问题&lt;/td&gt;
					&lt;td&gt;系统怎么分？模块怎么交互？&lt;/td&gt;
					&lt;td&gt;模块内部怎么实现？&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;粒度&lt;/td&gt;
					&lt;td&gt;模块、子系统、接口&lt;/td&gt;
					&lt;td&gt;类、函数、算法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;产物&lt;/td&gt;
					&lt;td&gt;分层数据流图、结构图、数据字典&lt;/td&gt;
					&lt;td&gt;流程图、状态图、伪代码、局部变量说明&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;受众&lt;/td&gt;
					&lt;td&gt;架构师、技术总监、项目经理&lt;/td&gt;
					&lt;td&gt;模块开发者本人&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;评审重点&lt;/td&gt;
					&lt;td&gt;模块划分是否合理、接口是否清晰&lt;/td&gt;
					&lt;td&gt;算法是否正确、边界条件是否覆盖&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;改动代价&lt;/td&gt;
					&lt;td&gt;改了概要 → 重新评估工作量&lt;/td&gt;
					&lt;td&gt;改了详细 → 一般不影响工期&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数量级&lt;/td&gt;
					&lt;td&gt;通常 10-50 页&lt;/td&gt;
					&lt;td&gt;一个模块 5-20 页（视复杂度）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;：概要设计是&lt;strong&gt;多人协作的契约&lt;/strong&gt;——3 个开发者按概要分工，每人拿到的接口定义清晰到**&amp;ldquo;传什么、返回什么、什么时候调&amp;rdquo;&lt;strong&gt;。详细设计是&lt;/strong&gt;单人实现的笔记**——算法怎么写、变量怎么命名、异常怎么抛，是开发者自己的事。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="三概要设计的-4-个原则"&gt;三、概要设计的 4 个原则
&lt;/h2&gt;&lt;p&gt;源文档里写得很清楚：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;评价总体设计的可行性&lt;/strong&gt;——概要设计是判断&amp;quot;这个项目能不能做、按什么方案做&amp;quot;的依据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查模块是否完整&lt;/strong&gt;——保证每个功能都有对应模块实现，&lt;strong&gt;不能有&amp;quot;无主功能&amp;quot;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估开发工作量、指导开发计划&lt;/strong&gt;——尤其在不写详细设计的情况下，&lt;strong&gt;模块数 × 经验系数 = 工期&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免两个误区&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;❌ 过于重视业务流程（应该在需求里画，不该在概要里写）&lt;/li&gt;
&lt;li&gt;❌ 过于重视细节实现（应该在详细里写，不该在概要里写）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="四概要设计的内容清单"&gt;四、概要设计的内容清单
&lt;/h2&gt;&lt;h3 id="41-总述"&gt;4.1 总述
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;需求或目标（讲一下事情的起源）、环境、局限&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;这是给评审者**30 秒内理解&amp;quot;为什么做这个系统&amp;quot;**的入口。&lt;/p&gt;
&lt;h3 id="42-总体设计"&gt;4.2 总体设计
&lt;/h3&gt;&lt;p&gt;从全局角度说：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;组织结构&lt;/li&gt;
&lt;li&gt;功能&lt;/li&gt;
&lt;li&gt;处理流程&lt;/li&gt;
&lt;li&gt;有哪些模块&lt;/li&gt;
&lt;li&gt;模块间的关系&lt;/li&gt;
&lt;li&gt;运行环境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;输出图&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统结构图&lt;/li&gt;
&lt;li&gt;系统流程图&lt;/li&gt;
&lt;li&gt;数据流程图&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="43-外部接口"&gt;4.3 外部接口
&lt;/h3&gt;&lt;p&gt;总体说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;外部用户&lt;/li&gt;
&lt;li&gt;软、硬件接口（可用资源）&lt;/li&gt;
&lt;li&gt;第三方系统&lt;/li&gt;
&lt;li&gt;网络协议&lt;/li&gt;
&lt;li&gt;数据格式&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="44-模块设计核心"&gt;4.4 模块设计（核心）
&lt;/h3&gt;&lt;p&gt;每个模块&amp;quot;做什么&amp;quot;、简要说明&amp;quot;怎么做&amp;quot;（输入、输出、处理逻辑、与其它模块或系统的接口），处在什么逻辑位置、物理位置。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;模块描述&lt;/strong&gt;——说明哪些模块实现了哪些功能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块层次结构&lt;/strong&gt;——可使用某个视角的软件框架图表达&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块间的关系&lt;/strong&gt;——模块间依赖关系描述、通信机制描述&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块的核心接口&lt;/strong&gt;——说明模块传递的信息、信息的结构（&lt;strong&gt;重点！必须写到&amp;quot;参数名+类型+含义&amp;quot;&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;处理方式设计&lt;/strong&gt;——说一些满足功能和性能的算法（&lt;strong&gt;只写算法思想，不写实现&lt;/strong&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="45-数据结构"&gt;4.5 数据结构
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;逻辑结构&lt;/li&gt;
&lt;li&gt;物理结构&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="46-容灾设计"&gt;4.6 容灾设计
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;出错信息&lt;/li&gt;
&lt;li&gt;出错处理&lt;/li&gt;
&lt;li&gt;降级方案&lt;/li&gt;
&lt;li&gt;数据备份与恢复&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="47-监控设计"&gt;4.7 监控设计
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;运行模块组合&lt;/li&gt;
&lt;li&gt;控制&lt;/li&gt;
&lt;li&gt;时间&lt;/li&gt;
&lt;li&gt;告警阈值&lt;/li&gt;
&lt;li&gt;日志规范&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="48-用户界面设计"&gt;4.8 用户界面设计
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;界面布局&lt;/li&gt;
&lt;li&gt;交互流程&lt;/li&gt;
&lt;li&gt;UI 规范引用&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="49-安全设计"&gt;4.9 安全设计
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;认证&lt;/li&gt;
&lt;li&gt;授权&lt;/li&gt;
&lt;li&gt;加密&lt;/li&gt;
&lt;li&gt;审计&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="410-其它设计"&gt;4.10 其它设计
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;国际化&lt;/li&gt;
&lt;li&gt;性能&lt;/li&gt;
&lt;li&gt;兼容性&lt;/li&gt;
&lt;li&gt;可扩展性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="411-制定规范"&gt;4.11 制定规范
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;设计原则&lt;/li&gt;
&lt;li&gt;代码规范&lt;/li&gt;
&lt;li&gt;接口规约&lt;/li&gt;
&lt;li&gt;命名规则&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="五概要设计的关键产出物"&gt;五、概要设计的关键产出物
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;产出物&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
					&lt;th&gt;形式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;分层数据流图&lt;/td&gt;
					&lt;td&gt;描述系统从输入到输出的加工过程&lt;/td&gt;
					&lt;td&gt;图&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;结构图&lt;/td&gt;
					&lt;td&gt;描述模块的层次和调用关系&lt;/td&gt;
					&lt;td&gt;图&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据字典&lt;/td&gt;
					&lt;td&gt;描述系统中所有数据项的含义、类型、长度、取值范围&lt;/td&gt;
					&lt;td&gt;表&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;模块清单&lt;/td&gt;
					&lt;td&gt;列出所有模块及功能&lt;/td&gt;
					&lt;td&gt;表&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;接口清单&lt;/td&gt;
					&lt;td&gt;列出所有模块间接口&lt;/td&gt;
					&lt;td&gt;表&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;关键流程说明&lt;/td&gt;
					&lt;td&gt;文字描述关键业务如何流转&lt;/td&gt;
					&lt;td&gt;文字 + 流程图&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="六详细设计模块内的实现"&gt;六、详细设计：模块内的实现
&lt;/h2&gt;&lt;p&gt;详细设计阶段，&lt;strong&gt;每个模块可以分给不同人并行设计&lt;/strong&gt;。设计者工作对象是&lt;strong&gt;一个模块&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;根据概要设计赋予的局部任务和对外接口&lt;/li&gt;
&lt;li&gt;设计并表达出模块的算法、流程、状态转换&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="61-详细设计的关键产出"&gt;6.1 详细设计的关键产出
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;流程图&lt;/strong&gt;——模块内主要处理流程&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态图&lt;/strong&gt;——模块涉及的状态机&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部变量&lt;/strong&gt;——模块内使用的临时变量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键函数签名&lt;/strong&gt;——参数、返回值、异常&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="62-详细设计-vs-概要设计的回退规则"&gt;6.2 详细设计 vs 概要设计的回退规则
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;如果发现有结构调整（如分解出子模块等）的必要，&lt;strong&gt;必须返回到概要设计阶段&lt;/strong&gt;，将调整反应到概要设计文档中，而不能就地解决、不打招呼。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why&lt;/strong&gt;：详细设计改了不影响别人，但&lt;strong&gt;概要设计改了影响所有模块的接口&lt;/strong&gt;。默默改概要设计 = 让所有下游模块的接口定义失效。&lt;/p&gt;
&lt;h2 id="七概要设计的-5-个常见坑"&gt;七、概要设计的 5 个常见坑
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;接口定义不细&lt;/strong&gt;——只写&amp;quot;调用模块 A&amp;quot;，不写&amp;quot;传什么、返回什么、什么时机调&amp;quot;。&lt;strong&gt;联调时两套理解&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据字典缺失&lt;/strong&gt;——文档里所有&amp;quot;用户 ID&amp;quot;都是一个意思吗？长度？类型？枚举值？没有数据字典就各写各的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;过度细化&lt;/strong&gt;——把详细设计的内容写到概要设计，&lt;strong&gt;评审会变成代码 review&lt;/strong&gt;，没人能看完&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不画部署图&lt;/strong&gt;——只有逻辑架构，没有物理部署。运维拿不到&amp;quot;这台机器跑什么&amp;quot;的答案&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不写非功能&lt;/strong&gt;——性能、可用性、安全、合规等都不写，&lt;strong&gt;验收时客户发现没满足&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="八核心-5-点提炼"&gt;八、核心 5 点提炼
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;概要设计是&amp;quot;分模块、定接口、估工期&amp;quot;的契约&lt;/strong&gt;——它的粒度停在模块和接口，&lt;strong&gt;不写到类和方法&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;详细设计是&amp;quot;单模块的实现笔记&amp;quot;&lt;/strong&gt;——粒度到函数和算法，&lt;strong&gt;单模块可并行设计&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据结构 &amp;gt; 算法&lt;/strong&gt;——概要设计阶段&lt;strong&gt;数据字典比算法重要&lt;/strong&gt;，因为数据结构是模块间共享的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;改了概要必须通知所有相关人&lt;/strong&gt;——默默改概要 = 默默改契约 = 撕毁合作基础&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不写详细设计时，概要要写得更细&lt;/strong&gt;——反之则要&lt;strong&gt;保留详细设计的预算&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="九when-to-use"&gt;九、When to use
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;场景&lt;/th&gt;
					&lt;th&gt;必备设计&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1 人、1 个月、1 模块&lt;/td&gt;
					&lt;td&gt;不需要正式设计文档&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2-3 人、2-3 个月、单一系统&lt;/td&gt;
					&lt;td&gt;概要设计&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3+ 人、3+ 月、多子系统&lt;/td&gt;
					&lt;td&gt;概要设计 + 详细设计&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;多团队、外部审计、合规项目&lt;/td&gt;
					&lt;td&gt;概要设计 + 详细设计 + 评审记录 + 变更记录&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#" &gt;项目全流程模板/2设计/1概要设计.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#" &gt;项目全流程模板/2设计/设计.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#" &gt;项目全流程/2设计/设计.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2024-视角"&gt;2024+ 视角
&lt;/h2&gt;&lt;p&gt;2015 年的&amp;quot;概要 vs 详细&amp;quot;分界到 2024-2026 年依然成立，但&lt;strong&gt;形式与协作方式&lt;/strong&gt;发生了几个关键变化：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;C4 模型取代大段文字&lt;/strong&gt;：Simon Brown 的 C4 模型（Context → Container → Component → Code）成为软件架构图的&lt;strong&gt;事实标准&lt;/strong&gt;。一张 C4 上下文图顶 50 页&amp;quot;总体设计说明&amp;quot;。&lt;strong&gt;Structurizr DSL&lt;/strong&gt; + &lt;strong&gt;Structurizr Lite&lt;/strong&gt; 是写 C4 的工具首选。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADR（Architecture Decision Records）正式成为评审产物&lt;/strong&gt;：每个重要决策一个 ADR（Markdown 文件 + git 管理），模板：
&lt;ul&gt;
&lt;li&gt;状态：提议 / 已接受 / 已废弃 / 已取代&lt;/li&gt;
&lt;li&gt;上下文：要解决什么问题&lt;/li&gt;
&lt;li&gt;决策：选了哪个方案&lt;/li&gt;
&lt;li&gt;后果：trade-off、风险、未来影响&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构评估从 ATAM → ADR + Fitness Functions&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;2015 年前用 &lt;strong&gt;ATAM（架构权衡分析法）&lt;/strong&gt; 做架构评审&lt;/li&gt;
&lt;li&gt;2024 年用 &lt;strong&gt;ADR 累积 + 持续验证&lt;/strong&gt;：每个架构属性（性能 / 可用性 / 安全）有对应的 &lt;strong&gt;Fitness Function&lt;/strong&gt;（自动测试），CI 中持续验证&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;云原生架构让&amp;quot;物理部署&amp;quot;和&amp;quot;逻辑架构&amp;quot;分离&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;概要设计要写&amp;quot;逻辑架构&amp;quot; + &amp;ldquo;物理部署（K8s/Serverless）&amp;rdquo; 两层&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt;（Terraform / Pulumi / Crossplane）让部署图也是 git 的一部分&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;微服务架构的概要设计新要素&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;服务边界（按业务能力 / DDD 子域）&lt;/li&gt;
&lt;li&gt;通信模式（同步 REST/gRPC vs 异步事件）&lt;/li&gt;
&lt;li&gt;数据一致性（Saga / Outbox / CDC）&lt;/li&gt;
&lt;li&gt;可观测性（OTel / RED/USE 指标）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构师角色升级&lt;/strong&gt;：从&amp;quot;画图 + 评审&amp;quot;到&amp;quot;&lt;strong&gt;决策 + 治理 + 演进&lt;/strong&gt;&amp;quot;——C4 + ADR + Fitness Function + ADR 看板 + 架构腐化检测（SonarQube / ArchUnit）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;概要 vs 详细&amp;quot;边界依然不变&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;概要：模块 / 接口 / 部署 / 数据流（C4 Level 1-3）&lt;/li&gt;
&lt;li&gt;详细：类 / 函数 / 算法 / 状态机（C4 Level 4 + 序列图）&lt;/li&gt;
&lt;li&gt;永远不要在概要设计里写伪代码——&lt;strong&gt;让代码本身就是详细设计&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;2015 视角 vs 2024 视角对照&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;2015&lt;/th&gt;
					&lt;th&gt;2024&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;图表&lt;/td&gt;
					&lt;td&gt;Visio / Rational Rose&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;C4 + Structurizr + Mermaid&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;决策记录&lt;/td&gt;
					&lt;td&gt;邮件 / Word 评审&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;ADR（git 管理）&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;物理部署&lt;/td&gt;
					&lt;td&gt;表格 + Visio&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Terraform / Helm / Crossplane&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构评估&lt;/td&gt;
					&lt;td&gt;ATAM 评审会&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;ADR + Fitness Function + 持续验证&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构腐化&lt;/td&gt;
					&lt;td&gt;人工 review&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;ArchUnit + SonarQube&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;：2015 年这篇&amp;quot;先概要、后详细&amp;quot;的方法论&lt;strong&gt;至今仍是行业最佳实践&lt;/strong&gt;，但工具从 Visio 转向 C4 + ADR + IaC，治理从一次性评审转向持续验证。&lt;/p&gt;</description></item></channel></rss>