架构是什么?是Spring boot、Spring cloud、Dubbo之类?这些是系统框架。是数据库、缓存、消息队列?这些是工具。是微服务、SOA?这些技术。那么究竟什么是架构?

架构师可以类比为城市规划师,用来决定城市哪块是什么功能,如何搭配这些功能。比如工厂附近就不会是居民区,商业中心也不会在污水处理厂附近。在软件系统中,架构的工作就是“拆分业务”。

拆分业务可以分为多个维度。比较大的系统,可以根据业务拆分成若干服务:如库存、订单、支付。在服务级别,根据功能拆分若干模块。在代码级别,将代码又拆分成若干层次,如DAO、业务层、Controller等。

拆分的目的,是让系统具备高聚合、低耦合的特性。把相同原因、相同频率修改的东西放一起,把不同原因、不同频率修改的东西分开。同时要解决依赖问题:细节应该依赖高层,高层不应该依赖细节。让代码更容易修改、扩展。

拆分的原则:SOLID原则,高聚合、低耦合原则。

posted on 2018-06-26 11:41  邓志国  阅读(210)  评论(0编辑  收藏  举报