一、描述软件架构与框架之间的区别与联系
1.软件架构就是把系统分解为一些部件,描述这些部件的职责及他们之间的协作行为。
2.框架是特定语言和技术的架构应用解决方案。
框架是具体语言和技术相关的。
框架是一种或多种架构的组合的实现。
框架是集成了你的代码和多种第三方解决方案的工具,让你聚焦业务逻辑代码而不是技术实现。
3.区别与联系:
二者呈现形式不同。软件架构呈现的是一个设计规约,而框架则是程序代码。
二者目的不同。软件架构的首要目的大多是指导一个软件系统的实施与开发。而框架的首要目的是为了复用。
一个框架可以有其软件架构,用于指导该框架的开发,架构决策往往会体现在框架之中。
二者的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果。
架构是问题的抽象解决方案,它关注大局而忽略细节;
框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。
二、案例:E-tickets
三、三层架构的便利
从开发角度来讲,三层架构能让每一层专注实现自己的逻辑即可。在 DAO 层,我们只需要做好与数据库的交互即可,无需考虑业务逻辑,如果遇到异常也可以直接 raise 给业务层去处理。而在 Service 层,则是专注实现业务逻辑,此时需要周全考虑可能发生的情况,处理异常。对于服务端开发来说,表示层只需要拿到前端传来的数据,传递参数,调取对应的 service 即可。
这使得开发更加的规范化,每一层与每一层之间各司其职,上层调用下层。在 debug 的时候也能够更加精准发现问题。
四、研究 VUE 与 Flux 状态管理的异同:
(1)异:主要体现在对数据流的管理方式不同 VUE:状态管理由Vuex实现,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex的核心包括: a. state:定义了应用状态的数据结构,同样可以在这里设置默认的初始状态 b. getters:从state中派生出状态,比如获取state中todoLists的总数 c. mutations:唯一允许更新应用状态的地方 d. actions:定义提交触发更改信息的描述,在actions中可做任意异步操作
Flux:数据在应用中单向流动,即所谓的“单向数据流”。 1)Flux将应用分成四个部分: a. View:视图层 b. Action(动作):视图层发出的消息(比如mouseClick) c. Dispatcher(调度器):用来接收Actions、执行回调函数 d. Store(数据层):用来存放应用的状态,一旦发生变动,就提醒Views要更新页面 2)Flux最大的特点就是数据的单向流动,过程如下: a. 用户访问 View b. View 发出用户的 Action c. Dispatcher 收到 Action,要求 Store 进行相应的更新 d. Store 更新后,发出一个”change”事件 e. View 收到”change”事件后,更新页面
(2)同:Flux 是一种源于MVC架构无法满足复杂的扩展需求而产生的架构思想,专门解决软件结构问题。VUE和Flux状态管理都基于这种思想,通过严格管理数据流来规范数据在客户端 Web 应用的流动方式。