- 描述软件架构与框架之间的区别与联系
软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。框架是特定语言和技术的架构应用解决方案。
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。
架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。
框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果---先大局后局部,就出现了架构;先通用后专用,就出现了框架。
架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。
- 1.2 软件架构模式
- 以你的项目为案例
- 绘制三层架构模型图,细致到分区
- 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
每个层或包的职责是清晰的,模块化并可扩展的。系统分析的每个类会分明确的放置;
提供了隐式的程序复用准则;
每个层涉及的技术是明确的。这使得程序员可以通过快速培训上岗;
通过依赖估计项目变化产生的工作量;
开发次序和重要性是明确的。领域模型、基础模块(用户和基础数据的DTO和Service必须优先开发与测试),减少这些模块的错误,特别是领域模型设计失误,是项目成功的关键;
并行开发支持。利用前后端分离,实现并行开发
- 研究 VUE 与 Flux 状态管理的异同
VUE状态管理:vuex 包含有五个基本的对象:
1. state:存储状态。也就是变量;
2. getters:派生状态。也就是set、get中的get,有两个可选参数:state、getters分别可以获取state中的变量和其他的getters。外部调用方式:store.getters.personInfo()。就和vue的computed差不多;
3. mutations:提交状态修改。也就是set、get中的set,这是vuex中唯一修改state的方式,但不支持异步操作。第一个参数默认是state。外部调用方式:store.commit('SET_AGE',18)。和vue中的methods类似。
4. actions:和mutations类似。不过actions支持异步操作。第一个参数默认是和store具有相同参数属性的对象。外部调用方式:store.dispatch('nameAsyn')。
5. modules:store的子模块,内容就相当于是store的一个实例。调用方式和前面介绍的相似,只是要加上当前子模块名,如:store.a.getters.xxx()。
Flux状态管理:
1. 创建Actions
包括所有的动作,比如点击按钮添加列表项,这就是一个action,在action文件中直接用dispatcher方法来分配这个动作
action是用来暴露给外部进行调用
2. 创建store
store里面包含了应用的状态和逻辑,用来管理应用中不同的状态和逻辑
store中可以用数组来存储应用中所需要的数据,然后外部通过调用strore中的方法来获取到数据放到state中。
3. 创建dispacher
在dispatcher中通过register来给每个action注册对应的store中的方法
4. 在view层通过调用action中的方法来调用这个动作