2012-01-20 18 views
11

He descubierto Ember.js a través de this article.Descripción general del código Ember.js

Un vistazo superficial a la documentación promete una herramienta muy impresionante. Una mirada superficial al código fuente revela un monstruo. La versión "compilada" de la fuente es de casi 15000 líneas de código, y el GIT repo está lleno de archivos diseminados.

No me gustaría emprender el aprendizaje de un marco de JavaScript si no pudiera tener al menos un conocimiento global del código. (Una de las características de jQuery o Backbone es que la base de código es relativamente sencilla.)

¿Tiene algún consejo para navegar (y finalmente comprender) el código?

+5

Vale la pena señalar que cualquier estructura de tamaño significativo normalmente se dividirá en varios archivos. Incluso jQuery, que es más pequeño, está dividido. Como explica @ebryn, en realidad está todo muy bien organizado. Además, dado que Ember tiene muchas más características que jQuery y Backbone, no sorprende que sea de mayor tamaño. –

+3

para navegar el código, el punto de inicio está aquí: https://github.com/emberjs/ember.js/tree/master/packages –

Respuesta

31

Ember.js consiste en varios paquetes que incluyen las más relevantes:

  • brasa de metal
  • ascua-runtime
  • brasa vistas
  • brasa manillar
  • ascua-enrutamiento

También tiene un par de dependencias empaquetadas :

  • Manillar
  • Metamorph

metal consta de varias tecnologías de base: los observadores, fijaciones, propiedades calculadas, y un bucle de ejecución.

Runtime proporciona el sistema de objetos Ember junto con un puñado de clases útiles. El sistema de objetos está construido con muchas de las tecnologías fundamentales implementadas en metal, pero las expone de una forma mucho más limpia al desarrollador de la aplicación.

El paquete ember-views es bastante autoexplicativo, es el sistema de vista Ember construido en la parte superior del tiempo de ejecución. Además de eso, el paquete ember-handlebars, que depende de las vistas de aspersión, proporciona plantillas de actualización automática sobre el sistema de plantillas de Handlebars.

El paquete ember-routing proporciona el sistema responsable de mantener la estructura y el estado de la aplicación. Permite conectar las vistas a partes específicas de su aplicación, así como la transición entre estados. Para obtener más información, consulte Router code source

Para obtener más información sobre manubrios, consulte Handlebars website.

Metamorph es una pequeña biblioteca escrita por Yehuda y Tom que proporciona a Ember la capacidad de actualizar partes específicas del DOM, lo que habilita la funcionalidad de enlace DOM de Ember.

+21

También vale la pena señalar que Ember.js está copiosamente documentado, y el ember.js no minificado que enviamos incluye esa documentación. Ejecuto cloc (líneas de contador de código) contra la fuente compilada y obtengo 3,214 líneas en blanco, 4,800 líneas de comentarios y 7,328 líneas de código. También tenga en cuenta que la fuente compilada incluye Handlebars.js, que clocs a 1.314 líneas de código (incluye la salida compilada del generador de analizador de Jison). Esto hace que Ember.js tenga unas 6.000 líneas de código real. Esto obviamente no es tan pequeño como Backbone, pero Ember hace mucho más que Backbone ... –

Cuestiones relacionadas