Cómo elegir el marco de desarrollo web Node.js
Primero, tenemos que descubrir qué necesitamos:
¿Un programa o un marco?
Un programa es una aplicación que ya está implementada, todo lo que necesita es crear un entorno para él, agregarle configuración y luego podrá ejecutarse. Un marco es el esqueleto de una aplicación, y lo necesita; para proporcionarle Agregue el modelo de datos y la lógica de negocios para convertirla en una aplicación y comenzar a brindarla.
De hecho, para el desarrollo web, la diferencia entre programas y marcos es cada vez más borrosa. Por ejemplo, WordPress es bien conocido por casi todas las mujeres y niños. Aunque es un programa de blog, tiene muchas ventajas. complementos y un alto grado de automatización. La definición admite un gran grado de desarrollo secundario. En este sentido, no es menos que algunos marcos PHP. Personalmente creo que con un programa como WordPress no hay necesidad de utilizar este framework si el objetivo es proporcionar un servicio en lugar de dominar la tecnología.
Lamentablemente, dado que Nodejs aún es muy joven y aún no existen programas como WordPress, los frameworks son el camino a seguir si quieres hacer lo que quieres hacer en el desarrollo de Node.js. Si se trata de un tipo específico de aplicación, puedes intentar utilizar algunos programas de código abierto, como usar Nodejs para blogs, como Hexo, Ghost, etc.
¿Qué son los frameworks de red Node.js?
El marco web en Node.js se divide en marco API y marco de aplicación web. El primero es capaz de desarrollar API RESTful y el segundo también es capaz de desarrollar API RESTful, pero también incluye plantillas, renderizado y otras características para el front-end.
El escenario de uso del marco API es proporcionar un modelo de datos unificado para aplicaciones multiplataforma, mientras que la presentación es manejada por el front-end/cliente. js (sitio web oficial, Github, NPM)
El marco de aplicación web, como su nombre indica, es un marco desarrollado para crear aplicaciones web. A continuación se muestran dos tipos de marcos de aplicaciones web.
Uno es estilo Sinatra, el otro es estilo Rails. Sinatra y Rails son marcos web basados en el lenguaje Ruby, siendo este último el más influyente y conocido. A continuación se ofrece una breve explicación de lo que significan estos dos estilos.
El estilo Sinatra significa altamente configurable y se centra en la libertad de desarrollo. Los frameworks web representativos de Nodejs son:
Express (sitio web oficial, Github, NPM) desarrollado por TJ, recomendado oficialmente por Node.js
hapi (sitio web oficial, Github, NPM)
p>koa.js (sitio web oficial, Github, NPM)
flaliron (sitio web oficial, Github, NPM)
total.js (sitio web oficial, Github , NPM)
locomotora (sitio web oficial, Github, NPM)
El estilo de Rails se refiere a no repetir la configuración superior propia y convencional, y seguir estrictamente el desarrollo de la estructura MVC.
Los marcos representativos incluyen:
Sails.js (oficial, Github, NPM)
geddy (oficial, Github, NPM)
CompoundJS (oficial, Github, NPM ) el railswayjs original
No importa cuál de los dos estilos es mejor, todo depende de la preferencia del usuario.
Además de estos dos marcos web, también existen algunos marcos más grandes, a saber, marcos de pila completa representados por MEAN.
¿MAL?
MEAN se refiere a MongoDB Express Angular.js Node.js, esta combinación incluye entorno de ejecución, base de datos, marco web y motor front-end. El portafolio incluye entornos de ejecución, bases de datos, marcos web y motores de interfaz de usuario. Se llama marco de pila completa. A excepción de Node.js, todos los demás marcos son intercambiables y el objetivo es crear aplicaciones web que utilicen javascript completamente desde el front-end hasta el back-end.
Debido a la perfección de este framework, algunas personas lo llaman el sucesor de LAMP. LAMP es un entorno operativo típico de PHP, concretamente Linux Apache MySql PHP, que se utiliza ampliamente en varios hosts virtuales.
MEAN parece enorme, pero de hecho, para construir una aplicación web moderna y completa, especialmente una SPA (aplicación de página única), estos componentes son indispensables y cada componente está casi actualizado. La mejor opción en cada situación y por lo tanto, es ideal para aprender y crear nuevas aplicaciones web desde cero. Sin embargo, debido a la singularidad de su negocio real, lo más probable es que tenga que reemplazar algunos de sus componentes, como reemplazar MongoDB con Mysql, por lo que aprender sus principios y arquitectura para construir su propio marco similar a MEAN también es una opción.
Como individuo y como equipo pequeño, el marco de pila completa MEAN es básicamente suficiente, pero actualmente la mayoría de los marcos de pila completa también incluyen una característica, que también llamamos marcos con tiempo real. el tiempo presenta un marco en tiempo real.
¿Es bueno el marco en tiempo real?
El marco en tiempo real se refiere a un marco que incluye la función de comunicación bidireccional de webSocket, y el servidor y el cliente pueden comunicarse en tiempo real.
La necesidad de comunicación libre entre servidores y clientes siempre ha existido, pero debido a las limitaciones del propio protocolo HTTP, se han generado soluciones alternativas como Comet, pero aún así, están lejos de ser en tiempo real. . Cuando surgió Node.js, otra tecnología HTML5, webSocket, también maduró gradualmente. De repente, la gente descubrió que la comunicación en tiempo real se volvió accesible, por lo que la tecnología webSocket se usó ampliamente en Node.js. El módulo más famoso es socket .io. y varios marcos completos también han agregado funciones en tiempo real para hacer frente a una gama más amplia de necesidades de desarrollo.
Actualmente se está trabajando mucho en Node.js para hacerlo más eficiente.
Los mejores frameworks en tiempo real actualmente incluyen:
Meteor (oficial, Github, NPM)
MEAN.io (oficial, Github, NPM) p >
Derby (oficial, Github, NPM)
SocketStream (oficial, Github, NPM)
Sin embargo, para ser honesto, los escenarios de aplicaciones de comunicación en tiempo real que podemos Actualmente no hay muchos, y la mayoría se centra en salas de chat, listas de tareas pendientes, gráficos en tiempo real, juegos en línea y más. El uso de capacidades en tiempo real en otras áreas no solo es innecesario, sino que también desperdicia recursos del servidor. Por lo tanto, el uso de un marco en tiempo real depende del proyecto específico.
Lo anterior es básicamente el estado actual del marco web Node.js. Creo que después de leer esto, los lectores ya tienen una idea de qué tipo de marco elegir. Finalmente, quiero presentar un concepto más confuso y explicar mi elección.
¿YEOMAN?
La primera vez que vi esta palabra, pensé que estaba relacionada con MEAN. De hecho, son dos cosas completamente diferentes. YEOMAN consta de YO (andamio), gruñido (herramienta de construcción) y bower (administrador de paquetes). El flujo de trabajo que representa es completamente diferente de la forma de pensar en el desarrollo del marco. Consulte aquí para obtener una introducción detallada.
YEOMAN puede lograr propósitos similares al marco, y ambos pueden crear aplicaciones web, pero si usar YEOMAN o no es una cuestión de opinión. Mi opinión personal es que aprender YEOMAN en sí lleva mucho tiempo y tiene un cierto umbral de aprendizaje. Al menos por ahora, usar el marco es relativamente económico, y si el modelo YEOMAN se populariza, no será demasiado tarde para volver a usarlo. Además, después de tener algo de experiencia en proyectos Node.js, lo será. Es mucho más fácil volver a utilizar YEOMAN.
De hecho, soy un gran admirador del modelo Generator Package Manager de YEOMAN, porque el propio Node.js defiende el concepto de micromódulos, lo que significa que no importa cuán pequeña sea la función, debe modularizarse. Incluso los módulos grandes deben dividirse en módulos pequeños y luego la aplicación se construye mediante bloques de construcción. Los generadores son el resultado de esta idea, construyendo módulos eligiendo diferentes configuraciones y opciones. Sin embargo, todavía estamos experimentando con este modelo y no tenemos prisa por implementarlo en la práctica.