2008-11-15 10 views
5

¿Cómo maneja su uso del código DojoX o widgets en una aplicación de producción?¿Cómo gestionas tu código DojoX?

El Dojo Toolkit se compone de Core, Dijit y DojoX. Como una incubadora de nuevas ideas para ampliar el kit de herramientas, el código DojoX y los widgets son funcionales con diversos grados de inestabilidad.

Código Dojox como QueryReadStore (para ir a buscar lotes de datos desde el servidor) o widgets como Grid (por la utilización de un componente de la red de interfaz de usuario) no están incluidos en el núcleo o Dijit. Pero son lo suficientemente funcionales como para utilizarlos en algunos casos, con la advertencia "developer beware", porque en futuras versiones de Toolkit, la API o la ubicación del componente en el árbol de fuentes podría cambiar. Otra pega es que puede que tenga que modificar el componente DojoX que está utilizando para que funcione correctamente en su entorno, ya que aún no hay un alto grado de robustez en el código.

Entonces, ¿cómo se asegura de que a medida que evolucionan los componentes de DojoX que utiliza, su aplicación se mantiene en un buen camino?

Respuesta

3

Hay varias maneras de hacerlo:

  • Se adhieren a una versión de Dojo y lo utilizan constantemente.
  • Mueva el código modificado a su propio espacio de nombres e inclúyalo desde allí.
    • Efectivamente es una bifurcación de un módulo DojoX existente. Toda la sincronización del código y la portación posterior es su responsabilidad.
    • Preste atención al resto de Dojo — si cambia de tal manera que rompe su versión bifurcada, esté listo para aplicar un parche a su módulo también.
  • Copie los archivos modificados en algún lugar e inclúyalos/solicítelos antes de que se solicite el archivo original.

Para ilustrar esta última técnica se imagina que hay un solo archivo que desea parche situado en Dojox/gráficos/abc.js:

dojo.provide("dojox.charting.abc"); 
// the rest of the file 
... 

puedo copiarlo en mi directorio como, por ejemplo, mi /patched_abc.js, y hacer que parezca que:

dojo.provide("my.patched_abc"); 
// now I include the rest of the file with my modifications 

dojo.provide("dojox.charting.abc"); 
// the rest of the file 
... 

En mi código que utiliza dojox.charting lo incluyo como esa:

dojo.require("my.patched_abc"); 
// now I can include dojox.charting, 
// which will use my patched dojox.charting.abc module 

dojo.require("dojox.charting.Chart2D"); 
// the rest of the file 
... 

Solo tenga cuidado para evitar las declaraciones circulares de "requerir".

Esta técnica funciona muy bien para backports y personalizaciones menores. Si sus cambios son más extensos que eso, debe considerar escribir su propio módulo.

4

Esto puede ser una solución obvia, pero mucho más complicada ... pero: ¡Involúcrese! En realidad, es una de las mejores maneras de familiarizarse con el poder general de Dojo de una vez, enseña mucho sobre JS-foo y garantiza que tenga información interna sobre el futuro de un módulo en particular. La mayor parte de DojoX contribuye a la comunidad y apunta a la estabilidad y la utilidad. Cuantas más personas revisen, prueben, pirateen el código, más probabilidades hay de que tenga éxito y se estabilice.

Saludos, Peter Higgins

Cuestiones relacionadas