1、描述软件架构与框架之间的区别与联系
-
软件架构
An architecture is the set of significant decisions about the organization of a software system, which describe the selection of the structural elements and their interfaces by which the system is composed,and their behavior as specified in the collaborations among those elements
软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。是一个系统的草图,与语言技术无关,是一种关于软件如何设计的策略,并决定如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等 。同时,架构具有架构模式,是特定领域常见问题的解决方案,如信息系统领域、结构化设计领域、消息服务领域等。
-
软件框架
框架是具体语言和技术相关的,是一种或多种架构的组合的实现,是集成了代码和多种第三方解决方案的工具,把焦点放在业务逻辑代码而不是不是技术实现。框架类似于一种半成品软件,实现了该领域的共性部分,并提供了一些定义良好的可变点,以保证灵活性和可扩展性。是领域分析结果的软件化。
-
区别与联系
软件架构不是软件,是关于软件如何设计的一种决策,是引导如何设计软件框架的重要决策。而软件框架是软件,是特定语言和技术的架构应用解决方案,由实际代码组成,是系统的半成品。软件架构和框架都是为了解决系统日益复杂所带来的困难而采取的办法。
2、以你的项目为案例
- 绘制三层架构模型图,细致到分区
- 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
- 每个层的职责是清晰的,模块化并可扩展的。因此程序员可以很好的分工,各自负责不同的模块,同时进行开发。我们小组就以用户子系统和商家子系统为区分,分为了两个分队,分别负责用户和商家端的开发。
- 支持并行开发,利用前后端分离,实现并行开发。提高开发的效率同时一定程度上缩短时间。同时,能使程序员更专注于自己负责的部分,提高效率。
- 维护成本相对较低,可以将bug定位到某一模块,从而对其进行进一步的调试与测试。提高debug的可行性与效率。
3、研究VUE与Flux状态管理的异同
-
异
-
Flux
Flux是一种前端状态管理架构思想,专门解决软件的结构问题。Flux分为以下四层:
- View:视图层,发起Action
- Action:视图层发出的动作,如mouseClick
- Dispatcher:用以接收Actions、执行回调函数
- Store:用以存放应用状态。一旦接收到Dispatcher的通知,则改变Store状态,提醒View视图层更新页面
-
Vue
Vue的状态管理是通过Vuex来实现的,Vuex是在Flux基础上设计的一个状态管理框架。其中Vuex的核心为以下5部分:
- state:存放多个组件共享的状态或数据
- mutations:存放更改state中状态的方法,用于改变状态,是唯一一个可以改变状态的属性
- getters:对state中某个状态进行过滤,并获取新状态
- actions:调用事件动作,传递给mutation
- modules:用以拆分state
-
-
同
Flux与Vuex都是通过store来存储状态