Maison  >  Article  >  interface Web  >  Comment devenir un meilleur développeur Node.js en 2019

Comment devenir un meilleur développeur Node.js en 2019

不言
不言avant
2019-01-11 10:26:292909parcourir

Cet article compile 19 compétences et sujets qui peuvent être utiles en 2019. Mais ne ressentez aucune pression : moi-même et la plupart des autres développeurs ne sommes pas familiers avec tous les sujets. Je pense simplement que ces choses méritent notre attention et que l'écosystème JavaScript est sans fin.

1. Ajouter des types et des modèles - TypeScript est un très bon candidat en 2019

Il s'avère que le codage sans type est non seulement inefficace, et comporte des erreurs. sujet. Mais cela ne signifie pas que vous devez utiliser une syntaxe de type stricte. Vous pouvez choisir la rigueur du type en fonction de la situation réelle, par exemple en utilisant JSON Schema ou Joi pour vérifier les entités et les modèles, ou en utilisant des types statiques pour annoter JS (veuillez vous référer). vers https://github.com/facebook/flow ), ou utilisez le TypeScript complet.

TypeScript a fait des progrès significatifs en 2018 et semble être entré sur le territoire de Node. Si vous envisagez d'utiliser TypeScript, vous devez vous demander si vous souhaitez simplement utiliser ses capacités de type. Si vous souhaitez également utiliser des interfaces et des classes abstraites, vous devrez peut-être apprendre un nouveau paradigme de programmation.

2. Enrichissez votre linter

Linter est en fait un déjeuner gratuit, sa configuration ne prend que 5 minutes, vous pouvez bénéficier d'une protection automatique du code gratuitement et trouver des problèmes majeurs lors de la saisie du code. Il est révolu le temps où le peluchage n’était qu’une fantaisie. Aujourd'hui, les linters peuvent détecter de graves problèmes de code, tels que des erreurs qui ne sont pas générées correctement, des informations manquantes, des promesses non tenues et d'autres bogues que vous ne voulez jamais vraiment laisser dans votre code.

3. Plus de Java et moins de Ruby - Approfondissez vos connaissances en architecture

Il n'y a pas beaucoup de connaissances sur l'architecture et la conception de l'écosystème NodeJS, tout le monde en parle de microservices, mais n'en parle que certaines structures internes. Par conséquent, la plupart des applications et des exemples sont basés sur les concepts MVC ainsi que sur d'autres modèles de Ruby. Qu'est-ce qui ne va pas avec ça ? MVC est idéal pour créer des services de contenu, mais pas très efficace pour créer des backends robustes. Pouvez-vous utiliser deux classes : Contrôleur et Modèle pour décrire l'ensemble de votre logique métier, vos règles, votre accès aux données, votre communication avec d'autres microservices ?

Je ne recommande absolument pas d'opter pour le modèle lourd Java/Spring (c'est pourquoi nous sommes sur le territoire de Node, n'est-ce pas ?), mais de choisir quelque chose qui apporte de la valeur sans sacrifier l'idée de simplicité de l'application.

4. Planifiez comment exploiter les Hooks asynchrones pour un meilleur suivi et un meilleur contexte

Le modèle monothread présente un inconvénient : les requêtes perdent leur contexte lorsqu'elles transitent par plusieurs fichiers et s'exécutent de manière asynchrone. Lors du fonctionnement, les variables ne sont pas conservés tout au long de leur vie. Pourquoi est-ce mauvais ? Par exemple, les développeurs souhaitent souvent inclure un identifiant unique dans chaque entrée de journal afin que toutes les entrées de journal d'une même requête puissent ensuite être corrélées - ce n'est pas très facile à réaliser en 2018.

