一、分层架构
定义:把功能相似,抽象级别相近的实现进行分层隔离
优势:松散耦合(易维护,易复用,易扩展)当改变其中一个层级时,只要保证该层级的接口不变即可。
常见的分层方式:MVC,MVVM
二、模块化
定义:解决一个复杂问题时,自顶向下逐层把系统划分为若干模块的过程
作用:解耦,支持并行开发
模块化方案:
AMD:RequireJS 在推广过程中对模块定义的规范化产出。AMD规范则是异步加载模块,允许指定回调函数,在回调函数中执行操作。
CMD:SeaJS 在推广过程中对模块定义的规范化产出。(AMD和CMD相似,主要区别在于加载和运行时机不同,两者都将模块化代码和业务代码掺杂在一起)
CommonJS:是nodejs也就是服务器端广泛使用的模块化机制。 该规范的主要内容是,模块必须通过module.exports 导出对外的变量或接口,通过 require() 来导 入其他模块的输出到当前模块作用域中。。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。(语法少,并且和业务代码 分开)
ES6 Modules:ES6内置的模块化语法,在浏览器端无需额外引入requirejs来进行模块化。
模块化方案选择:CommonJs