tutorial nodejs node framework app mongodb node.js playframework coffeescript anorm

mongodb - nodejs - node js web app



NodeJS vs Play Framework para proyectos grandes (2)

Realmente estoy dividido entre dos pilas diferentes con las que construir una gran aplicación. Por un lado, hay esta opción:

  • Node.js
    • exprimir
    • script de café
    • coffeekup
    • mangosta / mongodb o
    • presistencejs / mysql


  • Juega Framework w / Scala
    • Anorm w / mysql
    • o mongodb

La ruta node.js me atrae porque puedo escribir todo el código del lado del servidor, las vistas y el código del lado del cliente en coffeescript, que ya sé. Si sigo este camino, todavía no estoy 100% seguro de qué camino de DB tomaría. Mangosta hace que el almacenamiento de datos sea rápido y fácil, pero la falta de relaciones reales puede ser más difícil de trabajar dado el modelo de datos que tengo en mente (muy SQLish).

La ruta de Play Framework también es atractiva porque conozco bien el marco cuando uso Java, pero no sé mucho sobre Scala, por lo que la productividad podría ser un problema a medida que aprendí ese idioma. La capa de acceso a la base de datos de Anorm es atractiva porque puedo escribir el SQL a mano que yo prefiero, y los resultados se asignan automáticamente a los objetos, lo que ahorra mucho esfuerzo.

Sigo inclinándome hacia node.js, pero no me venden en la mejor capa de acceso a db para usar. ¿Alguien tiene alguna experiencia con esto y puede compartir algunas ideas?


Hay 10 categorías principales que debe considerar al comparar marcos web:

  1. Aprender : comenzar, acelerar, curva de aprendizaje general.
  2. Desarrollar : enrutamiento, plantillas, i18n, formularios, json, xml, acceso a la tienda de datos, web en tiempo real.
  3. Prueba : pruebas unitarias, pruebas funcionales, pruebas de integración, cobertura de prueba.
  4. Seguro : CSRF, XSS, inyección de código, encabezados, autenticación, avisos de seguridad.
  5. Compilar : compilar, ejecutar pruebas, preprocesar contenido estático (sass / less / CoffeScript), paquete.
  6. Implementar : hosting, monitoreo, configuración.
  7. Depuración : depurador paso a paso, perfiladores, registro,
  8. Escala : rendimiento, latencia, concurrencia.
  9. Mantener : reutilización de código, estabilidad, madurez, seguridad de tipo, IDEs.
  10. Compartir : actividad de código abierto, listas de correo, popularidad, complementos, soporte comercial, trabajos.

Mira mi charla Node.js vs Play Framework para un desglose detallado de cómo se comparan estos dos marcos en estas 10 dimensiones.


La pila que elija debe depender de las necesidades de su aplicación. Veamos Play vs. Node por sus puntos fuertes:

Nodo

  • Aplicaciones en tiempo real (chat, feeds)
  • Arquitectura orientada a eventos
  • Puede realizar tareas de cliente-servidor (por ejemplo, servir archivos), pero no es adecuado para esto
  • Manejo de bases de datos, herramientas de prueba, etc., disponibles como paquetes adicionales

¡Jugar!

  • Aplicaciones cliente-servidor (sitio web, servicios)
  • Arquitectura Share-nothing
  • Puede realizar tareas en tiempo real (por ejemplo, Websockets), pero no es adecuado para esto
  • Gestión de bases de datos (¡incluidas migraciones!), Herramientas de prueba, etc. integradas en el núcleo

Si su aplicación se aproxima más a un modelo tradicional basado en la web, Play es probablemente su mejor opción. Si necesita comentarios inmediatos y mensajes dinámicos en tiempo real, Node es la mejor opción.

Para grandes aplicaciones tradicionales, ¡considera seriamente el juego! Framework debido a la unidad incorporada y las pruebas funcionales junto con las migraciones de bases de datos. Si se incorporan al proceso de desarrollo, se logrará un producto final que funciona como se espera y es estable y sin errores.