Il y aura des nouveautés en 2019, et Async Hook en fait partie (ce n'est pas une toute nouvelle fonctionnalité, mais elle mettra bientôt fin à la phase expérimentale) - en termes simples, il s'agit d'un fonctionnement asynchrone. Un mécanisme pour injecter du code personnalisé à tout moment au début et à la fin. Cela vous permet de corréler tout le code pour la même requête et de préserver le contexte. Cela a jeté les bases de nombreux packages personnalisés qui font passer les capacités de suivi et contextuelles de Node à un niveau supérieur.

5. Découvrez les dernières nouveautés en matière de « sans serveur »

Remarque : les termes FaaS et sans serveur sont utilisés de manière interchangeable ici, bien qu'ils ne soient pas exactement les mêmes.

À l'origine, FaaS était utilisé pour le développement de microtâches, et non pour des applications de type « microservices ». À mesure que leur popularité augmentait, l’appétit des fournisseurs de cloud augmentait également, et bientôt de nouvelles fonctionnalités commençaient à s’accumuler, et en 2019, cela semblait être une infrastructure d’applications puissante.

Peut-il désormais rivaliser avec Kubernetes et servir de grandes applications ? Certains considèrent le sans serveur et le FaaS comme des technologies orthogonales, mais en réalité, chaque nouvelle application cloud en 2019 doit choisir l'une des trois : instances nues (telles que EC2 ou GCP Compute), Kubernetes ou FaaS. Par conséquent, comprendre K8S et FaaS/Serverless et connaître la différence entre eux deviendra une compétence de conception essentielle.

6. Comprendre les dernières fonctionnalités de JavaScript

Je ne suis pas un grand fan de courir après chaque nouvelle fonctionnalité du langage. Parfois, ces jouets brillants peuvent violer le principe de simplicité du code. Certaines fonctionnalités JavaScript vraiment utiles s'installeront avec le temps (comme async/await introduit il y a deux ans), donc la liste de propositions TC39 et node.green valent la peine d'être consultées.

7. Être familier avec au moins une technologie API - GraphQL est un bon candidat en 2019

L'API de style REST est bien adaptée à ses objectifs de conception : fournir un bon contrôle sur la modification et les requêtes des entités. En supposant que vous disposez d'un système d'enregistrement financier, vous souhaiterez peut-être concevoir les paramètres de manière à ce qu'ils soient très rigides, c'est-à-dire un modèle de données explicite unique. Cependant, il existe d'autres scénarios très courants dans lesquels REST échoue, tels que l'exécution d'une série de requêtes pouvant renvoyer différents ensembles de données, les réseaux à faible bande passante où les charges utiles des API doivent être minimisées, les communications de machine à machine où la vitesse est mise en avant, et ainsi de suite. Alors faut-il le remplacer par autre chose ? Bien sûr que non, vous pouvez choisir de mélanger les choses. Les API ne sont pas une architecture, ce sont simplement des ports (c'est-à-dire des points d'entrée) vers des applications, et plusieurs styles d'API peuvent coexister, même au-dessus d'un seul framework Web comme Express.

Alors lequel devriez-vous apprendre ? Votre meilleur pari est probablement GraphQL, qui devient courant. Son écosystème est très mature et propose des cas d'usage très populaires tels que la recherche dynamique et les sources de données hiérarchiques. D'un autre côté, gRPC reste une technologie de niche adaptée à la communication de serveur à serveur car elle entraîne très peu de surcharge (par exemple, utilisée dans les systèmes Pub-Sub/message file d'attente).

8. Au-delà des tests unitaires et d'intégration

Connaissez-vous déjà la pyramide des tests, les tests unitaires, d'intégration et de bout en bout ? Génial, ce sont les bases d’une stratégie de test réussie. Le paysage du développement a radicalement changé au cours des 10 dernières années, mais le modèle de test est resté presque le même, nous laissant nous demander comment tester des éléments tels que les microservices, les interfaces riches et le sans serveur. Certaines technologies modernes complètent et remplacent parfois les piles technologiques traditionnelles, permettant une stratégie de test plus simple et un retour sur investissement plus élevé.

9. Suivez les meilleures pratiques SRE/DevOps en matière de surveillance

En 2019, même une application de taille moyenne peut contenir des dizaines de pièces mobiles. Cependant, la plupart des développeurs ne prennent pas la peine d’apprendre les aspects de surveillance et d’alerte qui leur sont enseignés par les ingénieurs SRE. Par exemple, les développeurs donnent souvent la priorité et se concentrent sur les mesures matérielles internes telles que le processeur et la mémoire plutôt que de penser aux mesures qui ont un impact direct sur l'expérience de l'utilisateur final, telles que les taux d'erreur ou la latence. Ces indicateurs destinés aux clients sont parfois appelés « signaux en or » et en 2019, vous souhaiterez peut-être commencer par prêter attention à ces indicateurs et adopter des bonnes pratiques similaires.

10. Pensez comme un attaquant : augmentez votre niveau de sécurité en apprenant les outils et techniques d'attaque

Si vous ne pouvez pas penser comme un attaquant, vous ne pouvez pas penser comme un défenseur. En 2019, vous ne devriez pas confier votre défense à des sociétés tierces ni vous fier uniquement à des scanners de sécurité statiques : le nombre de types d'attaques est écrasant et la vitesse à laquelle les applications changent est incontrôlable – après deux jours d'atelier sur la sécurité, l'équipe a peut-être ajouté plusieurs nouveaux services AWS, types de bases de données et nouveaux rôles IAM... Par conséquent, les développeurs constituent en fait la plus grande menace cachée, et les éduquer semble être le remède ultime. Vous devez intégrer l’ADN de la sécurité en vous-même et dans votre équipe et ajouter de la sécurité à tout.

Lorsque vous commencez à faire cela, il s'avère que les problèmes de sécurité ne sont pas si effrayants après tout. Il vous suffit de vous familiariser avec les types et outils d'attaque courants, de définir l'architecture et le flux de l'application et de réfléchir à la manière dont vous l'attaqueriez vous-même. Au fil du temps, et avant de vous en rendre compte, vous penserez à la sécurité avec chaque décision de conception que vous prenez et chaque ligne de code que vous écrivez.

11. Développer une stratégie de mise à jour des packages

Leçons de 2018 : Mettre à jour trop tôt peut être dangereux. Une équipe utilisera généralement l’une de ces deux stratégies de mise à jour des packages : l’une consiste à mettre à jour le plus rapidement possible, parfois même en utilisant un processus automatisé. La première est qu’il n’y a aucune stratégie de mise à jour et que parfois les mises à jour sont basées sur l’humeur. Même si la première méthode semblait meilleure, elle est devenue étonnamment la méthode la plus dangereuse en 2018 : en 40 jours, la communauté a découvert plusieurs incidents de packages malveillants tels que ceux qui attendaient ou ceux qui n'avaient pas mis à jour allaient bien. Pensez à utiliser des outils automatisés pour formaliser votre stratégie de mise à jour et trouver le juste milieu entre l'absence de mise à jour et les mises à jour.

12. Effectuez des installations progressives et des phases de déploiement et de publication distinctes

En 2019, vous trouverez peut-être important d'effectuer des déploiements plus sécurisés, c'est-à-dire de ne pas déployer simultanément sur tous les environnements de production, puis de faire votre mon petit cœur bat comme un marteau. Les déploiements précis (c'est-à-dire les déploiements Canary) peuvent être décomposés en 3 phases : Déploiement – envoi d'un nouveau code à un nouvel environnement de production isolé (tel qu'un nouveau service Kubernetes ou une nouvelle instance de machine). À ce stade, il ne sert pas les utilisateurs réels, il n'y a donc pas de quoi s'inquiéter. Tests – Un petit nombre de personnes peuvent désormais utiliser une instance de l'environnement de production et tester le nouveau code. Release - Autorisez progressivement davantage d'utilisateurs à utiliser la nouvelle version, et lorsque vous êtes suffisamment en confiance, vous pouvez supprimer l'ancienne version.

Remarque : Réaliser un déploiement Canary à grande échelle coûte encore très cher en 2019 car cela nécessite de coordonner de nombreux composants d'infrastructure, tels que le routage et la surveillance. Par conséquent, envisagez de commencer par des déploiements Canary simples et semi-manuels (par exemple, en lançant manuellement davantage d'hôtes avec une nouvelle version déployée en fonction des métriques de surveillance).

13. Kubernetes dévore le monde

Il existe une tendance claire : Kubernetes (K8S), une infrastructure qui fournit des services de mise en réseau, d'évolutivité, de déploiement et d'autres services de base pour les composants d'application, est désormais presque le standard de facto pour les applications hébergées. Sa popularité est stupéfiante : avec le support de tous les fournisseurs de cloud et un écosystème d'évolutivité inégalé, 54 % des entreprises disposent déjà d'au moins un cluster K8S.

Si vous êtes débutant, voici un bon aperçu pour commencer. Découvrez également Istio, K-Native, les tâches Kuberenes, la politique réseau, Helm, Scaffold. En fin de compte : le temps que vous passerez à développer une compréhension plus approfondie des compétences K8S finira par porter ses fruits.

14. La technologie Blockchain offre de grandes opportunités

Une tendance très claire : la Blockchain n'est pas seulement utilisée pour le Bitcoin et les fonctions cryptographiques, elle peut également être utilisée pour tout système sexuel de transaction distribué.

15. Acquérir des compétences en machine learning et avoir au moins quelques points de discussion

Une tendance très évidente Malheureusement, je ne connais rien aux bibliothèques de machine learning. Mon objectif pour 2019 est au moins de pouvoir en parler. Proposez quelque chose sur l'apprentissage automatique et soyez capable d'identifier des gains rapides (par exemple, les bibliothèques JS comme tensorflow.js et brain.js peuvent fournir des informations sans disposer d'une infrastructure solide).

16. Comprendre le code d'autres bibliothèques open source

Soyez conscient que l'utilisation de la même technologie dans un projet pendant une longue période peut rétrécir votre vision et cacher de nombreuses alternatives. Essayez donc d’en savoir plus sur d’autres projets, principalement des projets open source réussis.

17. Approfondissez votre compréhension du système d'exploitation Linux, en vous concentrant sur les processus Linux

Comprendre le processus Linux vous donnera un réel avantage concurrentiel, car il affectera de nombreuses tâches de développement, telles que la surveillance, la protection des processus , utilisez Docker, arrêtez-vous correctement et effectuez d'autres tâches. Essayez de comprendre les processus, les signaux, les modèles d'autorisation, les commandes courantes, les types de processus, etc.

18. Obtenez une compréhension plus approfondie des composants internes de Node.js

J'aime vraiment ce que Ryan Dahl (auteur original de Node.js) a dit : « Vous ne pouvez pas tout comprendre, mais vous devriez laisser Get. connaître le système vous-même. Avoir une compréhension approfondie de la machine sous-jacente s'avère précieux lorsque vous devez faire face à un problème de production ou concevoir certains composants d'infrastructure tels que la surveillance des performances des boucles d'événements. Vous connaissez peut-être déjà les éléments de base tels que la v8 et la libuv.

Donc, 2019 est le bon moment pour en savoir plus sur Node.js, par exemple, que se passe-t-il exactement dans chaque cycle de boucle d'événements libuv ? Ou peut-être comprendre comment fonctionne l'interaction avec les E/S du système d'exploitation (par exemple, les poignées d'activité) ?

19. Apprenez à utiliser la méthode scientifique

Ce que vous apprenez et internalisez façonnera votre future carrière. Cependant, de nombreux développeurs n’ont ni stratégies d’apprentissage ni appris à utiliser des méthodes scientifiques pour un apprentissage efficace.

Lors d'une réunion sur "Prévenir les erreurs de type JavaScript", le vice-président a demandé de continuer à utiliser JavaScript sans refactoriser l'intégralité de la base de code (sans utiliser TypeScript...), et soudain un de vos collègues a suggéré d'utiliser Facebook Flow, Everyone dans la chambre d'accord ! Vous vous souvenez soudain que vous avez déjà vu un article à ce sujet, mais cela n’a jamais été intériorisé par vous, il vous est simplement passé par l’esprit.

Que se passe-t-il ?

Apparemment, il existe un phénomène appelé « illusion de compétition » qui explique pourquoi nous oublions ces choses : vous pouvez passer une heure à lire un article de blog mais ne pas vous en souvenir au bout de quelques jours ! La recherche montre que si vous essayez de parler de ces choses à quelqu'un plus tard, ou si vous relisez le résumé de l'article le lendemain, vous pouvez grandement améliorer votre mémoire. Bien entendu, il existe diverses autres techniques qui peuvent vous aider à mémoriser et à acquérir les bonnes connaissances au bon moment. Passer quelques heures à apprendre à étudier peut rapporter d’énormes bénéfices dans votre carrière !


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer