1.软件架构与框架之间的区别与联系

软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。

当软件工程具一定规模时,软件开发不完全是以数据结构+算法的形式存在,而是基于技术选择和用户需求等众多因素将软件“分而治之”,架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。

软件框架是面向领域(如 ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域分析结果的软件化,是领域内最终应用的模板,是特定语言和技术的架构应用解决方案。

区别:软件架构针对整个领域,而框架一般比较细致,具体到开发的某个层次。

联系:都是为了提高开发速度,在某一领域类提取出来的公有部分,便于后续的开发。

2.项目三层架构模型图

架构师 PK 分析师_软件框架

开发人员可以只关注整个结构中的其中某一层;可以很容易的用新的实现来替换原有层次的实现;可以降低层与层之间的依赖;有利于标准化;利于各层逻辑的复用。

2.研究 VUE 与 Flux 状态管理的异同

Vuex是一个专为VUE.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

Flux强制单向数据流,适用于需要描述多个视图并且不能直接映射到领域模型,或是试图需要来自多个模型和不同种类的聚合数据的系统。

异: 差异主要体现在对数据流的管理方式不同。

同: Flux 思想是为了解决传统 MVC 架构不能有效解决大型业务中复杂数据流的管理问题而产生的一种软件架构思想。VUE 和 Flux 的状态管理都是基于 Flux 思想的有效实现,通过对数据流进行严格管理来规范数据在 Web 应用中流动方式的框架。