Une entreprise américaine (nommée Google) utilise des scripts méconnus pour mettre à jour des centaines dépôts de code Angular en interne.
Et ces scripts sont disponibles pour tous les développeurs dans le monde.
Le problème ?
La plupart des personnes ne savent pas que ces scripts existent.
Dans cette vidéo, nous allons voir comment vous pouvez bénéficier des mêmes scripts que chez Google pour moderniser vos applications Angular... En 1 seule ligne de commande !
Bon code senior, Bon visionnage, À bientôt,
Simon.
00:00 : Introduction 00:08 : L'histoire de mon audit d'une codebase Angular 01:16 : 5 commandes américaines que vous ne connaissez pas. 01:32 : Script pour le Control Flow (@if, @for) 03:18 : Script pour le ESBuild 04:00 : Script pour les Standalones Components 05:42 : Script pour le Lazy Loading 07:01 : Script pour la fonction inject() 08:08 : Conclusion
🛠️ Les 5 Scripts de la vidéo - Script 1 : ng g @angular/core:control-flow - Script 2 : ng update @angular/cli --name use-application-builder - Script 3 : ng g @angular/core:standalone - Script 4 : ng g @angular/core:route-lazy-loading - Script 5 : ng g @angular/core:inject-migration
ils auraient pu économiser 5 jours de
développement pas en étant plus
compétent ou en étant meilleur mais
juste en ayant une seule
information récemment dans le cadre de
mon travail j'ai été amené à faire un
audit sur une code base angular et j'ai
découvert quelque chose qui ne me
surprend plus c'est que on opère
généralement dans cette industrie qui
est l'industrie du code avec un niveau
de connaissance complètement partielle
par rapport à ce qu'il est possible de
faire par exemple si vous codez en
Python ou en tyesript et bien vous
connaissez noralement 10 % de la PI ou
10 % des connaissances qu'il avoir dans
cet écosystème et pourtant il faut
continuer à avancer et ce qui est
dommage c'est que une seule information
peut parfois vous économiser 3 jours 5
jours 2 semaines de développement dans
le cadre de l'audit que j'ai fait et
bien les développeurs qui intervenaient
sur ce projet en angular n'avaient pas
connaissance que angular fournit de base
un client HTTP et un système d'injection
de dépendance pour pouvoir le fournir de
manière scalable et testable à toutes
les parties de votre projet et donc
comme ils n'avaient pas cette
information et bien ils ont dû créer
leur propres clients HTTP ajouter de
nouvelles dépendances pour faire les
requêtes et cetera et tout le code et
les dépendances qu'ils ont consacré au
développement de ce client HTTP et bien
aurait pu être fait en une seule ligne
que je vous montre à l'écran mais ce qui
va nous intéresser dans cette vidéo et
bien c'est cinq informations que je vais
vous donner que vous ne connaissez
peut-être pas si vous intervenez sur une
codebase angular et qui peuvent vous
faire gagner beaucoup beaucoup de temps
aussi toutes ces informations entre
guillemets qu'on va voir sont lié au
angular moderne et la première
information et bien qui peut vous
intéresser c'est que il n'y a plus
besoin de faire ngif et NG for dans une
code base angular vous pouvez utiliser
une nouvelle controlle flow syntaxe avec
@as if @ or @ switch honnêtement je vous
recommande de passer sur cette nouvelle
manière de faire le plus rapidement
possible votre code sera plus performant
et vous n'avez plus à importer le
command module ou la directive x YZ en
question c'est directement buildin dans
le moteur de rendu dans donc déjà c'est
une première information intéressante si
vous ne le saviez pas mais surtout et
bien sachez que vous n'avez pas besoin
de faire cette migration à la main un
des gros avantage d'angular c'est qu'il
est utilisé en interne chez Google et
que quand il s'amuse à faire une
migration sur le framework et bien ils
vont mettre en place des outils
automatisé ce qu'on appelle des
schematics dans l'écosystème angular
pour effectuer ce genre de migration
automatiquement et à grande échelle sur
des centaines de dépôts angular et ce
qui est absolument fascinant c'est qu'on
peut accéder à ces outils complètement
gratuitement nous en tant que
développeur angular sur nos projets donc
vous avez la commande que j'affiche à
l'écran en exécutant cette commande
l'ensemble de la code base que vous avez
même si elle fait 10000 20000 lignes de
code et bien va automatiquement être mis
à jour avec @asif @obas for les
importations inutile de commod module
vont être supprimé et il va faire 99 %
du boulot tout seul il y a de rares cas
où vous allez devoir le faire
manuellement par exemple si vous aviez
un Mic Mac avec une directive NG switch
ou à l'intérieur vous avez des Boutes
code qui rentent pas dans des cases
spécifiques et bien angular va vous le
dire en disant il y a un petit souci
là-dessus je peux pas faire la migration
tout seul refactorise ton code en amont
et après je peux faire ça
automatiquement honnêtement la feature
et la migration sont géniales il y a
absolument rien à faire c'est juste du
bénéfice ça peut se faire en une heure
deuxième information importante et bien
c'est que le système de build d'angular
est maintenant passé sur un système 2S
build qui est plus performant plus
rapide plus léger bref l'écosystème s
mis à jour et là aussi la configuration
du Builder c'est jamais quelque chose
qui est très sexy quand on est
développeur on a généralement envie de
faire autre chose et bien encore une
fois la angular team est au rendez-vous
ils vont pas imposer à des centaines de
projets en interne chez Google et bien
de faire ce genre de configuration bas
niveau un peu pénible à chaque fois ils
vont mettre en place une schématique ce
que vous voyez à l'écran et qui va vous
permettre d'utiliser le nouveau Builder
à peu de frais et là encore une fois
vous avez une commande de Bul qui va
être plus rapide et vous allez livrer
quelque chose qui est plus léger donc en
tant que développeur comprend troisème
info intéressante à partir d'angular 19
par défaut tous les composants les
directives et les pipes seront standalon
si vous ne savez pas ce que ça veut dire
c'est que les Obas NG module dans une
code base angular et bien vont tendre à
disparaître et c'est pour le mieux
puisque c'était du code un peu verbeux
une pseudo encapsulation qui servait pas
à grand-chose tout ça va pouvoir être
bazardé et là encore il n'y a pas à le
faire à la main si votre code est à peu
près bien conçu vous avez la schematic à
l'écran qui va vous permettre de faire
cette migration automatiquement par
contre pour le coup ça rentre dans des
niveaux de complexité où l'outil ne s'en
sort pas toujours tout seul donc vous
aurez peut-être plus de travail à faire
à la main là où les commandes
précédentes c'est quasiment gratuit en
tout cas je vous recommande d'essayer de
migrer sur les standalone component
rapidement l'écosystème est en train de
s'aligner là-dessus et les NG modules
vont bientôt disparaître juste avant de
passer aux deux dernières infos qui
peuvent vous intéresser et bien je me
présente rapidement puisque on est plus
de 50000 aujourd'hui sur la chaîne donc
c'est quand même pas rien pour un petit
gars qui filme avec son téléphone chez
soi ça fait plaisir de voir que le code
senior est un sujet qui intéresse autant
de monde si vous êtes nouveau sur la
chaîne je m'appelle Simon j'étais un des
plus jeunes formateur JavaScript de
France puisquà seulement 26 ans et bien
je foris des ingénieurs de métier à Atos
qui est une des plus importantes ESN
d'Europe avec plus de 110000
collaborateurs mon but à travers cette
chaîne et bien c'est de construire des
standards pour notre métier et d'essayer
de voir comment on peut
professionnaliser industrialiser ce
qu'on fait avec le code puisqu'on a une
profession qui est jeune qui a moins 100
ans et quand je me rends au boulot pour
moi je suis comme au début de l'aviation
où on fait décoller des avions mais on
sait pas trop comment ils vont atterrir
c'est un peu la même idée ça va être de
se construire des standards pour ce
métier et si ça vous passionne autant
que moi et bien bienvenue sur la chaîne
4rième info importante ça va être de
passer sur des routes lazy loading
qu'est-ce que ça veut dire c'est que
quand votre client au sens l'utilisateur
de votre application va charger votre
projet angular dans son navigateur et
bien tout va absolument être embarqué
donc si vous avez 100 pages et bien les
100 pages les sans composants vont être
balancés à l'utilisateur il est possible
de réduire ce temps de chargement
initial en allant chercher les pages et
les composants dont vous avez besoin
uniquement lorsque l'utilisateur les
demande en naviguant dans les
différentes routes de votre projet vous
avez aussi une option qui permet de
précharger en arrière-plan certaines
pages on appelle ça une stratégie de
préloading on va pas rentrer dans les
détails tout de suite mais sachez que ça
permet d'alléger et de fluidifier la
navigation pour vos utilisateurs et
encore une fois là arti nous donne un
outil pour pouvoir migrer vers ce genre
de route extrêmement facilement et
rapidement où vous allez simplement
avoir des propriétés load component pour
chaque paf dans votre projet donc la
syntaxe est parfaite elle communique
exactement ce qu'on veut faire et en
plus en arrière-plan et bien on va
changer les composants que quand on en a
besoin et si vous avez peur que la
navigation soit saccadée quand
l'utilisateur navigue et bien vous
pouvez configurer la stratégie de
prelloading vous pouvez taper sur Google
preload route inangular app et vous
devriez est troué ce qu'il vous faut et
5ème info importante dans les versions
récentes d'angular et bien l'injection
de dépendance se fait plutôt via la
méthode inject que via le constructeur
ça va vous permettre déjà de pouvoir
utiliser l'injection de dépendance dans
des fonctions par exemple les Guard
fonctionnel dans angular on a plus de
classe maintenant ce qu'il est pas
possible de faire avec constructeur et
puis moi quelque chose qui me tient
beaucoup à cœur c'est que vous avez une
sémantique quand vous utilisez le
constructeur pour faire une injection de
dépendance ça implique que les gens qui
interviennent sur votre pro objet soit
familier avec angular puisque
généralement le constructeur n'est pas
utilisé pour l'jection de dépendance
dans la programmation orientée objet
classique c'est une surcouche un peu
invisible et bien pratique que angular a
mis en place avec inject le doute n'est
plus permis vous explicitez clairement
que vous venez injecter une dépendance
pour ce composant encore une fois si
vous voulez migrer de la syntaxe
constructeur à inject vous allez pas le
faire à la main créer un script avec des
rejectx il y a des outils de migration
automatique qui existent qui sont
utilisés en interne chez Google pour
migrer des centaines de pt utilisons-les
vous avez la commande schemati qui vous
permet de faire cette migration si vous
voulez aligner votre code base pour
mettre à jour avec l'écosystème global
voilà merci d'avoir pris le temps de
m'écouter j'espère que cette vidéo vous
a apporté de la valeur et si vous
cherchez à vous professionnaliser dans
votre production de code et bien voici
trois manières dont je peux vous aider
gratuitement premièrement vous pouvez
repasser de temps en temps sur la chaîne
j'essaie de poster une vidéo par semaine
sur mon expertise senior angular ou sur
des principes de code senior qui peuvent
parler à tout le monde même si vous
faites du bacel pas besoin de vous
abonner vous repassez sur la chaîne
quand vous en avez besoin deuxièmement
vous pouvez mettre un commentaire mettre
un pouce bleu interagir avec la chaîne
pour faire savoir queil y a une
communauté ici qui est intéressée par le
Code senior ça va nous permettre demain
d'avoir du poids pour aller interviewer
un technque chez Google un architecte
chez Netflix et cetera et d'avoir accès
à des pointures de notre industrie
directement sous forme d'interview sur
cette chaîne et puis enfin troisièmement
vous retrouverez en lien sous cette
vidéo un workshop en libre accès que
vous pouvez suivre en trois soirées de
code pour être prêt pour démarrer votre
première mission angular en entreprise
et si vous l'alz plus loin et vous
professionnaliseer et bien vous pouvez
demander à rejoindre l' angular senior
room dans laquelle je montre en live
comment je code sur des projets complexe
pour de vrai clients vous pouvez
demander à votre employeur de vous payer
un abonnement si vous pensez que ça peut
améliorer significativement le code que
vous produiser sur un projet angular
pour une mission en entreprise voilà en
tout cas je vous remercie je vous dis
ciao à bientôt pour la prochaine vidéo
et bon code Seigneur d'ici là Ciao