移动端软件架构设计

什么是架构

  • 软件架构是一张开发蓝图,是一个整体的规划,即软件工程的指导方针,软件开发的主要目标如图所示:
    在这里插入图片描述

  • 优秀的软件架构提供迅速响应,扩展灵活;还要具备美观性,代码要简洁,易于阅读、维护、能使维护者对功能产生更清晰的认识,能够快速地处理变化

软件架构设计的关注点

  • 软件架构设计应该关注 – 变化

软件架构设计的本质和目的

  • 本质降低软件熵
  • 目的:降低因需求增加导致的软件熵增加从而导致的成本增加

架构设计模式原则

  • 架构的细节需要运用一些经典的设计模式原则,比较常用的原则之一为SOLID原则

SOLID原则

  • 单一职责原则(SRP): 每一个类都应该只具有一种职责
  • 开放封闭原则(OCP) : 对于软件对象扩展是开放的,修改是封闭的,应该将统一的功能抽象成一个共有的接口,具体到每个对象中去实现
  • 里氏替换原则 (LSP) : 继承应该保证有关超类型对象的任何属性也适用于子类型对象
  • 依赖倒置原则 (ISP) : 程序要依赖抽象的接口而不要依赖具体的实现 – 面向接口编程
  • 接口分离原则 (DIP): 客户端不应该依赖于它不需要的接口或方法,类于类之间的依赖应该建立在最小的接口之上(接口不应该设计的过于臃肿而导致系统解耦困难,增加重构的复杂度)

架构设计步骤

  1. 认识系统:认识系统的数据模型、业务组成、模块组成
  2. 设计系统:选择合适的架构模式,对架构模式调研分析,确定系统架构设计方案
  3. 创建系统:选择系统的实现环境,对系统进行部署,进入开发/改造阶段
  4. 收集反馈:系统创建完成,持续调研,收集反馈,对系统做下一步优化规划
认识系统
  • 目标:
    • 设计者希望系统是什么?
    • 使用者希望系统是什么?
    • 成本预估目标如何?
  • 明确的问题
    • 现有系统存在的问题(内部)
    • 影响系统的外部条件是什么(外部)
设计系统
  • 两个阶段
    • 技术选型
    • 架构模式选型
  • 注意的问题
    • 对于选定的技术和架构模式,团队学习成本和接受度如何
    • 选定的模型存在什么优势和劣势,团队成员对此情况的了解程度
    • 选定技术模型流行度如何,以及流行原因
创建系统
  • 托管代码
  • 跟踪进度
  • 完成后进行复盘
收集反馈
  • 代码评审
  • 匿名留言
  • 合作交流
  • 社区讨论
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页