đą Node.js
đŠ Packages
Lâutilisation et la crĂ©ation de packages dans lâĂ©cosystĂšme JavaScript est une rĂ©elle force et une source dâincroyables opportunitĂ©s.
(comptage des modules par Ă©cosystĂšme)
Malheureusement beaucoup nâarrivent pas Ă y voir lâĂ©mergence dâun pattern qui est de pouvoir segmenter des projets trĂšs simplement en diffĂ©rents modules qui seront bien plus facilement maintenables et testables sur long terme. La majoritĂ© des dĂ©veloppeurs ne rĂ©alisent pas la puissance mĂȘme du systĂšme de modules quâils ont entre les mains (et il nâest ici pas uniquement question dâopen-source ou de npm).
Câest une des remarques que je fais le plus Ă mes clients en tant quâExpert Node.js⊠Tout le monde a une tendance Ă construire par instinct des monolithes non-modulaire alors que par exemple les algorithmes en lien avec le mĂ©tier peuvent ĂȘtre gĂ©rĂ©s au sein dâun module Ă part (ce genre de dĂ©tails peut accĂ©lĂ©rer la productivitĂ© dâune Ă©quipe par un ratio de 5.. câest du vĂ©cu).
Et il nâest pas question ici de nĂ©cessairement segmenter en 50 modules⊠2 Ă 4 modules câest dĂ©jĂ un bon dĂ©but pour une Ă©quipe.
Si vous avez lâoccasion ou une idĂ©e de packages alors je vous recommande fortement dâessayer lâaventure au moins une fois.
Articles et talks
- EN Getting started NPM
- EN NodeSchool - How to NPM
- EN CJ Silverio, CTO of npm
- EN npm and the Future of JavaScript - Laurie Voss, npm, Inc.
- EN Radical Modularity - Aria Stewart, npm, Inc.
- EN Awesome npm
- EN Super Fast & Efficient Package Manager with Zoltan Kochan, PNPM Creator
Il est possible dâutiliser la commande npm link pour travailler avec des packages ou des modules qui ne sont pas encore publiĂ©s sur le registre npm.
đ Workshops
Vous ĂȘtes dĂ©butant et vous voulez vous entraĂźner ? NâhĂ©site pas Ă dĂ©couvrir le workshop suivant qui est vraiment simple: EN How to npm
Monorepo & workspaces
Il peut aussi ĂȘtre intĂ©ressant dâexplorer la piste des monorepos et workspaces qui sont maintenant inclus par dĂ©faut sur yarn et npm 7. Il est aussi possible dâutiliser le package lerna.
Câest une solution trĂšs intĂ©ressante notamment pour nâavoir quâun seul repo git mais tout en conservant lâavantage de la segmentation en modules/packages. Quelques liens pour vous documenter sur le sujet :
- EN Simplify your monorepo with npm 7 workspaces
- EN npm Workspaces (RFC)
- EN Workspaces in Yarn
- EN pnpm Workspace
- EN đ A tool for managing JavaScript projects with multiple packages.
Je commence pour ma part à peine à les utiliser à travers différents projets, donc je compléterai la section au cours des prochains mois.
âŹ ïž đą Node.js: đ CLI) | âĄïž đą Node.js: đ Debugging & Profiling