Day 28: 服务:伟大与微小 (待改进中... )

以服务为导向(Service-Oriented)的『架构』和微服务(MicroService)『架构』最近变得非常流行。原因包括以下几点:

  • 服务似乎彼此强烈解耦
    • 我们将会看到,这只是部分正确
  • 服务似乎支援开发和部署的独立性
    • 我们将再次看到,这只是部分正确

取自: Clean Architecture (p.199)

CH27: 服务:伟大与微小 (Services: Great and Small)

https://ithelp.ithome.com.tw/upload/images/20211013/20138643zowAJCbesf.png

思考:服务是架构?

系统的架构被定义为通过使用边界将高层级策略与低层级策略分开,并考虑到依赖规则。但是服务本身仅将系统的行为划分为不同的部分

解耦的谬误 (The Decoupling Fallacy)

资料仍然是强烈耦合的...

独立开发和部署的谬误 (The Fallacy of Independent Development and Deployment)

DevOps
Scalable
服务并不是唯一选择

案例思考:计程车队系统

  • 制图...
  • 有多少个服务必须修改以实作出这次的 Features 呢? 全部
    • 也就是,这些服务全都是耦合的,无法独立开发、部署和维护

横切面关注问题

https://ithelp.ithome.com.tw/upload/images/20211013/20138643owrLw0EJig.png

https://ithelp.ithome.com.tw/upload/images/20211013/20138643QPejnd5vCq.png

太深奥了 理解中QQ...

基於元件的服务


P.S. 本章主要与 SOA, MicroService, AOP 架构有关... 如果没有多年中大型系统实作经验的话很难懂... 有兴趣深入研究的读者可以参考 Reference

Reference

Clean Architecture -> PART V: Architecture
MicroservicePrerequisites
Microservices
You Get Microservice Decoupling Wrong!
什麽是AOP?为什麽要AOP?
面向对象困境之:横切关注点
Cross Cutting Concerns
来谈谈 AOP (Aspect-Oriented Programming) 的精神与各种主流实现模式的差异
Managing Cross Cutting Concerns - The Logger and Logging


<<:  Day 28 - styled-components 笔记3

>>:  [DAY28] 战略设计的别扭事件

时间管理

你的时间不是你的时间 当年当上管理者几个月之後,突然感觉到一阵茫然。我会发现都过了一个季了,为什麽...

新新新手阅读 Angular 文件 - Router - pathMatch(2) - Day28

本文内容 接续,Day27 的内容,纪录阅读有关 Angular Route 的 pathMatch...

Eloquent ORM - 一对一关联

Eloquent 可以在 Model 之间建立关联查询,这样可以藉由这些关联快速查询出所需的资料。 ...

从 JavaScript 角度学 Python(20) - CSV

前言 前一章节简单的聊了一下 JSON 之後,接下来我想额外补充一个关於 CSV 档案处理的部分,而...

[Day 13] Forensics 小进阶

我都是睡前写铁人文, 每天都是现场产文:) 所以在写铁人时就察觉一天又要过了 很好现在11:03分我...