# 服务架构设计

# 概述

服务化是一种方法,它开发一个单一的应用程序来作为构成整体服务的小服务,每个小服务都运行在它自己的进程中, 并且使用一个轻量级的机制进行通讯。这些服务都围绕业务能力来构建,并且可依赖全自动部署机制来独立部署。这在一定 程度上解决了伸缩性问题、运行效率问题、开发效率问题,并支持在纵向和横向两个维度进行伸缩,促进新旧技术和架构的更替。

# 服务架构设计

# 服务架构思想

研发平台架构设计思想极度参考的基础六大架构设计原则

# 单一职责原则

对于一个类而言,应该仅有一个引起它变化的原因。说白了就是,不同的类具备不同的职责,各施其责。这就好比一个团队,大家分工协作,互不影响,各做各的事情。

# 开放封闭原则

简言之,对扩展开放,对修改封闭。换句话说,可以去扩展类,但不要去修改类。

# 里氏替换原则

父类能够替换子类,但子类不一定能替换父类。也就是说,在代码中可以将父类全部替换为子类,程序不会报错,也不会在运行时出现任何异常,但反过来却不一定成立。

# 最少知识原则

尽量减少对象之间的交互,从而减小类之间的耦合。简言之,一定要做到:低耦合,高内聚。

# 接口隔离原则

不要对外暴露没有实际意义的接口。也就是说,接口是给别人调用的,那就不要去为难别人了,尽可能保证接口的实用性吧。她好,我也好。

# 依赖倒置原则

应该面向接口编程,不应该面向实现类编程。面向实现类编程,相当于就是论事,那是正向依赖(正常人思维);面向接口编程,相当于通过事物表象来看本质,那是反向依赖,即依赖倒置(程序员思维)。

# 架构说明

# 强约束性

平台提供基础环境和配置,第三方接口封装,对开发只能对接口可见,比如短信,开发只能对接口, 不需要考虑哪个运营商或者哪个平台的短信。

# 技术透明化

平台针对前端,后台,部署都做了进行统一化管理,研发人员只针对业务需求进行开发,只关注业务

# 技术简化性

平台针对于技术尽量减少简化,开发技术在适度范围内禁止添加,如版本,只能使用 jdk 某版本, 前端减去复杂性,如去掉 node,以简洁为主。

# 其它