什么是好的代码:
- 复用性强
- 高可扩展
- 易维护
- 可读性强
- 面向接口编程
- 高内聚低耦合
- 配置化,做不到动态生效起码应做到配置化,不要硬编码
- 灵活性,模块化
- 架构及代码层面的简洁和优雅
- 利用类的封装性、继承性和多态性,灵活运用接口组合
- 考虑这样写好不好扩展,有没有暴露不必要的接口
对于微服务,考虑:
- 服务无状态
- 服务是否高可扩展
- 服务是否高可用
- 接口幂等
- 接口限流,降级
- 故障恢复
- 调用接口时的超时时间,重试次数及策略
- 缓存
设计模式六大原则:
- 单一职责
- 开放封闭
- 里氏替换:对扩展的开放,对修改的关闭效果
- 依赖倒置:模块间依赖通过抽象发生,实现类之间不发生直接依赖关系,其依赖关系是通过接口或者抽象类产生的。如果类与类直接依赖细节,那么久会直接耦合。
- 接口隔离:建立单一接口,不要建立庞大臃肿接口;尽量细化接口,接口中方法尽量少。
- 迪米特
生产上的服务应做到:
- 可伸缩性,无状态
- 可回滚
- 灰度发布
- 配置化
- 部署,测试方便
基础服务是否做好:
- 中间件redis,kafka,es,zk是否做到高可用
- 服务监控及告警
- 日志排查
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。