描述软件架构与框架之间的区别与联系
软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。架构模式(style)是 特定领域常见问题的解决方案。
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
两者区别:软件架构是语言无关的,便于开发者去理解整个系统,而框架是特定语言和技术的架构应用解决方案;同时,框架是一种或多种架构的组合的实现;
联系:软件架构和框架都是让开发者聚焦于业务逻辑代码而不是技术实现,同时提高模块的内聚性和模块间的耦合性。
以E-order点餐系统为案例
绘制三层架构模型图,细致到分区
结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
三层架构开发有利于前后端分离,方便开发者之间的合作。让程序模块化成都更高,从而让程序的边界更清晰,让模块的内聚性更高,模块间的耦合性也更好。
研究 VUE 与 Flux 状态管理的异同
FLUX:Views 查询 Stores(而不是 Models),并且用户交互将会触发 Actions,Actions 则会被提交到一个集中的 Dispatcher 当中。当 Actions 被派发之后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。MVC 和 Flux 最大的不同就是查询和更新的分离。在 MVC 中,Model 同时可以被 Controller 更新并且被 View 所查询。在 Flux 里,View 从 Store 获取的数据是只读的。而 Stores 只能通过 Actions 被更新,这就会影响 Store 本身而不是那些只读的数据。
Vue:所有 store 中 state 的改变,都放置在 store 自身的 action 中去管理。这种集中式状态管理能够被更容易地理解哪种类型的 mutation 将会发生,以及它们是如何被触发。当错误出现时,我们现在也会有一个 log 记录 bug 之前发生了什么。组件不允许直接修改属于 store 实例的 state,而应执行 action 来分发 (dispatch) 事件通知 store 去改变。
相同点:Vue和Flux都不是像MVC架构那样一个 Model 可以被多个 Views 读取,并且可以被多个 Controllers 进行更新,而是通过store来解决这个问题。store只能通过action来更新。
不同点:Vue中是通过组件执行action来分发时间通知store去改变的。