我通过this article发现了Ember.js。Ember.js代码概述
粗略浏览一下文档可以得到一个非常令人印象深刻的工具。粗略浏览源代码会发现一个怪物。源代码的“编译”版本接近15000行代码,GIT repo中散布着大量文件。
如果我觉得我至少没有对代码的全局理解,我不想开始学习JavaScript框架。 (jQuery或Backbone的质量之一是代码库相对简单。)
对于导航(并最终理解)代码,您有任何建议吗?
我通过this article发现了Ember.js。Ember.js代码概述
粗略浏览一下文档可以得到一个非常令人印象深刻的工具。粗略浏览源代码会发现一个怪物。源代码的“编译”版本接近15000行代码,GIT repo中散布着大量文件。
如果我觉得我至少没有对代码的全局理解,我不想开始学习JavaScript框架。 (jQuery或Backbone的质量之一是代码库相对简单。)
对于导航(并最终理解)代码,您有任何建议吗?
Ember.js由几个包,包括最相关的:
它也有一对捆绑依赖关系:
金属包括几个基础技术:观察员,绑定,计算性能和运行循环。
运行时提供了Ember对象系统以及一些有用的类。该对象系统由许多以金属实现的基础技术构建而成,但以更简洁的方式向应用程序开发人员公开。
这个ember-views包非常明了,它是建立在运行时之上的Ember视图系统。最重要的是,依赖于余烬视图的ember-handlebars包在Handlebars模板系统上提供了自动更新模板。
ember-routing包提供了负责维护应用程序结构和状态的系统。它允许将视图连接到应用程序的特定部分以及在状态之间转换。欲了解更多详情,请参阅Router code source
有关把手的更多信息,请查看Handlebars website。
是由Yehuda和Tom编写的一个小型库,它为Ember提供了更新DOM的特定部分的能力,从而实现了Ember的DOM绑定功能。
也值得注意的是,Ember。js有丰富的文档记录,我们发布的unminified ember.js包含该文档。 我对编译后的源代码运行cloc(代码行计数器),得到3,214个空行,4,800行注释和7,328行代码。另请注意,编译后的源代码包含Handlebars.js,该代码包含1,314行代码(它包含Jison解析器生成器的编译后输出)。这使得Ember.js大约有6000行的实际代码。 这显然不像Backbone那么小,但是Ember比Backbone还要多... –
值得注意的是,任何显着大小的框架通常都会被分解到多个文件中。即使更小的jQuery也会分裂。正如@ebryn解释的那样,它实际上都组织得非常好。此外,由于Ember具有比jQuery和Backbone更多的功能,所以它的体积更大并不奇怪。 –
导航代码,起点在这里:https://github.com/emberjs/ember.js/tree/master/packages –