CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
软件设计与架构入门/课时/路线图对照复习
RawBlame
课时目录12 节

软件设计与架构入门

  1. 01整洁代码
  2. 02设计原则
  3. 03面向对象
  4. 04编程范式
  5. 05设计模式
  6. 06架构原则
  7. 07架构风格
  8. 08架构模式
  9. 09领域驱动设计
  10. 10企业模式
  11. 11综合架构练习
  12. 12路线图对照复习

路线图对照复习

与 software-architect-essentials 分工对照。

30 分钟

路线图对照复习:software-design-architecture 知识图谱

这一课你将能做到

  1. 把本课程 11 个课时的知识点映射到 software-design-architecture 路线图节点
  2. 说出本课程与 software-architect-essentials 的分工边界
  3. 用一张表自查:哪些节点已掌握,哪些需要补

为什么要学

路线图是"地图",课程是"导航"。本课程(software-design-architecture-essentials)覆盖设计层面:整洁代码、设计原则、OOP、范式、模式、架构原则、架构风格、架构模式、DDD、企业模式、综合练习。software-architect-essentials 覆盖架构层面:微服务、云原生、 DevOps、安全、性能。两者互补,不重复。

先建立图像

software-design-architecture 路线图
─────────────────────────────────
├─ 整洁代码(sda-clean)          ← 本课程
├─ 设计原则(sda-principles)     ← 本课程
├─ 面向对象(sda-oop)            ← 本课程
├─ 编程范式(sda-paradigms)      ← 本课程
├─ 设计模式(sda-patterns)       ← 本课程
├─ 架构原则(sda-arch-principles)← 本课程
├─ 架构风格(sda-arch-styles)    ← 本课程
├─ 架构模式(sda-arch-patterns)  ← 本课程
├─ DDD(sda-ddd)                 ← 本课程
├─ 企业模式(sda-enterprise)     ← 本课程
├─ 综合练习(sda-practice)       ← 本课程
└─ 架构师技能                      ← software-architect-essentials
   ├─ 微服务治理
   ├─ 云原生部署
   ├─ 性能调优
   └─ 安全架构

跟着做

步骤 1:知识点映射表

课时路线图节点核心交付掌握标准
sda-cleanclean-code-principles命名、函数、注释纪律能重构 80 行函数到 5 个小函数
sda-principlessolidSOLID 五条原则能举出判题平台每个原则的例子
sda-oopinheritance/polymorphism继承、组合、多态能判断一段关系该用继承还是组合
sda-paradigmsfunctional-programming函数式、反应式能用 Stream 写统计,用 Reactor 写回调
sda-patternsgof-design-patterns工厂、策略、观察者等能识别判题平台用了哪些模式
sda-arch-principlescoupling-and-cohesion高内聚低耦合能用 CK 度量判断类设计
sda-arch-styleslayered-architectures分层、六边形、CQRS能画出判题平台的架构图
sda-arch-patternsevent-sourcing/cqrsSaga、Outbox能实现 Outbox 可靠投递
sda-ddddomain-models实体、值对象、聚合能区分实体和值对象
sda-enterpriseenterprise-patterns事务脚本、领域模型
能判断业务该用哪种模式
sda-practicearchitectural-patternsC4 + ADR能画 C4 图、写 ADR

步骤 2:与 software-architect-essentials 的分工

本课程(design)                  software-architect-essentials(architect)
─────────────────                 ─────────────────────────
怎么写好一个类                     怎么管好一个系统
怎么组织类之间关系                 怎么组织服务之间关系
怎么保证代码可维护                 怎么保证系统可扩展
怎么让业务规则显式化               怎么让技术选型合理化

举例:本课程讲"用六边形架构让核心不依赖框架";architect-essentials 讲"用 Kubernetes 部署微服务"。前者是设计,后者是架构。

步骤 3:自查清单

