架构师训练营第十周作业
一、根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图
二、关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
中台架构是业务架构中分层架构的一种设计模式,是一种业务上的设计思想;
微服务架构是技术架构中的一种设计模式,是对应用进行服务拆分和管理的一种设计模式;
领域驱动设计是指导技术架构落地过程中的一种设计原则或者说设计方法,它的本质就是面向对象编程的一种实践,也就是知道到底如何进行对象的划分;
组件设计原则是在代码开发层面,在一个模块或者服务内某些类或者方法的一种设计指导原则。
四个概率都是基于“高内聚、低耦合”这个软件设计第一性原则在不同领域的一种实践。
三、根据当周学习情况,完成一篇学习总结
1、微服务设计思考
业界优秀的软件设计实践都是基于“高内聚、低耦合”这个软件设计第一性原则进行的。
随着软件规模的增加,如何进行合理的拆分、划分软件职责和边界是软件设计过程中一直在研究和探讨的问题。但软件设计也没有银弹,过多的设计和拆分也会带来管理的复杂。所以要合理的使用技术,合理的使用都是基于对业务的深刻理解。所以我们在软件设计时,应该从上往下进行逐层设计:
业务架构->应用架构->技术架构->代码结构
目前业界最多的实践:中台->B/S 架构->微服务->组件
但首先还是要先明确业务的架构和规模,不能简单堆砌技术,可能导致得不偿失。
微服务章节重点掌握:
网关、边车模式、CQRS、事件溯源、断路器
2、在代码组件设计章节的重要原则:
内聚原则:
复用发布等同原则:希望别人怎么依赖,就怎么发布
主版本是不向前兼容的重大修订;次版本是可向前兼容的重大功能修订;修订号是不重要的功能修订或 bug 修复
共同封闭原则:同时修改的类就在一个组件中
共同复用原则:不要强迫用户依赖他们不需要的组件
耦合原则:
无循环依赖原则:依赖不应该出现环
稳定依赖原则:不稳定组件依赖稳定组件,依赖指向稳定
稳定抽象原则:稳定的组件是抽象的,为不稳定组件设计一个稳定的组件(比如抽象一个稳定接口)
康威原则:
在做了架构设计以后,要达到最优的效果,最好对组织架构也进行相应的调整。组织架构对技术落地有重要的作用。
评论