Transformez votre code avec le Design Pattern le plus accessible pour un DÃĐveloppeur Junior
āļāļąāļ
- āđāļāļĒāđāļāļĢāđāđāļĄāļ·āđāļ 26 āļ.āļ. 2024
- ðĻðŧâðŧ DÃĐmarrer votre carriÃĻre de DÃĐveloppeur Professionnel :
www.angularsenior.fr/apply
***
Ce Design Pattern est tellement simple que je me demande s'il mÃĐrite une vidÃĐo...
Quand j'ÃĐtais à la Fac ?
Je ricanais que des personnes ai pris le temps d'ÃĐcrire une documentation sur ce Design Pattern !
Aujourd'hui en tant que Tech Lead et Formateur ?
J'ai ravalÃĐ ma salive...
Ce Design Pattern est un des plus puissants que j'utilise tous les jours...
MÊme si mon client a 30 ans de code legacy.
Dans cette vidÃĐo, je vais vous montrer concrÃĻtement comment j'implÃĐmente ce Design Pattern dans mes projets Angular en production.
Bon visionnage,
Simon.
- Le design pattern "Facade" sur Refactoring Guru :
refactoring.guru/fr/design-pa...
***
âŽâŽâŽâŽâŽ ðĻðŧâðŦ UniversitÃĐ publique du Codeur Senior ðĻðŧâðŦ âŽâŽâŽâŽâŽ
- DÃĐbuter sur Angular : âĒ Angular Tutorial Franç...
- DÃĐbuter sur NodeJS : âĒ Node JS Tutorial Franç...
- 23 Design Patterns pour DÃĐveloppeur Frontend : âĒ ðĻðŧâðŦ 23 Design Patterns
00:00 : Introduction
00:12 : La dÃĐfinition officielle du simplissime Design Pattern "Facade"
01:45 : Qu'est-ce qu'une "Facade" et quel est le rÃĐel enjeu avec votre code ?
04:21 : Comment savoir QUAND vous devez coder une "Facade" dans votre projet ?
07:11 : Comment coder le Design Pattern Facade en partant de zÃĐro ?
09:39 : [Exemple dans la vraie vie] ImplÃĐmentation de la "Facade" sur un projet Angular en production ?
13:27 : [Erreur de dÃĐbutant n°1] : Le Sandwich anti-pattern
15:08 : [Erreur de dÃĐbutant n°2] : La Facad'zilla anti-pattern
16:50 : [Erreur de dÃĐbutant n°3] : Confondre "Refactoring" et "Design Pattern"
17:41 : Le biais des dÃĐveloppeurs avec la Facade
18:20 : PrÃĐsentation de la playlist "ðĻðŧâðŦ 23 Design Patterns pour DÃĐveloppeurs Frontend"
19:17 : La Newsletter du Code Senior
vidÃĐo encore trÃĻs intÃĐressante, beaucoup d'ÃĐvolution depuis 2 ans sur la qualitÃĐ de celle-ci continue comme ca ðð
Merci pour ton retour sur la qualitÃĐ des vidÃĐos, ça fait plaisir à entendre. ð
TrÃĻs intÃĐressant merci à toi
Heureux de te revoir
Yesss
Merci Simon
Merci à vous, bon code !
Simon.
trÃĻs inintÃĐressante comme video mais un cas concret avec du code permet de consolider la comprÃĐhension de ce que tu explique
Salut, c'est entendu, je me suis notÃĐ de rester le plus possible concret dans les prochaines vidÃĐos.
TrÃĻs instructif
Au top. ð
Merci !
Au plaisir, bon code !
Hello ! Je suis tombÃĐ par hasard sur tes vidÃĐos et elles sont assez intÃĐressantes, mÊme en tant que dev iOS !
Je me demandais, est-ce que tu aurais des ressources (livres ou autre) sur les TUA ? J'aimerai savoir quel est l'ÃĐtat de l'art actuel sur le sujet mais je galÃĻre à trouver des infos solides
Merci encore pour le boulot mis dans tes vidÃĐos
Merci
Merci à toi.
Simon.
Merci pour ce contenu de qualitÃĐ pour les dÃĐveloppeurs un peu plus avancÃĐ que la majoritÃĐ des contenus de YT.
As tu des conseils de livres que tu recommandes avec un mix entre hard et softskills ?
Oui, tout à fait. J'envisage de proposer une vidÃĐo prochainement, vous Êtes nombreux à me l'avoir demandÃĐ.
Bon code et à bientÃīt,
Simon.
17:00 Je pense que tu perds les dÃĐbutants ici. Cette distinction n'est pas importante autant concrÃĻtement que thÃĐoriquement. Le pattern dont tu parles, au final, c'est simplement d'ajouter une couche d'abstraction pour simplifier l'interface utilisÃĐe par le client. Mais ça c'est vrai à tous les niveaux d'abstraction. On veut, le plus possible, avoir une interface simple à utiliser pour la couche du dessus.
Et d'ailleurs si on veut rester puriste, faire de la refacto passe bien souvent par l'implÃĐmentation de design patterns. Leur niveau d'abstraction n'a pas d'incidence sur le travail fourni. Cela reste du refactoring, on amÃĐliore la structure du code sans modifier son comportement.
Super vidÃĐo en tout cas, et totalement d'accord avec le dÃĐbut, c'est un concept tellement fondamental et gÃĐnÃĐrique...mais bon, "facade" c'est plus stylÃĐ que "service" :)
Salut, merci pour ton retour. Il me semble que nous sommes d'accord sur le fond, mÊme si nous n'utilisons pas tout à fait le mÊme vocabulaire.
Une question, tu utilises plus les templates driven form ou les reactives forms ?
J'utilise les Reactive Forms, mais c'est à vous et votre ÃĐquipe de choisir. D'excellents dÃĐveloppeurs prÃĐfÃĻrent les templates driven form. Mais j'ai une moins bonne expÃĐrience avec sur des projets importants.
Salut quels sont les 5 projets pour dÃĐbutants que tu conseillais dans une prÃĐcÃĐdente vidÃĐo ?
Bonjour, merci pour votre message, car cela me fait penser que je dois faire une vidÃĐo sur le sujet. Ã trÃĻs vite !
TrÃĻs bonne vidÃĐo merci !
Question HS que penses-tu de Svelte/kit notamment pour des dÃĐbutants et ÃĐventuellement pour des pros ( dâailleurs si dâautres veulent rÃĐpondre aussi )
Je me concentre exclusivement sur une analyse PRO. Je regarde d'abord le marchÃĐ. Et le marchÃĐ dit : Angular, React et Vue. Le lÃĐger avantage de Svelte sur sa gestion de la rÃĐactivitÃĐ interne va Être rattrapÃĐ dans les nouvelles mises à jour de ces 3 frameworks. Je ne vois pas comment ce framework va se faire une place, mÊme si je fais ma veille technique dessus de temps en temps.
Blanche Neige a dit : "Non non non ! Pas sous l'tapis"
J'ai pas la rÃĐfÃĐrence mais ça à l'air croustillant.
@@codeursenior C'est littÃĐralement une citation du film d'animation. Alors que Blanche Neige nettoie la maison des 7 nains, deux ÃĐcureuils tentent de cacher du code spaghetti derriÃĻre une façade et elle leur did "non non non, ça ce n'est pas une abstraction. Une abstraction c'est quelque chose au sujet duquel tu peux raisonner et dont tu peux prÃĐdire le comportement, alors vire-moi cette classe ou ce hook qui ne veulent rien dire car tu vas finir par dÃĐpendre d'une interface qui couple des choses qui ne devraient pas Être couplÃĐes et que tu ne pourras pas simplement refactor aprÃĻs". Enfin, elle dit tout ça en chantant bien-sÃŧr ;)
Pour Être honnÊte, le danger de penser qu'un cache misÃĻre est une abstraction, il est traitÃĐ Ã diffÃĐrents moments dans la vidÃĐo, notamment quand tu prÃĐcises qu'il faut une façade par client. Parce que ce qui ne manque pas d'arriver, et je l'ai vraiment vu et revu, c'est de te retrouver à avoir plusieurs composants qui ne dÃĐpendent pas de la mÊme partie d'une mÊme facade, et là tout l'intÃĐrÊt de la façade disparaÃŪt parce qu'à l'origine ce que tu voulais c'ÃĐtait que tes composants ne dÃĐpendent pas de fonctionnalitÃĐs dont ils n'ont pas besoin, parce que ça les rend fragiles. Mais le souci quand on crÃĐe des interfaces qui n'ont pas de sens, qui ne sont pas des abstractions, c'est que ce genre de chose peut arriver sans qu'on s'en rende vraiment compte parce qu'on n'est pas capable d'expliquer pourquoi telle fonctionnalitÃĐ dont appartenir à telle classe ou à telle autre. D'autant que, comme tu le soulÃĻves, si tu utilises une façade, tu as envie qu'elle devienne l'unique interacteur du client, si non ce serait une demi-façade.
La façade, c'est simple, c'est puissant, mais c'est terriblement insatisfaisant. Je l'utiliser surtout pour ne pas exposer des parties que j'ai exportÃĐ parce que ce sont des abstractions internes que je veux tester et qui sont partagÃĐes par diffÃĐrentes parties de l'application ou de la bibliothÃĻque, mais qui ne doivent pas franchir une barriÃĻre architecturale ou une API.
@@ApprendreSansNecessite ð
@@ApprendreSansNecessite Au top, merci pour ton retour. J'essaye de faire passer ce message : 1 Facade pour 1 client donnÃĐ. Vous pensez que je mentionne trop le terme "cacher le bazar" ?
le client c'est le consumer? (ou le voyageur devant le comptoir de l'aeroport)?
Le client dÃĐsignÃĐ le ÂŦ code client Âŧ. En ayant en tÊte comment votre code va Être consommÃĐ et Être attentif au contrat que vous construisez, vous pouviez construire un code plus stable pour un projet. Bon code !
Nom de Zeus ! Je me rends compte que je viens de mettre en place ce pattern façade dans mon application java. De façon purement intuitive
Les bons principes, on finit toujours par les inventer si on ne les connaÃŪt pas d'avance.
Vous pouvez dÃĐsormais prÃĐtendre au titre de dÃĐveloppeur Senior !
10:04 11:24 Mdr c'est à cause des deadlines et des turnovers chacun fait à sa sauce.. et bonne chance à au lead tech qui est arrivÃĐ aprÃĻs un dÃĐpart prÃĐcipitÃĐ et pas loin de la deadline..
Ah ça, on dÃĐcouvre gÃĐnÃĐralement l'historique sur le terrain.
le mec est dev senior depuis 125 ans tourne toujours des vidÃĐos comme un clochard au rsa , c'est fort
Je confirme ce qui est suggÃĐrÃĐ dans ce commentaire :
J'ai bien 125 ans d'expÃĐrience en tant que dÃĐveloppeur Senior.
Pourquoi ça me fait penser au principe d'inversion de dÃĐpendance ?
La Facade n'est pas une classe abstraite, et on ne pas utiliser l'injection de dÃĐpendance.
C'est effectivement une bonne intuition.
La facade implÃĐmente une interface qui vient "chapeauter" ce que Simon Dieny appelle le code legacy dans la video (les composants qui remplissent les fonctionnalitÃĐs concrÃĻtes ensemble).
Ainsi le code client dÃĐpend (utilise) de cette nouvelle interface tandis que les composants legacy forment un groupe qui implÃĐmente cette nouvelle interface.
Le flux de dÃĐpendances n'a donc plus un sens unique puisque chaque cotÃĐ voit sa dÃĐpendance converger vers la facade.
C'est ce la que l'on appelle l'inversion de dÃĐpendances.
â@@codeursenior ? @mrmaxwell0701 a raison mÊme si on peut utiliser les facades sans inversion de dÃĐpendances. Autant le faire, ça permet d'injecter des interfaces plutÃīt que des implÃĐmentations, et donc d'avoir une facade flexible dont le comportement peut changer sans changer d'interface.
Pas besoin pour une classe d'Être abstraite pour lui injecter des interfaces ðĪ
T'as pas ÃĐtÃĐ l'un des plus jeunes formateurs JavaScript de France toi par hasard ?
Bon sang ! Comment est-ce que vous le savez ?
"les patterns sont la dÃĐmonstration de la faiblesse d'un langage". P. Norvig.
J'ai largement changÃĐ de paradigme en passant à d'autres langages.
Vous Êtes passÃĐ de quel langage à quel langage ? Et de quel paradigme à quel paradigme ?
montre nous du code :p hein
Vous avez raison, c'est un peu sec. La vidÃĐo manque de sauce là -dessus !
La musique est tellement inutile. Le contenu est lÃ
Câest dÃĐjà mieux que le contraire : ÂŦ le contenu est inutile, mais la musique est là Âŧ