知识共享许可协议

玩转AMD - 写在前面

我们决定全面使用 AMD 进行前端开发,到现在已经两年的时间了。最初做这样的选择很简单,国外已经有很多使用 AMD 的成功例子了,大多数主流的 Libraries 和 Frameworks 对 AMD 也都有很好的支持,并且 AMD 的模块异步加载也为按需加载优化从根源上提供了支持。而我们也不想自己生产标准。所以我们在2012年的时候,经过一两次简单的讨论,就这么愉快的决定了。

两年过去。在实践的过程中,我们充分感受到了 AMD 的好处,不禁感叹其完备的设计思路和考虑。另外,我们也感觉到 AMD 在前端开发中的门槛还是不低的。主要体现在新同学入门的时间比较长,老同学很多也没有真正理解 AMD ,在项目中还是会用出一些不太符合常识的玩法。刚好最近空出一些时间,就写写一些我理解的 AMD ,给在玩 AMD 的同学一些参考,也给自己一个交代,以后就不用每个同学讲一遍了。

在这个时间节点,写 AMD 是需要一定的勇气的。作为一个不太成熟的领域,前端技术的发展一直很快,以致于一个东西如果一段时间没有变化没有发出新的声音,就会被认为过时过气。我也经常听到大家更愿意谈论AngularJS、React、ES6、Mobile。在这样的技术环境下,写一个“过气”的 AMD 其实是很难找到什么共鸣的。但我一直崇尚 精工,这需要态度、坚持以及时间的沉淀,我觉得我们在 AMD 的实践上做的还算及格,就选了这个话题。

本着既然要写就写多点的原则,我打算从 设计思路应用实践 两个方面来写,顺便取了个title: Dissecting AMD。刚好我们有实现一个 AMD 的 Loader:ESL,所以顺便写一章 Loader实现,打打广告。