9

Me dispongo a desarrollar una aplicación web de JavaScript para visualización, que incluye marcadores de varios gráficos con anotaciones, etc.
Un ejemplo típico sería: Given a url state, muestra dos gráficos SVG y un deslizador de tiempo para la manipulación junto con algunas anotaciones informativas colocadas aquí y allá.aplicación de visualización de JavaScript - organización de código, backbone mvc, versión de escritorio, etc.

Tradicionalmente (y no haber escrito JS durante algún tiempo), me gustaría probar algún tipo de enfoque modular JS:

src 
    data 
    chart 
     chartType1 
     chartType2 
     chartType3 
    layoutManager 
    stateManager 
    utils 
lib 
    d3? 
    backbone? 
    jquery? 

... romper el manejo de datos, algunas funciones de utilidad, diseño estado & gerente, etc.

Pero con una plétora de bibliotecas por ahí, ¿quizás debería sostener mis caballos e intentar un nuevo enfoque?

¿Organización del código?
- ¿Me gusta más o más MVC?
- ¿Algún patrón específico que sería útil?
(pseudocódigo es muy apreciado)

Manejo del estado/Modelos?
- Backbone.js
- JavaScriptMVC

puntos de vista?
- ¿Hay algún buen ejemplo de aplicaciones JS vis que usen bibliotecas SVG (D3, Raphaël, etc.) junto con un marco mvc?

¿Compilador/minificador?
- Google Closure Compiler
- Jammit

IDE?
- Aptana Studio 3
- Netbeans
- Otros?

¿Versión de escritorio? (criterios: almacenamiento de datos, etc.) actualizable
- AIRE
- Cromo Embedded
- XULrunner
- Appcelerator
- otras opciones?

Lamento que el alcance de esta pregunta sea bastante amplio, pero consideraré que se responde si se obtiene una idea de cualquiera de estos dominios. Entonces, por favor ayúdenme a elegir ...

+2

Esto es más como un punto de partida filosófico que una pregunta :) De todos modos, me gusta. Utilicé backbone.js y raphäel.js juntos en un proyecto alojado en appengine con python: http://www.ichbinadrian.ch/blog/2011/04/29/maps-a-decentralised-mindmap - todo el código está en github también, tal vez eso ayude. – thgie

+0

Puedo decirte que backbone.js es realmente la columna vertebral. Es el framework MVC Javascript más simple sin ningún tipo de widgets de lujo y esas cosas. Y hace lo que hace muy bien. – thgie

+0

Gracias por compartir monkee. Descargaré el proyecto de github y seguramente aprenderé una serie de cosas. Mi principal preocupación es si debería cambiar el enfoque de JS completamente tratando de ser fiel al marco de trabajo mvc de elección. – dani

Respuesta

0

¿Organización del código? - Me gusta MVC como en rieles (app/views, helpers, controladores, modelo) - framework debe agruparse juntos IMO

Manejo de estados/Modelos? - Backbone.js definitivamente.

Reproducciones? - No sé sobre la biblioteca de vis.Para las vistas generales de esqueleto y creación de plantillas construí este https://github.com/juggy/backrub que se ocupa de actualizar las vistas en función de los eventos de su modelo/vistas. Ahorra mucho código de pegamento.

¿Compilador/minificador? - Google Closure Compiler - Jammit

Utilizo Jammit con el compilador de cierre como el servidor. Jammit le permite agrupar/romper archivos de manera eficiente.

¿IDE? Depende de usted, cuanto más ligero, mejor.

¿Versión de escritorio? (criterios: almacenamiento de datos, actualizable, etc.) Con algunas configuraciones, ahora puede ejecutar aplicaciones web localmente. Creo que puedes echar un vistazo a eso en su lugar.

1

Si ya conoce MVC realmente bien, podría hacerlo bien con Backbone. Había tantas incógnitas sobre cómo organizar frontend javascript, fuimos con JavascriptMVC, que toma muchas de las decisiones por usted.

No estoy seguro de por qué usaría un IDE .. La consola de TextMate & funciona muy bien para mí. NetBeans se veía bien cuando jugaba con él. JetBrains RubyMine es la mejor calidad y, con mucho, el mejor IDE, pero es comercial.

EDIT Sí, JMVC no vale la pena por lo que ofrece. Backbone es elegante y simple. El único problema es si eres bastante nuevo en la estructuración de código, ya que debes definir la estructura de tu código. Si está utilizando rieles, simplemente copia la organización de su aplicación rieles: routers/ vistas /plantillas/modelos/

y un archivo separado para cada clase, por supuesto. Luego use algo para requerir todo, Piñones si está en Rails 3.1 o realmente me gusta, o Jammit si está en 3.0.x.

Si usa coffeescript, simplemente tenga en cuenta que su código probablemente esté envuelto en un cierre de nivel superior, por lo que si debe agregar sus clases en un hash de nivel superior o declararlas como window.Classname.

(En realidad, "este" es "ventana" en el nivel superior, por lo que se puede declarar como: clase @Classname )

Buena suerte!

+0

También recomendaría JetBrains WebStorm si no necesita Ruby o RoR – Raynos

+1

Después de haber trabajado con JavascriptMVC por un tiempo, puedo decir inequívocamente, vaya con la espina dorsal si está usando un sistema de back-end con una gestión de activos js decente. Terminé pirateando StealJS para no hacer nada y manualmente incluyendo todas las bibliotecas de JMVC con Jammit, porque el compilador basado en Java de JMVC toma FORE y su plugin coffeescript se rompe después de una cierta cantidad de archivos. – Duke

+0

que debería ser una edición/actualización revisada de su respuesta que nos cuenta sus experiencias un mes después. – Raynos

Cuestiones relacionadas