玩转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实现,打打广告。