1. 描述软件架构与框架之间的区别与联系
- 软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为,是针对一个特定问题的抽象的解决方案。
- 框架是特定语言和技术的架构应用解决方案。
- 软件框架是面向领域(如ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域分析结果的软件化,是领域内最终应用的模板。
- 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。软件架构并不仅仅关注软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解、经济以及技术的限制和权衡等。
- 因此,软件架构是框架的蓝图,框架是软件架构的实现。软件架构值关注抽象的系统组件之间的关系,框架还要考虑物理实现等,框架是软件,而架构不是。
2. 以你的项目为案例
- 绘制三层架构模型图,细致到分区
- 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
便利:
- 每个层或包的职责是清晰的,模块化并可扩展的。系统分析的每个类会分明确的放置。这样,程序员可以明确自己的分工,而不依赖于其他人的工作。
- 每个层涉及的技术是明确的。这使得程序员可以通过快速培训上岗。
- 通过依赖估计项目变化产生的工作量,从而制定工作计划。
- 并行开发支持。利用前后端分离,实现并行开发,缩短开发时间。
- 开发人员可以只关注整个结构中的其中某一层。
- 模块化的包,容易测试,容易管理,容易部署。
- 架构可扩充,也容易扩充。
3. 研究 VUE 与 Flux 状态管理的异同
- VUE采用简单的store模式进行状态管理。所有 store 中 state 的改变,都放置在 store 自身的 action 中去管理。这种集中式状态管理能够被更容易地理解哪种类型的 mutation 将会发生,以及它们是如何被触发。我们能够记录所有 store 中发生的 state 改变,同时实现能做到记录变更 (mutation)、保存状态快照、历史回滚/时光旅行的先进的调试工具。
- Flux 使 Views 查询 Stores(而不是 Models),事实上它无法感知视图层,用户交互触发的 Actions 被提交到一个 Dispatcher 中。当 Actions 被派发后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。
- VUE是一个渐进式框架而Flux是一种前端状态管理架构,专门解决软件的结构问题。