En primer lugar, la actuación. Cuando se usa, parece que el rendimiento de Node.js no es tan bueno como se esperaba. El uso de la memoria es aproximadamente el mismo nivel que Ruby, y es más que Python y PHP. En términos de rendimiento de la computación (es decir, el uso de la CPU), la computación pura no tiene mucha ventaja, pero debido a que puede controlar bien el proceso asíncrono, el rendimiento general es mucho mejor que PHP. Personalmente, creo que Node.js tiene un gran potencial en el rendimiento, porque hay muchos proyectos grandes que están comprometidos a mejorar el rendimiento de las máquinas virtuales de JavaScript, como los principales navegadores; Al mismo tiempo, JavaScript es un lenguaje con sintaxis simple y un estándar abierto. A diferencia de Python y PHP, es difícil realizar reconstrucciones a gran escala para mejorar el rendimiento debido a consideraciones de compatibilidad.
Luego está el administrador de paquetes y la biblioteca. Node.js tiene NPM incorporado, porque NPM es un administrador de paquetes muy fácil de usar, porque JavaScript tiene un umbral de escritura bajo, y JavaScript tiene muchas excelentes bibliotecas front-end que han sido portadas al back-end, por lo que ahora hay más paquetes en NPM que PYPI y Rubygems, y luego, a lo largo de Pear y Composer. La diferencia de PHP en el desarrollo de Node.js es que no todos temen agregar dependencias. Cada pequeño requisito va a NPM para encontrar bibliotecas existentes para implementar, y a menudo se puede encontrar. Por lo tanto, el desarrollo de Node.js se trata básicamente de combinar dependencias, y luego tiende a escribir una biblioteca incluso si es pequeña, lo cual es más similar a la idea de Unix. Por otro lado, la comunidad Node.js es muy amigable con el código abierto. La amabilidad aquí significa que la mayoría de las bibliotecas se desarrollan abiertamente en GitHub y usan protocolos muy sueltos, como el MIT, que no es tan "agresivo" como GPL.
En la comunidad, la mayoría de las aplicaciones de Node.js todavía están en el backend web, y las bibliotecas relacionadas con el backend web se realizan básicamente por algunas grandes tomas. Por ejemplo, Express, Jshttp, Jade, Mocha y Koa fueron desarrollados por cuatro o cinco personas dirigidas por TJ Masters, que es un fenómeno interesante. - Aunque TJ Dios finalmente decidió desvanecerse de la comunidad de nodo.js.
Toolchain, Node.js es relativamente joven, y muchas herramientas útiles acaban de aparecer en los últimos dos años, como dialectos precompilados, pruebas unitarias y pruebas de simulación, herramientas de construcción, etc.; No me atrevo a decir lo bueno que es, pero es mucho mejor que PHP. En cuanto a la razón, en primer lugar, se debe en gran parte a que estas bibliotecas son tanto front-end como de fondo, debido a las demandas difíciles del front-end web, que benefician a Node.js por cierto; Luego, debido a la sintaxis flexible y simple de JavaScript, estas herramientas se pueden implementar de manera muy inteligente y elegante. En cuanto al IDE, todavía se beneficia del front -end de la web, y todavía hay algunos IDE disponibles, aunque el lenguaje JavaScript en sí no es muy propicio para el análisis estático.
Sintaxis, me gustaría enfatizar la sintaxis simple y flexible de JavaScript. El punto importante es que JSON, JSON es casi el formato de datos más común en el campo web en la actualidad, ¡y JavaScript tiene soporte nativo para JSON! Todas las estructuras de datos en JavaScript se expanden en torno a un superconjunto de JSON, objeto, incluidas matrices, funciones, objetos y clases. Por supuesto, esto también trae problemas, porque hay pocas restricciones en la escritura, lo que lleva a no saber cómo escribir. Cuando comience a aprender por primera vez, inevitablemente lo refactorará para comprender las ventajas y desventajas de varios patrones de diseño en diferentes situaciones y encontrará una manera de escribirlas que se adapte a usted y sea adecuada para proyectos específicos. Por lo tanto, se puede decir que Node.js es fácil de comenzar, pero construir proyectos a gran escala sigue siendo una prueba de las habilidades de los desarrolladores. Debido a cuestiones históricas, la sintaxis de JavaScript no es hermosa, pero afortunadamente tenemos varios dialectos precompilados, como script de café, mecanografiado, dardo, vidas y clojurescript. Siempre hay uno que te convenga.
Use escenarios, JavaScript es un lenguaje de programación general, por lo que no es necesario mencionar los extremos delanteros y traseros de la web, echemos un vistazo a otros aspectos. Personalmente, creo que Node.js sigue siendo muy adecuado para escribir herramientas de servidor, o herramientas de operación y mantenimiento, porque muchas situaciones en operación y mantenimiento pueden funcionar de manera asincrónica, y JavaScript tiene un soporte regular relativamente bueno, por lo que no es un gran problema reemplazar Bash y Python; Node.js solo necesita instalar el intérprete y puede usarse casualmente, sin temor a evitar la introducción de dependencias. Para la programación de escritorio y dispositivos móviles, Node.js tiene Node-Webkit y varios otros proyectiles. Aunque la experiencia de uso actual no es muy buena, puede reducir significativamente los costos de desarrollo y fácilmente las plataformas cruzadas. Se cree que el futuro también es brillante.
Finalmente, hablemos sobre el aprendizaje Node.js. En mi opinión, Learning Node.js tiene dos puntos. Una es aclarar el "IO asíncrono basado en las devoluciones de llamada de eventos" de Node.js. Este es el punto más diferente entre Node.js y otros lenguajes de programación convencionales. Luego, el segundo paso es echar un vistazo a las 100 mejores bibliotecas en NPM. No hay necesidad de mirar de cerca. Simplemente esté familiarizado con él y sepa lo que hace cada biblioteca. Después de completar estos dos pasos, felicitaciones, ya eres un desarrollador de nodo.js.