1、软件架构与框架
软件架构(architecture)
- 软件架构就是把系统分解为一些部件,描述这些部件的职责以及它们之间的协作行为,是有关整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
- 软件架构决策涉及到软件系统核心(主体、基础)结构的组成元素,以及这些核心组成元素之间的相互依赖、交互、协作等关系。
- 软件架构并不仅仅关注软件本身的结构和行为,还注重其他特性使用、功能性、性能、弹性、重用、可理解、经济以及技术的限制和权衡等。
- 软件架构对应的职业是架构师。架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。
框架(Framework)
- 框架是特定语言和技术的架构应用解决方案,通常指的是为了实现某个业界标准或者完成特定的基本任务的软件组件规范。
- 框架与具体的软件应用无关,但是提供并实现软件架构和体系。
- 框架与具体语言和技术相关,是一种或多种架构的组合的实现,是继承了你的代码和第三种解决方案的工具,让程序员聚焦于业务逻辑代码而不是技术实现。
- 框架可以看做是一种特殊的软件,是一个半成品。
联系与区别
框架不是构架(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。
2、以你的项目为案例
绘制三层架构模型图,细致到分区
结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
- 开发人员可以只关注整个结构中的其中某一层;
- 可以很容易的用新的实现来替换原有层次的实现;
- 可以降低层与层之间的依赖;
- 有利于标准化;
- 利于各层逻辑的复用。
- 扩展性强。不同层负责不同的层面
- 安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
- 项目结构更清楚,分工更明确,有利于后期的维护和升级
研究 VUE 与 Flux 状态管理的异同
3、研究 VUE 与 Flux 状态管理的异同
VUE
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
Flux
Flux 使 Views 查询 Stores(而不是 Models),用户交互触发的 Actions 被提交到一个 Dispatcher 中。当 Actions 被派发后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。即在相对独立的组件中,action -> state -> view 的单向数据流能得到保证。
异同
- Vue和Flux都是基于CQRS(命令和查询职责分离)思想,更新和引用的数据流动时单向的,避免当一个Model被多个View引用时,一个Model被View改变时导致的混乱的波纹扩散式更新。
- flux不区分同步和异步更改, 而Vuex区分, commit时同步更新, action是异步更新。
- Vuex的更新是直接通过state实例,作为state方法来调用,而flux的action由view提交后,通过dispatch分发到store更新,然后再通知view更新。