1.描述软件架构与框架之间的区别与联系
- 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
- 软件框架(software framework)是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。
区别:
- 软件架构是一种设计,是软件系统的草图。
- 软件框架是一种实现,即有限制性,又有支撑性。
联系:
软件框架常常会是某种软件架构的实现。
2. 以你的项目为案例
绘制三层架构模型图,细致到分区
image.png从程序员角度说明三层架构给开发者带来的便利
- 关系分离、高级服务与低级服务分离、特定于应用的服务与一般性服务分离。
- 减少耦合和依赖性、增强内聚性、提高潜在的复用性并且使概念更加清晰。
- 很容易用新的实现替换原来的层次实现。例如对sql进行性能优化,并不会影响其他层的代码结构。有利于后期维护。
- 有利于实现切面编程,减轻业务的复杂程度,加快编码效率。
- 每个层次的定位明晰,业务处理的内容明确。依据层次,可以划分不同的分工。开发人员可以只关注整个结构的其中某一层。
- 接口定义也提供了良好的可扩展性。例如数据库从mysql切换到oracle,只需要通过配置来切换。
- 接口设计需要符合对扩展开发,对修改关闭的原则,增强了系统的安全性
研究 VUE 与 Flux 状态管理的异同
Flux将一个应用分成四个部分。
- View: 视图层
- Action(动作):视图层发出的消息(比如mouseClick)
- Dispatcher(派发器):用来接收Actions、执行回调函数
- Store(数据层):用来存放应用的状态,一旦发生变动,就提醒Views要更新页面
Flux 的最大特点,就是数据的"单向流动"。
- 用户访问 View
- View 发出用户的 Action
- Dispatcher 收到 Action,要求 Store 进行相应的更新
- Store 更新后,发出一个"change"事件
- View 收到"change"事件后,更新页面
上面过程中,数据总是"单向流动",任何相邻的部分都不会发生数据的"双向流动"。这保证了流程的清晰。
Vuex实际上是Flux的一种特化实现,用来配合Vue本身的响应式机制。
网友评论