首页 > 代码库 > 懵懵懂懂的样子

懵懵懂懂的样子

公司的框架是基于sea设计的,基本的使用都差不多。sea是模块加载器,主要是倾向于js模块的加载。像什么requires,exprots

然后就是sea是遵循CMD规范,之前对什么CMD,AMD,node的Modules规范迷迷糊糊,停留在他们都是按照这样的规则去设计的理解层面上。

sea的介绍:

Sea.js 首要要解决的是模块系统的基本问题:

  1. 模块是什么?
  2. 模块之间如何交互?

在前端开发领域,一个模块,可以是JS 模块,也可以是 CSS 模块,或是 Template 等模块。在 Sea.js 里,我们专注于 JS 模块(其他类型的模块可以转换为 JS 模块):

  1. 模块是一段 JavaScript 代码,具有统一的基本书写格式。
  2. 模块之间通过基本交互规则,能彼此引用,协同工作。

把上面两点中提及的基本书写格式和基本交互规则描述清楚,就能构建出一个模块系统。对书写格式和交互规则的详细描述,就是模块定义规范(Module Definition Specification)。比如 CommonJS 社区的 Modules 1.1.1 规范,以及 NodeJS 的 Modules 规范,还有 RequireJS 提出的 AMD 规范等等。

若有所思:原来CMD,AMD说直白点就是这样子。

然后我又看到了这篇博文   http://blog.csdn.net/myan/article/details/5928531

博文写的很精彩,也让我有种恍然大悟的感觉。

文中的这句:

 对象范式的两个基本观念:

  • 程序是由对象组成的;
  • 对象之间互相发送消息,协作完成任务;

和上文中的sea首要解决的基本问题的两点比较下,感觉很相似。是不是又可以联系到模块化开发?面对对象开发?

博文中由对象范式的两个基本概念讲述了,个人理解为面向对象发展历程。

然后我再回过头去看这些面对对象开发,CMD规范。。发现对程序的理解又改变了一点。原来想的是为什么要这样做?现在可能我想的就是:是不是可以这样做?

现在前端这么日新月异,个人理解就像是大树开了花,这一朵那一朵。其实还是要抓住主干,真正从土地汲取营养的还是树干。

 

唉,路漫漫其修远兮。

 

懵懵懂懂的样子