跳转至

软件工程核心知识复习

软件工程是区分"写代码的人"和"做工程的人"的核心能力——它解决的不是"代码能不能跑",而是"系统能不能长期演进、团队能不能高效协作"。


知识结构

mindmap
    root((软件工程核心))
        设计原则
            SOLID 五大原则
            DRY 不重复
            KISS 保持简单
            YAGNI 不过度设计
        架构设计
            单体架构
            微服务架构
            DDD 领域驱动
            CAP 理论
        代码质量
            代码坏味道识别
            重构手法
            测试金字塔
        工程实践
            CI/CD 持续集成
            监控与可观测性
            系统设计方法论

知识点导航

# 知识点 核心内容 重要程度
1 SOLID 原则 SRP / OCP / LSP / ISP / DIP ⭐⭐⭐⭐⭐
2 软件架构演进 单体 vs 微服务、核心组件 ⭐⭐⭐⭐⭐
3 DDD 领域驱动设计 贫血/充血模型、聚合根、限界上下文 ⭐⭐⭐⭐
4 CAP 理论与 BASE 理论 CP vs AP 选型、最终一致性 ⭐⭐⭐⭐⭐
5 代码质量与重构 坏味道识别、重构手法、测试金字塔 ⭐⭐⭐⭐
6 CI/CD 持续集成与交付 流水线、蓝绿/金丝雀/滚动发布 ⭐⭐⭐⭐
7 系统设计方法论 答题框架、常见错误避坑 ⭐⭐⭐⭐⭐

核心问题速查

问题 关键答案 详见
SOLID 哪条最重要? OCP 是核心目标,其他四条是实现手段 SOLID 原则
微服务 vs 单体如何选? 初创用单体,团队 > 10 人再考虑拆分 软件架构演进
贫血模型 vs 充血模型? 复杂业务用充血,简单 CRUD 用贫血 DDD 领域驱动设计
CAP 中 P 为何不可放弃? 网络分区客观存在,P 是前提 CAP 理论与 BASE 理论
何时需要重构? 方法 > 20 行、类 > 200 行、相同代码出现 3 次 代码质量与重构
系统设计如何答题? 需求澄清 → 容量估算 → 架构 → DB → 接口 → 扩展性 系统设计方法论

一句话口诀

SOLID 是设计准则,DDD 是业务建模,CAP 是分布式选型,CI/CD 是工程实践,测试金字塔是质量保障。