极客时间架构师培训 1 期 - 第 10 周作业
1、根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
2、关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
1、中台架构
首先谈及什么是中台?
以用户为中心的持续规模化创新,是中台建设的核心目标。企业的用户响应能力和规模化创新能力,是互联网时代企业综合竞争力的核心体现。平台化包括中台化只是帮助企业达到这个目标的手段,并不是目标本身。中台(⽆论是技术中台、业务中台还是组织中台)的建设,根本上是为了解决企业响应力困境, 弥补创新驱动需要快速变化的前台和稳定可靠驱动需要变化周期相对较慢的后台之间的矛盾,提供⼀个中间层来适配前台与后台的配速问题,打通并顺滑链接前台需求与后台资源,帮助企业从整体上不断提升用户响应力。
中台化”就是“利用平台化的思维和手段梳理、识别、沉淀与复用企业级核心能力的过程”。
中台架构是站在企业的高度,对于企业业务能力,数字化能力的整体规划,更偏重于企业整个或者多个产品线,业务能力的设计规划;
2、领域驱动设计
现代系统一般涉及的业务流程多,系统交互场景丰富,为了合理切分业务领域,恰当定义业务边界,并以此开发出“高内聚,低耦合”的代码,采用DDD(Domain-Driven Design)领域驱动设计思想就能很好地实现这个目标,根据业务领域合理分层软件架构,让系统拓展性更强,结构更清晰,更灵活,复用程度更高,轻松应对各种复杂的业务需求。
领域是一个组织所做的事情以及其包含的一切,通俗地说,就是组织的业务范围和 做事方式,也是软件开发的 目标范围。
领域驱动设计是站在具体产品或者业务系统的高度,从领域出 发,分析领域内模型及其关系,进而设计软件系统的一种方法论,更偏重于业务架构、技术架构的设计。
3、组件设计原则
软件的复杂度与它的规模成指数关系:一个复杂度为100 的软件系统,如果能拆分成两个互不相关、同等规模的子系统,那么每个子系统的复杂度应该是25,而不是50。软件开发这个行业很久之前就形成了一个 共识,应该将复杂的软件系统进行拆分,拆成多个更低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。也就是说,软件需要进行模块化、组件化设计。
组件设计原则是从具体的系统实施层面去指导开发设计,更偏重于底层实施开发。
评论