Tap to unmute

Transformez votre code avec le Design Pattern le plus accessible pour un Développeur Junior

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 เม.ย. 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 Pattern...
    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
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 51

  • @notrehistoire3711
    @notrehistoire3711 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  6 วันที่ผ่านมา

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

  • @faouzielmansour
    @faouzielmansour หลายเดือนก่อน

    Heureux de te revoir

  • @emmanueldigital9604
    @emmanueldigital9604 หลายเดือนก่อน

    Merci Simon

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

      Merci à vous, bon code !
      Simon.

  • @leaderbaraboy
    @leaderbaraboy หลายเดือนก่อน

    Merci !

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

      Au plaisir, bon code !

  • @arnauddjougounah2719
    @arnauddjougounah2719 หลายเดือนก่อน

    Très instructif

  • @RoroLaBagarre
    @RoroLaBagarre หลายเดือนก่อน

    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

  • @davidbonan2325
    @davidbonan2325 หลายเดือนก่อน

    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  หลายเดือนก่อน +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.

  • @user-hy6tr9fl5n
    @user-hy6tr9fl5n หลายเดือนก่อน

    Merci

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

      Merci à toi.
      Simon.

  • @zHqqrdz
    @zHqqrdz หลายเดือนก่อน +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  หลายเดือนก่อน

      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 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

      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 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน +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 หลายเดือนก่อน

    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  หลายเดือนก่อน

      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 หลายเดือนก่อน +3

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

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

    • @ApprendreSansNecessite
      @ApprendreSansNecessite หลายเดือนก่อน +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 หลายเดือนก่อน

      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  หลายเดือนก่อน

      @@ApprendreSansNecessite 😂

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

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

  • @CoIdestMoments
    @CoIdestMoments หลายเดือนก่อน +2

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน +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 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

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

    • @mrmaxwell0701
      @mrmaxwell0701 หลายเดือนก่อน

      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 หลายเดือนก่อน

      ​@@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 🤔

  • @zemiorka
    @zemiorka หลายเดือนก่อน

    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 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน +1

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

  • @guillaumevadar1695
    @guillaumevadar1695 หลายเดือนก่อน

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

    • @codeursenior
      @codeursenior  หลายเดือนก่อน +1

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

  • @anoumayeboua9257
    @anoumayeboua9257 หลายเดือนก่อน

    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  หลายเดือนก่อน

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

  • @PatriceFERLET
    @PatriceFERLET หลายเดือนก่อน

    "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  หลายเดือนก่อน

      Vous êtes passé de quel langage à quel langage ? Et de quel paradigme à quel paradigme ?

  • @ToezzyTV
    @ToezzyTV หลายเดือนก่อน

    montre nous du code :p hein

    • @codeursenior
      @codeursenior  หลายเดือนก่อน

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

  • @Creativeetea
    @Creativeetea หลายเดือนก่อน

    La musique est tellement inutile. Le contenu est là

    • @codeursenior
      @codeursenior  หลายเดือนก่อน +2

      C’est déjà mieux que le contraire : « le contenu est inutile, mais la musique est là »