javascript frameworks dojo mootools google-closure

javascript - Elegir un marco JS(cambiar de Mootools a Closure o Dojo)



frameworks google-closure (1)

Otra opción: puede usar Closure sin modo avanzado, y aún obtener un gran beneficio. Eso es lo que Dojo hace OOTB. Getting Closing trabajando en modo avanzado es complicado con cualquier biblioteca, así como también con su propio código. Dojo tiene una cadena de herramientas que se encargará de una gran cantidad de minificación / ofuscación / concatenación / etc. - No sé cómo se compara el toolchain con los mootools, pero me imagino que también es posible optimizar el código en Mootools, incluso si tienes que escribir un script o usar algunas otras herramientas para hacerlo. Cambiar los kits de herramientas solo para que esto suceda no tiene sentido. Probablemente tendrías que reescribir una gran cantidad de código. Cambiar / aprovechar los kits de herramientas porque necesita una nueva funcionalidad es una historia diferente, aunque debería poder combinar los kits de herramientas. Muchos kits de herramientas, incluido Dojo, tienen abstracciones de MVC, quizás también los mootools.

El proyecto en el que estoy trabajando es un "marco" para un tipo muy específico de sitios web b2b. Actualmente tengo todo funcionando en el iOS y en la PC con casi cualquier navegador. Envía diferentes diseños y códigos para diferentes plataformas, y todo funciona bien, pero lo que aprendí es un problema de mantenimiento: tengo módulos JS para objetos UI, diseños (por lo que no hay problemas para ejecutar tanto en iPhone como en PC con una resolución FullHD), datos ajax, etc. Algunos módulos son universales, otros dependen de la plataforma y me gustaría "compilarlos" en varios paquetes, algo así como:

  • iOS,
  • cualquier navegador con Flash 10 (incluso IE6)
  • IE9-Opera12-FF5-Safari en PC / Mac (para mi sorpresa, Chrome carece de algunas características)
  • configuración a prueba de fallas (sin Flash o JS)
  • Android / WP7 / Bada (aún no, pero estará listo en dos meses)

Todo está escrito usando Mootools. El 90% del código es único, porque casi cualquier biblioteca que quisiera usar no funcionaba en iOS o IE 6-8.

El problema es que Mootools no funciona bien con el compilador de Closue. Estoy usando gnu-make + google-closure-compiler + doxygen en este momento, luego obtuvo rpm y se implementó en el servidor. Funciona, pero todavía no puedo hacer que el compilador de cierre trabaje a nivel avanzado (debido al módulo de clase de mootools, que definitivamente necesito). El otro problema es que tengo que fusionar archivos js y css por mi cuenta (el orden está codificado en un makefile).

La pregunta es, ¿qué debería elegir?

  • ¿vale la pena intentar reescribir todo el código contra Closure Library, para que Closure Compiler funcione bien (así tendré minimización, algún tipo de ofuscación y finalmente conseguiré que mis scripts se fusionen en uno)
  • continuar usando Mootools e intentar usar require.js + Rhino al compilar, como ACE (Cloud9) Editor por ejemplo
  • elijo Dojo, pero no sé nada al respecto, con respecto a la compilación condicional, la minificación y la ofuscación
  • otro toolchain que conoces

Lo último que quisiera mencionar es que me gustaría obtener un modelo de datos abstracto al lado, algo así como el paquete de datos en ExtJs. Pero solo necesito "M" de "MVC", nada más.

Estoy contento con mi backend y cualquier soporte en el servidor no es una ventaja para mí.

Thx por adelantado.