□ 整洁代码:能说出 5 个坏味道并给出重构方案
□ SOLID:能举出判题平台每个原则的具体代码
□ OOP:能画出 Submission 聚合的类图
□ 范式:能用 Stream 重写一个 for 循环统计
□ 模式:能说出判题平台用了哪些 GoF 模式
□ 架构原则:能用 LCOM/CBO 判断一个类
□ 架构风格:能画出判题平台的 C4 L2 容器图
□ 架构模式:能实现 Saga 的补偿逻辑
□ DDD:能区分实体、值对象、聚合根
□ 企业模式:能判断"提交判题"该用事务脚本还是领域模型
□ 综合练习:能写一个"为什么选六边形"的 ADR

全部打勾 = 本课程毕业;有缺项 = 回到对应课时补课。

讲清楚要点

  1. 路线图是索引:每个节点对应一个课时,课时有代码和练习。
  2. 本课程是"设计":聚焦代码级和类级决策;architect-essentials 是"架构",聚焦系统级决策。
  3. 自查清单是验收标准:不是"学过",是"能用"。
  4. 知识是网不是线:SOLID 和 DDD 相互支撑,模式和企业模式相互补充。
  5. 持续复习:技术会忘,但"怎么判断"的能力会留下。定期回来自查。

你可能会懵的地方

  • 学完本课程能直接做架构师吗? 不能。本课程是"设计基础",架构师还需要系统级知识(微服务、云原生、性能、安全),那是 software-architect-essentials 的内容。
  • 两个课程有重叠吗? 有少量重叠(如都提到 CQRS),但视角不同:本课程讲"怎么在代码里实现 CQRS",architect-essentials 讲"什么时候该用 CQRS、用什么基础设施"。
  • 学完本课程能应付面试吗? 能应付设计类面试(OOD、设计模式、DDD);架构类面试(微服务、分布式)还需要 architect-essentials。
  • 怎么判断自己真的掌握了? 能给同事讲清楚,能重构一段烂代码,能写 ADR 说明为什么这样设计。说不出来 = 没掌握。

错法对照

错法问题正解
只看课不动手知识是幻觉每课的"跟着做"必须敲一遍
学完就扔遗忘曲线每月回来自查清单
混淆两个课程边界学重复或学漏记住:本课程管设计,architect 管架构
只背概念不写代码面试露馅每个知识点配一个判题平台例子
追求"学完"不追求"掌握"虚假进度自查清单全部打勾才算完

卡点急救

  1. 某个知识点模糊:回到对应课时,重新做"跟着做"的代码练习。
  2. 不知道两个课程怎么选:先做本课程(设计基础),再做 architect-essentials(架构进阶)。
  3. 面试前快速复习:看本课的"知识点映射表"和"自查清单",针对性补漏。

面试常问

  • 你学过哪些设计原则?能举例吗? 答:SOLID 五条。判题平台里,JudgeEngine 用策略模式实现 OCP;SubmissionRepository 接口实现 DIP;NotificationService 独立实现 SRP。
  • DDD 在你项目里怎么落地? 答:Submission 是聚合根,JudgeResult 是值对象,用户和判题是两个限界上下文,通过 SubmissionJudged 领域事件协作。
  • 你怎么保证代码质量? 答:整洁代码(命名、小函数)、SOLID(接口隔离、依赖倒置)、设计模式(策略、观察者)、DDD(聚合保护规则)、ADR(记录关键决策)。

自测三问

  1. 本课程和 software-architect-essentials 的分工边界是什么?
  2. 用一句话概括本课程 11 个课时的核心交付。
  3. 如果只能保留 3 个知识点,你保留哪 3 个?为什么?

小结一句话

路线图是地图,课程是导航,自查清单是验收;掌握不是"学过",是"能讲、能用、能重构"。

延伸

  • software-design-architecture 路线图
  • software-architect-essentials 课程
  • 《架构整洁之道》Robert C. Martin
  • 下一课:进入 software-architect-essentials,学习微服务与云原生架构。
加载本节练习…
← 上一课综合架构练习