公司的框架是基于sea设计的,基本的使用都差不多。sea是模块加载器,主要是倾向于js模块的加载。像什么requires,exprots
然后就是sea是遵循CMD规范,之前对什么CMD,AMD,node的Modules规范迷迷糊糊,停留在他们都是按照这样的规则去设计的理解层面上。
sea的介绍:
Sea.js 首要要解决的是模块系统的基本问题:
- 模块是什么?
- 模块之间如何交互?
在前端开发领域,一个模块,可以是JS 模块,也可以是 CSS 模块,或是 Template 等模块。在 Sea.js 里,我们专注于 JS 模块(其他类型的模块可以转换为 JS 模块):
- 模块是一段 JavaScript 代码,具有统一的基本书写格式。
- 模块之间通过基本交互规则,能彼此引用,协同工作。
把上面两点中提及的基本书写格式和基本交互规则描述清楚,就能构建出一个模块系统。对书写格式和交互规则的详细描述,就是模块定义规范(Module Definition Specification)。比如 CommonJS 社区的 Modules 1.1.1 规范,以及 NodeJS 的 Modules 规范,还有 RequireJS 提出的 AMD 规范等等。
若有所思:原来CMD,AMD说直白点就是这样子。
然后我又看到了这篇博文 http://blog.csdn.net/myan/article/details/5928531
博文写的很精彩,也让我有种恍然大悟的感觉。
文中的这句:
对象范式的两个基本观念:
- 程序是由对象组成的;
- 对象之间互相发送消息,协作完成任务;
和上文中的sea首要解决的基本问题的两点比较下,感觉很相似。是不是又可以联系到模块化开发?面对对象开发?
博文中由对象范式的两个基本概念讲述了,个人理解为面向对象发展历程。
然后我再回过头去看这些面对对象开发,CMD规范。。发现对程序的理解又改变了一点。原来想的是为什么要这样做?现在可能我想的就是:是不是可以这样做?
现在前端这么日新月异,个人理解就像是大树开了花,这一朵那一朵。其实还是要抓住主干,真正从土地汲取营养的还是树干。
唉,路漫漫其修远兮。