Android大厂架构设计最佳实践

Android架构设计最佳实践#

软件项目架构理念#

软件项目开发模型#

  1. 边做边改
  2. 瀑布流
  3. 快速原型
  4. 增量模型
  5. 螺旋模型
  6. 喷泉模型
  7. 智能模型
  8. HRAD模型
  9. 混合模型

控制的宏观与微观#

宏观控制:

  1. 系统部署流程,数据流向清晰掌握
  2. 模块主线,分支逻辑清晰掌握
  3. 系统瓶颈,指标阈值清晰掌握
  4. 模块中哪些是对一致性要求高的,清晰掌握
  5. 模块中哪些是对可用性要求高的,清晰掌握
  6. CAP原则的取舍
  7. 异常容错机制、自恢复机制的实现,清晰掌握
  8. 软件生命周期全流程干预,需求评审,软件开发,落地方案

微观控制:

  1. 技术语言选型,kotlin、java、h5、Flutter、vue
  2. 实现方案选型,基于CAP原则、可用性、一致性、成本、资源等考虑
  3. 机器设备选型,CPU、操作系统、磁盘、屏幕、传感器
  4. 网络环境控制,服务器网络、客户端设备网络
  5. 指标监控上报机制,参考稳定性优化的十大指标

软件架构方法与技巧#

  1. 切分与扩展,业务拆分,架构可扩展;合理拆分业务,合理扩展架构
  2. 主动发现,
  3. 自动化
  4. 灰度升级,先发布功能的一小部分,逐步发布功能的全部范围
  5. 过载保护,超过指标阈值,保持核心服务可用,非核心服务暂停;扩容资源,任务排队
  6. 负载均衡,流量均匀分配;进程资源均匀分配
  7. 柔性,不必非0即1,不必追求是、否;不必追求一损俱损
  8. 回弹能力,牺牲次要能力,保住主要功能运行

软件设计原则#

  1. 开闭原则:扩展开发、修改关闭
  2. 里式替换:子类尽可能继承父类,不要覆盖父类非抽象方法,尽可能重写父类同名方法
  3. 依赖倒转:针对接口编程,而不依赖具体;通过接口实现模块、类之间的调用
  4. 接口隔离:多个接口好于1个接口
  5. 迪米特:最少知道原则,1个对象尽可能减少与其他对象接触
  6. 合成复用:多使用合成、聚合,少使用继承进行扩展

软件架构模式#

  1. 客户端架构:MVC、MVP、MVVM、MVX
  2. 软件服务模式:BAAS区块链即服务、SAAS软件即服务、PAAS平台即服务、IAAS基础设施即服务

移动端架构理念#

开发架构#

  1. 组件化
  2. 插件化
  3. 热补丁
  4. 混合开发
  5. 跨平台开发

    Clean Architecture#

MVVM & MVP & MVC&MVI#

Flux#

其它#

著名公司架构#

谷歌#

安居客#

滴滴#

携程#

阿里#

百度#

腾讯#

饿了么#

著名个人架构#

kejunxia

Fly架构系列的作者

周鸿博

#

点击查看
-------------------本文结束 感谢您的阅读-------------------