Tout d'abord, la performance. Lorsqu'il est utilisé, il semble que les performances de Node.js ne soient pas aussi bonnes que prévu. L'utilisation de la mémoire est à peu près au même niveau que Ruby, et elle est plus que Python et PHP. En termes de performances informatiques (c'est-à-dire l'utilisation du processeur), l'informatique pure n'a pas beaucoup d'avantages, mais parce qu'elle peut bien contrôler le processus asynchrone, les performances globales sont bien meilleures que PHP. Je pense personnellement que Node.js a un grand potentiel dans les performances, car il existe de nombreux grands projets qui sont déterminés à améliorer les performances des machines virtuelles JavaScript - telles que les principaux navigateurs; Dans le même temps, JavaScript est une langue avec une syntaxe simple et une norme ouverte. Contrairement à Python et PHP, il est difficile d'effectuer des reconstructions à grande échelle pour améliorer les performances en raison de considérations de compatibilité.
Ensuite, il y a le gestionnaire de packages et la bibliothèque. Node.js a un NPM intégré, car NPM est un gestionnaire de packages très facile à utiliser, car JavaScript a un seuil d'écriture faible, et JavaScript a de nombreuses excellentes bibliothèques frontales qui ont été portées vers l'arrière-end, il y a donc maintenant plus de packages sur NPM que PYPI et RubyGems, puis dépassent de loin la pair et le compositeur. La différence par rapport à PHP dans le développement de Node.js est que tout le monde n'a pas peur d'ajouter des dépendances. Chaque petite exigence va à NPM pour trouver des bibliothèques existantes à implémenter - et on peut souvent trouver. Par conséquent, le développement de Node.js consiste essentiellement à combiner les dépendances, puis a tendance à écrire une bibliothèque même si elle est petite, ce qui est plus similaire à l'idée d'Unix. D'un autre côté, la communauté Node.js est très conviviale. La convivialité signifie que la plupart des bibliothèques sont ouvertement développées sur GitHub et utilisent des protocoles très lâches, comme le MIT, qui n'est pas aussi "agressif" que le GPL.
Dans la communauté, la plupart des applications de Node.js sont toujours sur le backend Web, et les bibliothèques liées au backend Web sont essentiellement effectuées par quelques gros coups. Par exemple, Express, JSHTTP, Jade, Mocha et KOA ont été développés par quatre ou cinq personnes dirigés par TJ Masters, qui est un phénomène intéressant. - Bien que TJ Dieu ait finalement décidé de disparaître de la communauté Node.js.
Chain d'outils, Node.js est relativement jeune, et de nombreux outils utiles viennent d'apparaître au cours des deux dernières années, tels que les dialectes précompilés, les tests unitaires et les tests de simulation, les outils de construction, etc.; Je n'ose pas dire à quel point c'est bon, mais c'est bien mieux que PHP. Quant à la raison, tout d'abord, c'est en grande partie parce que ces bibliothèques sont à la fois frontaux et back-end, en raison des exigences dures du Web frontal, qui profitent au fait Node.js; Ensuite, en raison de la syntaxe flexible et simple de JavaScript, ces outils peuvent être implémentés de manière très intelligente et élégante. Quant à l'IDE, il bénéficie toujours du Front-end Web, et il y a encore des IDE disponibles - bien que le langage JavaScript lui-même ne soit pas très propice à l'analyse statique.
Syntaxe, je voudrais souligner la syntaxe simple et flexible de JavaScript. Le point important est que JSON, JSON est presque le format de données le plus courant dans le domaine Web à l'heure actuelle, et JavaScript a une prise en charge native pour JSON! Toutes les structures de données dans JavaScript sont étendues autour d'un superset de JSON, objet, y compris des tableaux, des fonctions, des objets et des classes. Bien sûr, cela suscite également des problèmes, car il y a peu de restrictions à l'écriture, ce qui conduit à ne pas savoir écrire. Lorsque vous commencez à apprendre, vous le refactez inévitablement pour comprendre les avantages et les inconvénients de divers modèles de conception dans différentes situations et trouver un moyen de les écrire qui vous convient et convient à des projets spécifiques. Par conséquent, on peut dire que Node.js est facile à démarrer, mais la construction de projets à grande échelle est toujours un test des compétences des développeurs. En raison de problèmes historiques, la syntaxe de JavaScript n'est pas belle, mais heureusement, nous avons divers dialectes pré-compilés, tels que le script de café, le dartage, la fléchette, la vie et le Clojurescript. Il y en a toujours un qui vous convient.
Utilisez des scénarios, JavaScript est un langage de programmation général, donc il n'est pas nécessaire de mentionner les extrémités avant et arrière du Web, jetons un coup d'œil à d'autres aspects. Je pense personnellement que Node.js est toujours très adapté à la rédaction d'outils de serveur, ou d'outils de fonctionnement et de maintenance, car de nombreuses situations de fonctionnement et de maintenance peuvent fonctionner de manière asynchrone, et JavaScript a un support régulier relativement bon, donc ce n'est pas un gros problème pour remplacer Bash et Python; Node.js n'a besoin que d'installer l'interprète et peut être utilisé avec désinvolture, sans crainte d'éviter l'introduction de dépendances. Pour la programmation de bureau et d'appareils mobiles, Node.js a Node-Webkit et divers autres shells. Bien que l'expérience d'utilisation actuelle ne soit pas très bonne, elle peut réduire considérablement les coûts de développement et facilement multiplateformes. On pense que l'avenir est également brillant.
Enfin, parlons d'apprendre Node.js. À mon avis, Learning Node.js a deux points. L'une consiste à clarifier le «IO asynchrone basé sur les rappels d'événements» de Node.js. Il s'agit du point le plus différent entre Node.js et d'autres langages de programmation traditionnels. Ensuite, la deuxième étape consiste à jeter un œil aux 100 meilleures bibliothèques sur NPM. Il n'est pas nécessaire de regarder de près. Soyez simplement familier avec cela et sachez ce que fait chaque bibliothèque. Après avoir terminé ces deux étapes, félicitations, vous êtes déjà un développeur Node.js.