描述软件架构与框架之间的区别与联系

软件架构(architecture style)定义

An architecture is the set of significant decisions about the organization of a software system, which describe the selection of the structural elements and their interfaces by which the system is composed,and their behavior as specified in the collaborations among those elements

软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。

应用框架(application frameworks)定义

框架是特定语言和技术的架构应用解决方案。例如 Java Spring web framework,它包含了 Java 开发 web应用的各种业务场景的具体解决方案。

区别

  • 软件架构不是软件,它不仅仅关注软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解、经济以及技术的限制和权衡等。
  • 软件框架是面向领域(如ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。通常是具体语言和技术相关的。

联系

  • 框架是一种或多种架构的组合的实现

以你的项目为案例

  • 绘制三层架构模型图,细致到分区 架构模型图
  • 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利

    • 每个层次内部模块的职责非常清晰,层次与层次之间的关系明确,减少耦合和依赖性
    • 为程序提高了代码的复用性
    • 可以让不同层的开发者专注于本层开发,减少其余不必要的培训、磨合时间,提高开发效率
    • 以我们的项目为例,三层的区分度明显,大大提高了开发的效率

研究 VUE 与 Flux 状态管理的异同

  • 同 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长。Vue和Flux状态管理的目的都是为了解决大型应用中复杂冗余的数据交互。

  • 异:对数据流的管理方式不同

    • Flux 试图通过强制单向数据流来解决这个复杂度。在这种架构当中,Views 查询 Stores(而不是 Models),并且用户交互将会触发 Actions,Actions 则会被提交到一个集中的 Dispatcher 当中。当 Actions 被派发之后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。 image

    • Vuex

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态 每一个Vuex应用就是一个store,在store中包含组件中的共享状态state和该改变状态的方法mutations,不同于Flux状态管理的Dispatcher。

    image

参考