架构思考:对于代码开发,服务架构的一些思考

Posted 吃水果毫不费力zz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构思考:对于代码开发,服务架构的一些思考相关的知识,希望对你有一定的参考价值。

什么是好的代码:

  • 复用性强
  • 高可扩展
  • 易维护
  • 可读性强
  • 面向接口编程
  • 高内聚低耦合
  • 配置化,做不到动态生效起码应做到配置化,不要硬编码
  • 灵活性,模块化
  • 架构及代码层面的简洁和优雅
  • 利用类的封装性、继承性和多态性,灵活运用接口组合
  • 考虑这样写好不好扩展,有没有暴露不必要的接口

对于微服务,考虑:

  • 服务无状态
  • 服务是否高可扩展
  • 服务是否高可用
  • 接口幂等
  • 接口限流,降级
  • 故障恢复
  • 调用接口时的超时时间,重试次数及策略
  • 缓存

设计模式六大原则:

  • 单一职责
  • 开放封闭
  • 里氏替换:对扩展的开放,对修改的关闭效果
  • 依赖倒置:模块间依赖通过抽象发生,实现类之间不发生直接依赖关系,其依赖关系是通过接口或者抽象类产生的。如果类与类直接依赖细节,那么久会直接耦合。
  • 接口隔离:建立单一接口,不要建立庞大臃肿接口;尽量细化接口,接口中方法尽量少。
  • 迪米特

生产上的服务应做到:

  • 可伸缩性,无状态
  • 可回滚
  • 灰度发布
  • 配置化
  • 部署,测试方便

基础服务是否做好:

  • 中间件redis,kafka,es,zk是否做到高可用
  • 服务监控及告警
  • 日志排查

以上是关于架构思考:对于代码开发,服务架构的一些思考的主要内容,如果未能解决你的问题,请参考以下文章

高性能网站架构的思考 (转)

高质量App的架构设计与思考!

大数据实践总结---一点思考

软件开发架构模式浅谈:一些思考和实践记录

软件开发架构模式浅谈:一些思考和实践记录

Android开发软件架构思考以及经验总结