软件架构:是一个系统的草图,和语言和技术无关,是一种关于软件如何设计的策略,描述的对象是直接构成系统的抽象组件,以决定将软件系统分解成不同的部分的方式、各部分之间的静态结构关系和动态交互关系等。
软件框架:是特定语言和应用的架构应用解决方案。它将代码放到一个看不到的容器中,规定架构,当使用的时候直接调用。相当于一种半成品的软件,实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。
区别:框架是软件,而架构不是软件。框架是系统或子系统的半成品,框架中的服务最终被应用系统直接调用;架构则是问题的抽象解决方案,将系统决策分为不同的部分、决定如何交互,是一个针对软件设计的决策。
联系:架构决策体现在框架之中,它们都是为了解决系统日益复杂所带来的困难而采取的“分而治之”的思维的结果。
· 以你的项目为案例
· 绘制三层架构的模型图,细致到分区
· 结合你程序的结构,从程序员的角度说明三层架构给开发者带来的便利
· 并行开发支持。开发扫码点餐微信小程序时,利用前后端分离,可以与项目成员实现并行开发。
· 每个层涉及的技术是明确的。我开发前端只需自学JS;
· 每个层或包的职责是清晰的,模块化并可扩展的。系统分析的每个类会分明确的放置;
· 提供了隐式的程序复用准则;
· 开发次序和重要性是明确的。
· 研究 VUE 与 Flux 状态管理的异同
异:
VUE和Flux对于数据流的管理方式不同。
Flux数据流的顺序是:
View发起Action -> Action传递到Dispatcher-> Dispatcher将通知Store -> Store的状态改变通知View进行改变
Vuex数据流的顺序是:
View调用store.commit -> 提交对应的请求到Store中对应的mutation函数 ->store改变(vue检测到数据变化自动渲染)
同:
VUE 和 Flux 的状态管理都是基于 Flux 思想的有效实现,都基于CQRS(命令和查询职责分离),对数据流的处理都是单向的,都是通过store来存储状态。