Logo
☆☆☆☆☆
0.0
Beginner
6h 45m

Web 应用的六边形软件架构

本课程将全面讲解如何采用六边形架构(Hexagonal Architecture)风格构建Web应用程序。六边形架构通过将逻辑封装在应用程序的不同层次中,实现了关注点分离,从而提升了代码的隔离性、可测试性以及对业务核心代码的控制能力。 你将学习如何以清晰且易于维护的方式设计软件模块和完整的应用程序,同时掌握在特定应用场景和约束条件下选择并应用合适技术方案的能力。 完成本课程后,你将更深入地理解软件架构的实现方法,这是每位高级开发人员必备的核心技能。

14 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Web 应用的六边形软件架构
本课程将全面讲解如何采用六边形架构(Hexagonal Architecture)风格构建Web应用程序。六边形架构通过将逻辑封装在应用程序的不同层次中,实现了关注点分离,从而提升了代码的隔离性、可测试性以及对业务核心代码的控制能力。 你将学习如何以清晰且易于维护的方式设计软件模块和完整的应用程序...

WHAT YOU'LL LEARN

理解分层架构的常见问题,以及六边形架构如何通过依赖倒置实现关注点分离

Content

14 Lessons • 0 Quizzes • 0 Challenges

在开始之前
  1. 1

    简介

  2. 2

    示例应用程序

分层架构有什么问题?
  1. 1

    促进以数据库为中心的设计

  2. 2

    容易走捷径

  3. 3

    变得难以测试

  4. 4

    隐藏了用例

  5. 5

    使并行工作变得困难

  6. 6

    结论:分层架构有什么问题?

  7. 7

    测验:分层架构有什么问题?

结论
  1. 1

    确定架构风格

反转依赖关系
  1. 1

    单一职责原则

  2. 2

    副作用一览表

  3. 3

    依赖倒置原则

  4. 4

    整洁架构

  5. 5

    六边形架构

  6. 6

    结论:反转依赖关系

  7. 7

    测验:依赖反转

附录
  1. 1

    附录 I

组织代码
  1. 1

    按层级组织

  2. 2

    按功能组织

  3. 3

    具有架构表达力的包结构

  4. 4

    依赖注入的作用

  5. 5

    结论:代码的组织

  6. 6

    测验:代码组织

实现一个用例
  1. 1

    实现领域模型

  2. 2

    一个简明扼要的用例

  3. 3

    验证输入

  4. 4

    构造函数的威力

  5. 5

    不同用例下的不同输入模型

  6. 6

    验证业务规则

  7. 7

    富领域模型与贫血模型

  8. 8

    不同用例下的不同输出模型

  9. 9

    只读使用场景怎么办?

  10. 10

    结论:实现一个用例

  11. 11

    测验:实现一个用例

实现一个 Web 适配器
  1. 1

    使用 Web 适配器实现依赖倒置

  2. 2

    Web适配器的职责

  3. 3

    切片控制器

  4. 4

    结论:实现一个Web适配器

  5. 5

    测验:实现一个Web适配器

实现持久化适配器
  1. 1

    通过持久化适配器实现依赖倒置

  2. 2

    持久化适配器的职责

  3. 3

    切片端口接口

  4. 4

    切片持久化适配器

  5. 5

    Spring Data JPA 示例

  6. 6

    数据库事务

  7. 7

    结论:实现持久化适配器

  8. 8

    测验:实现持久化适配器

测试架构元素
  1. 1

    测试金字塔

  2. 2

    使用单元测试测试领域实体

  3. 3

    使用单元测试测试用例

  4. 4

    通过集成测试来测试 Web 适配器

  5. 5

    使用集成测试测试持久化适配器

  6. 6

    通过系统测试验证主路径

  7. 7

    测试做到什么程度才算足够?

  8. 8

    结论:测试架构元素

  9. 9

    测验:测试架构元素

边界之间的映射
  1. 1

    “无映射”策略

  2. 2

    “双向”映射策略

  3. 3

    “完整”映射策略

  4. 4

    “单向”映射策略

  5. 5

    何时使用哪种映射策略?

  6. 6

    结论:边界之间的映射

  7. 7

    测验:边界之间的映射

组装应用程序
  1. 1

    为什么需要组装应用程序?

  2. 2

    通过纯代码组装

  3. 3

    通过 Spring 的类路径扫描进行组装

  4. 4

    通过 Spring 的 Java 配置进行组装

  5. 5

    结论:组装应用程序

  6. 6

    测验:组装应用程序

强制实施架构边界
  1. 1

    边界与依赖关系

  2. 2

    可见性修饰符

  3. 3

    编译后检查

  4. 4

    构建产物

  5. 5

    结论:强制实施架构边界

  6. 6

    测验:强制实施架构边界

有意识地走捷径
  1. 1

    为什么像“破窗效应”这样的捷径是有害的?

  2. 2

    保持代码整洁的责任

  3. 3

    在用例之间共享模型

  4. 4

    使用领域实体作为输入或输出模型

  5. 5

    跳过传入端口

  6. 6

    跳过应用服务

  7. 7

    结论:有意识地走捷径

  8. 8

    测验:有意识地使用捷径

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)