设计模式: 软件设计的分层与软件开发注意事项

软件设计的分层

  • 系统级设计架构
  • 应用级架构
  • 模块级架构
  • 代码级架构

1) 系统级设计架构

  • 应用在整个系统内,如与后台服务如何通信,与第三方系统如何集成

  • 包括业务的关系和协作的机制

  • 设计后端:与后台数据传递的机制

  • 包括:api设计规则,访问授权的一个开放标准(OAuth)跳转token的验证, 数据传递cookie等

  • 前端与后端的关系考虑的主要因素是:前后端分离的架构设计

  • 前后端分离架构其实是如何实施技术决策,用户鉴权,api接口管理和设计,api文档管理,mock的使用,BFF(服务于前端的后端,nodejs), 是否需要服务端渲染等

  • 举例:微前端架构

    • 在一个系统内微前端是应用间的架构方案
    • 在多个应用之间,微前端则是一种系统间的架构方案,负责调度多个子应用
    • 微前端是将多个前端应用合在一起使用
    • 旨在解决单体应用在一个相对长的时间跨度下,由于参与人员、团队的增多,变迁,从一个普通应用演变成一个巨石应用(Frontedn Monolith)后,随之而来的应用不可维护的问题
      • 微前端的实现形式,有两种

        • 单实例:同一时刻,只有一个子应用被展示,子应用具备一个完整的应用生命周期
        • 多实例:在同一时刻,多个子应用被展示
          • 通常,使用Web Components 方案来做子应用的封装,子应用更像是一个业务组件而不是应用
      • 两者都说是基于url的变化来做子应用的切换,由此在设计的时候,微前端的架构设计可以理解为系统级架构,也可以理解为应用级架构

2)应用级架构

  • 应用级架构可看做是系统级架构的细化
  • 单个应用与其他外部应用的关系,微服务架构下多个应用的协作,数据交换等
  • 应用级架构的设计形式
    • 应用间的脚手架:应用的生成,项目的生成
    • 模式库:方法和UI库等
    • 设计系统:整体应用内部实现的功能与外部的信息交互

3)模块级的架构

  • 可理解为业务编码之前的设计
  • 关注模块内如何组织相关的业务逻辑

4) 代码级架构

  • 规范与原则
  • 实操:开发流程,代码质量以及改善,规范而非默契

软件开发需要注意的内容

  1. 注意可维护性,可扩展性
  2. 简单代码可维护性高,越是写的抽象的代码,越难以维护
  3. 这里需要注意下
    • 在系统常规业务开发的时候可以简单来
    • 但是在实现抽象库,核心库, 该抽象的时候必须抽象和高扩展性,写好文档
    • 一个程序员的深度可以表现在他(她)能写出多抽象的代码

你可能感兴趣的:(Design,Pattern,Web,Full,Stack,设计模式,软件设计分层,软件开发注意事项)