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

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 56

  • @notrehistoire3711
    @notrehistoire3711 4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    vidÃĐo encore trÃĻs intÃĐressante, beaucoup d'ÃĐvolution depuis 2 ans sur la qualitÃĐ de celle-ci continue comme ca 😎😎

    • @codeursenior
      @codeursenior  3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Merci pour ton retour sur la qualitÃĐ des vidÃĐos, ça fait plaisir à entendre. 👍

  • @emmanuelgaianeorchanian6659
    @emmanuelgaianeorchanian6659 11 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē

    TrÃĻs intÃĐressant merci à toi

  • @faouzielmansour
    @faouzielmansour 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Heureux de te revoir

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Yesss

  • @emmanueldigital9604
    @emmanueldigital9604 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Merci Simon

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Merci à vous, bon code !
      Simon.

  • @atchakpaaahmed5444
    @atchakpaaahmed5444 3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    trÃĻs inintÃĐressante comme video mais un cas concret avec du code permet de consolider la comprÃĐhension de ce que tu explique

    • @codeursenior
      @codeursenior  2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Salut, c'est entendu, je me suis notÃĐ de rester le plus possible concret dans les prochaines vidÃĐos.

  • @arnauddjougounah2719
    @arnauddjougounah2719 4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    TrÃĻs instructif

    • @codeursenior
      @codeursenior  4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Au top. 👍

  • @leaderbaraboy
    @leaderbaraboy 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Merci !

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Au plaisir, bon code !

  • @Rocamescope
    @Rocamescope 4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    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

  • @user-hy6tr9fl5n
    @user-hy6tr9fl5n 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Merci

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Merci à toi.
      Simon.

  • @davidbonan2325
    @davidbonan2325 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    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 ?

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Oui, tout à fait. J'envisage de proposer une vidÃĐo prochainement, vous Êtes nombreux à me l'avoir demandÃĐ.
      Bon code et à bientÃīt,
      Simon.

  • @zHqqrdz
    @zHqqrdz 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    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" :)

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

  • @tolstoievski4926
    @tolstoievski4926 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Une question, tu utilises plus les templates driven form ou les reactives forms ?

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

  • @balb4903
    @balb4903 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Salut quels sont les 5 projets pour dÃĐbutants que tu conseillais dans une prÃĐcÃĐdente vidÃĐo ?

    • @codeursenior
      @codeursenior  4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Bonjour, merci pour votre message, car cela me fait penser que je dois faire une vidÃĐo sur le sujet. À trÃĻs vite !

  • @xthesly
    @xthesly 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    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 )

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

  • @ApprendreSansNecessite
    @ApprendreSansNecessite 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +3

    Blanche Neige a dit : "Non non non ! Pas sous l'tapis"

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      J'ai pas la rÃĐfÃĐrence mais ça à l'air croustillant.

    • @ApprendreSansNecessite
      @ApprendreSansNecessite 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      @@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 ;)

    • @ApprendreSansNecessite
      @ApprendreSansNecessite 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      @@ApprendreSansNecessite 😂

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      @@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" ?

  • @zainou8460
    @zainou8460 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    le client c'est le consumer? (ou le voyageur devant le comptoir de l'aeroport)?

    • @codeursenior
      @codeursenior  āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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 !

  • @zemiorka
    @zemiorka 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    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

    • @GamingDesCavernes
      @GamingDesCavernes 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Les bons principes, on finit toujours par les inventer si on ne les connaÃŪt pas d'avance.

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Vous pouvez dÃĐsormais prÃĐtendre au titre de dÃĐveloppeur Senior !

  • @anoumayeboua9257
    @anoumayeboua9257 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    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..

    • @codeursenior
      @codeursenior  4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Ah ça, on dÃĐcouvre gÃĐnÃĐralement l'historique sur le terrain.

  • @CoIdestMoments
    @CoIdestMoments 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +2

    le mec est dev senior depuis 125 ans tourne toujours des vidÃĐos comme un clochard au rsa , c'est fort

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Je confirme ce qui est suggÃĐrÃĐ dans ce commentaire :
      J'ai bien 125 ans d'expÃĐrience en tant que dÃĐveloppeur Senior.

  • @pegasusgemini6541
    @pegasusgemini6541 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Pourquoi ça me fait penser au principe d'inversion de dÃĐpendance ?

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      La Facade n'est pas une classe abstraite, et on ne pas utiliser l'injection de dÃĐpendance.

    • @mrmaxwell0701
      @mrmaxwell0701 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

    • @zHqqrdz
      @zHqqrdz 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      ​@@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 ðŸĪ”

  • @guillaumevadar1695
    @guillaumevadar1695 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    T'as pas ÃĐtÃĐ l'un des plus jeunes formateurs JavaScript de France toi par hasard ?

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Bon sang ! Comment est-ce que vous le savez ?

  • @PatriceFERLET
    @PatriceFERLET 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    "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.

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Vous Êtes passÃĐ de quel langage à quel langage ? Et de quel paradigme à quel paradigme ?

  • @ToezzyTV
    @ToezzyTV 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    montre nous du code :p hein

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Vous avez raison, c'est un peu sec. La vidÃĐo manque de sauce là-dessus !

  • @Creativeetea
    @Creativeetea 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    La musique est tellement inutile. Le contenu est là

    • @codeursenior
      @codeursenior  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +2

      C’est dÃĐjà mieux que le contraire : ÂŦ le contenu est inutile, mais la musique est là Âŧ