架构思考:对于代码开发,服务架构的一些思考
Posted 吃水果毫不费力zz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构思考:对于代码开发,服务架构的一些思考相关的知识,希望对你有一定的参考价值。
什么是好的代码:
- 复用性强
- 高可扩展
- 易维护
- 可读性强
- 面向接口编程
- 高内聚低耦合
- 配置化,做不到动态生效起码应做到配置化,不要硬编码
- 灵活性,模块化
- 架构及代码层面的简洁和优雅
- 利用类的封装性、继承性和多态性,灵活运用接口组合
- 考虑这样写好不好扩展,有没有暴露不必要的接口
对于微服务,考虑:
- 服务无状态
- 服务是否高可扩展
- 服务是否高可用
- 接口幂等
- 接口限流,降级
- 故障恢复
- 调用接口时的超时时间,重试次数及策略
- 缓存
设计模式六大原则:
- 单一职责
- 开放封闭
- 里氏替换:对扩展的开放,对修改的关闭效果
- 依赖倒置:模块间依赖通过抽象发生,实现类之间不发生直接依赖关系,其依赖关系是通过接口或者抽象类产生的。如果类与类直接依赖细节,那么久会直接耦合。
- 接口隔离:建立单一接口,不要建立庞大臃肿接口;尽量细化接口,接口中方法尽量少。
- 迪米特
生产上的服务应做到:
- 可伸缩性,无状态
- 可回滚
- 灰度发布
- 配置化
- 部署,测试方便
基础服务是否做好:
- 中间件redis,kafka,es,zk是否做到高可用
- 服务监控及告警
- 日志排查
以上是关于架构思考:对于代码开发,服务架构的一些思考的主要内容,如果未能解决你的问题,请参考以下文章