写点什么

极客时间架构师训练营 - week10 - 作业 2

用户头像
jjn0703
关注
发布于: 2020 年 08 月 12 日

根据当周学习情况,完成一篇学习总结

本周的课程主要内容是微服务与DDD相关的内容。第一次课程主要讲解是微服务架构,第二次课程主要讲的是领域驱动设计等。课程一开始,老师便强调在架构设计中很关键的“问题——需求——技术实现”倒三角模型。技术的选型,不光要考虑团队的实力,更是为了解决实际业务问题,满足实际业务需求的,而不是为了使用什么技术而上某某框架。

目前的微服务框架主要是基于网关的架构,由微服务网关统一接入,做安全防护、限流与协议适配等。所有的请求经过网关转发给后面的各个微服务,由他们进行处理并返回结果给前台展示。通用的做法是,各个微服务均注册到注册中心,服务之间的调用均从网关上找到对应的服务地址,再发送请求获取处理结果。在进行服务的横向扩展时,只需要多部署程序,注册到对应的注册中心。实施微服务,很重要的一点,就是要做好业务的模块化设计,保证模块之间的低耦合、高内聚、不同服务之间的依赖关系要清晰,强行将业务拆开,会使得系统更加混乱。

第二次课开始,老师引入职业性格测试相关的理论,架构师也按其特点分为专攻难题与把握大局型,按自己的特点选择相应的发展道路,也许是更合适的。领域驱动设计,在我看来是一种非传统的软件设计模式。相关的概念包括贫血模型与充血模型,子域,限界上下文,上下文映射图,实体,值对象等。DDD理念,我们在实际开发中也许不能落实,毕竟大家都习惯了MVC的架构模式,而开发一般都需要与同事协同开发。不过我们还可以借鉴很多思路。老师还剖析了几个DDD改变代码开发困境的实际案例。

老师还讲解了软件的组件设计,包含三个原则,即组件内聚原则,共同封闭原则和共同复用原则。组件内聚原则是指软件复用的最小粒度应该等同于其发布的最小粒度;共同封闭原则是将相同功能的类抽象出来放到一个组件中;共同复用原则,即不要强迫组件的用户依赖他们不需要的东西。深刻理解这些原则,有利于我们设计更健壮的架构。



发布于: 2020 年 08 月 12 日阅读数: 42
用户头像

jjn0703

关注

Java工程师/终身学习者 2018.03.26 加入

USTC硕士/健身健美爱好者/Java工程师.

评论

发布
暂无评论
极客时间架构师训练营 - week10 - 作业 2