Тёмный

Le Design Pattern Contre-Intuitif le plus utilisé par les Développeurs Professionnels... 

Simon Dieny - Code Senior
Подписаться 47 тыс.
Просмотров 39 тыс.
50% 1

👨🏻‍💻 Démarrer votre carrière de développeur PRO avec Angular :
www.angularsenior.fr/apply
Dans cette vidéo, j’aimerais vous dire pourquoi j’ai détesté les "Design Patterns" pendant des années.
Je voyais ces graphes avec 70 classes...
C’était incompréhensible et ça me dégoutait, car je n’ai jamais compris à quoi cela pourrait réellement me servir dans la vraie vie !
Je vais donc vous partager une discussion privée que j’ai eue avec un développeur Senior lorsque j’étais à Atos et qui m’a permis aujourd'hui de comprendre RÉELLEMENT à quoi pourrait me servir les Design Patterns.
Bon visionnage,
Simon.
🖥 CODE DU DESIGN PATTERN BUILDER (TYPESCRIPT) 🖥
Le code de cette vidéo à "copier-coller" et à adapter à vos projets.
```
// Design Pattern "Builder" with TypeScript //
class SnackbarBuilder {
constructor(message: string) {
this.message = message;
}
setTitle(title: string) {
this.title = title;
return this;
}
setSticky(sticky: string) {
this.sticky = sticky;
return this;
}
private setType(type: string) {
this.type = type;
return this;
}
private setIcon(icon: string) {
this.icon = icon;
return this;
}
private setCanClose(canClose: boolean) {
this.canClose = canClose;
return this;
}
private setDuration(duration: number) {
this.duration = duration;
return this;
}
buildSuccess() {
this.setType('success');
this.setDuration(3000);
this.setCanClose(false);
return this.build();
}
buildInfo() {
this.setType('information');
this.setDuration(3000);
this.setCanClose(false);
return this.build();
}
buildWarning() {
this.setType('warning');
this.setCanClose(true);
return this.build();
}
buildError() {
this.setType('error');
this.setCanClose(true);
return this.build();
}
private build() {
return new Snackbar(
this.message,
this.title,
this.sticky,
this.type,
this.icon,
this.canClose,
this.duration
);
}
}
// Use case //
const snackbar = new SnackbarBuilder(message)
.setSticky(true)
.buildInfo();
```

Опубликовано:

 

20 июл 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 244   
@maximecsl2938
@maximecsl2938 2 года назад
Un petit retour pour remercier Simon pour son travail. J'ai commencé Angular avec ton livre (génial), j'ai pris des stagiaires en les poussant sur Angular grâce à ton cours "Apprendre Angular", avant d'entrer en stage chez moi et ils sont maintenant en CDI de dev frontend Angular dans d'autres entreprises. J'ai aussi suivi le cours de Simon "Maîtriser Angular en Entreprise" et c'est vraiment le top! Agréable à lire et le fait de comprendre chaque ligne de code sur un vrai projet a l'architecture solide est rassurant et très plaisant (j'aime encore plus Angular). Très complet ! Un grand merci de nous donner cette vision professionnelle du dev pour des étudiants qui n'ont pas forcement possibilité de faire des stages ou autre dans de vrais projet Angular. Cela permet de moins redouter l'entrée dans la vie pro. N'hésitez surtout pas !
@codeursenior
@codeursenior 2 года назад
Merci pour ton retour Maxime, ça me touche beaucoup. Je suis très fier d'avoir pu t'aider même d'un millimètre dans ton parcours. Excellente continuation à toi !
@___Kevin
@___Kevin 2 года назад
Vous avez vraiment un don pour réussir à rendre ces concepts complexes en quelque chose d'accessible et surtout de le faire avec une approche très concrète
@codeursenior
@codeursenior 2 года назад
Merci Kevin, je n'aurais pas pu lire de meilleurs compliments ! Mon objectif est de rendre toutes ces techniques accessibles à tout le monde. Bon développement à vous, Simon.
@darialyphia
@darialyphia 2 года назад
C'est un design pattern qu'il est bon de savoir, mais en vrai, en JS/TS, un simple objet options dans le constructor avec des valeurs par défaut (et des union type pour les propriétés "magic string") ça reste quand même plus confort (et beaucoup plus familier). Ca permet aussi de plus facilement passer les options d'objet en objet si besoin (pas forcément un truc que je recommande, mais imaginons que, par example, tu aies un composant qui va afficher, entre autre, une snackbar, et que cette snackbar doit être configurable de l'extérieur)
@codeursenior
@codeursenior 2 года назад
Hello, discussion intéressante ! Effectivement, c'est l'approche "JS hacker" par défaut. Mais par rapport à la problématique de la vidéo, comment fais-tu pour encapsuler des configurations ? (Toutes les snackbars d'informations sont bleues, durent 3000 millisecondes, et ne peuvent pas être fermées). Au plaisir d'échanger, Simon.
@darialyphia
@darialyphia 2 года назад
@@codeursenior Merci de la réponse ! Je ne dirais pas forcément que c'est une approche "JS hacker", mais une plus une approche qui respecte l'esprit des design pattern tout en prenant en considération les spécificités du language (ici Typescript avec le destructuring + default parameters). Pour ce qui est de l'encapsulation, des paramètres valeurs par défaut dans ton objet d'options permettent de rester plus flexible et future proof : si tu ne précises pas , tu as les valeurs par défaut pour la couleur, le timeout etc, mais tu peux au besoin, un jour, overrider ça (je suppose que l'on connait bien tous les deux les demandes métier sorties du popotin qui te tombent sur le coin de la figure du jour au lendemain). Si vraiment il y a besoin de dire "non, zut, les snackbar durent 3 secondes, point", tu as toujours plusieurs façons de faire, définir tes proçpriétés privées dans le constructeur (mouais), utiliser des valeurs hard codées vu que de toutes façons ce n'est pas configurable (mouais aussi mais dans le fond...), ou alors wrapper ça dans des factory qui vont envoyer les bons params "forcés", ce qui est une bonne approche car, encore une fois, ça te laisse une snackbar de plus bas niveau entièrement paramétrable si besoin.
@codeursenior
@codeursenior 2 года назад
@@darialyphia Hello, merci pour ton retour. J'ai une tâche de refactoring qui arrive bientôt donc je regarderai si je peux "casser" l'héritage de classe imposé par le Design Pattern Builder pour créer quelques choses de souple. Mais j'ai encore un peu de mal à voir comment tu encapsule 4 configurations différentes juste avec des options par défaut dans le constructeur. Comment créer des relations entre les propriétés à l'initialisation de la snackbar ? (Si type=information, alors duration=3000 & icon=clochue, et propriétés non modifiable de dehors). Quoi qu'il en soit j'irai tester ça sur le terrain, merci pour ton retour complet. 🙂 Bon développement, Simon.
@Monstermash355
@Monstermash355 8 месяцев назад
@@codeursenior pour cette problématique j'aurais utilisé des variants nommés (success, alert, error...), à partir de là tu peux tout conditionner, tu fais du pattern matching au besoin et tu mets juste une valeur par défaut dans ton constructor sur ce qui est commun
@davidc1179
@davidc1179 7 месяцев назад
@@codeursenior T'es pas obligé d'utiliser des types primitifs dans ton ctor. Si le paramètre "message" à lui seul fait du sens pour ce cas d'utilisation, tant mieux. Mais si le paramètre "duration" ou "icon" ou un autre n'a pas de sens à lui seul, et que tu devras gérer des cas pénibles avec des relations entre les paramètres qui vont conduire à du bordel sans nom et un immense plat de spaghetti, alors, peut-être que passer un type spécialisé en paramètre aura plus de sens que de simplement utiliser des types primitifs. A noter aussi que dans un cas comme celui que je décris, on s'approcherait un peu du concept d'injection de dépendance.
@bendevweb89
@bendevweb89 2 года назад
Comme toi à l'époque je ne savais pas trop comment les utiliser. Mais après être tombé sur explication plutôt claire, pour un problème que j'avais rencontré, j'ai trouvé ça génial et passionnant. Donc 100% ok pour que tu nous expliques d'autres design Patterns !
@codeursenior
@codeursenior 2 года назад
Salut Ben, merci pour ton retour. C'est noté, on a donc 23 vidéos en tout à tourner. 😉
@maoowww
@maoowww 9 месяцев назад
Pour apprendre et surtout comprendre les Design Pattern, rien de mieux que le livre Design Pattern Tête La Première, ce bouquin est magique. Et contrairement à ce que tu dis, je conseille de le lire avant d'avoir rencontré les problèmes, car il expose justement très bien les problèmes et le chemin de réflexion qui mène jusqu'au Design Pattern étudié. 😊
@yannick-audreyokamba7477
@yannick-audreyokamba7477 2 года назад
Merci Simon très bonne vidéo. On découvre toujours de meilleures façon de coder avec toi :)
@codeursenior
@codeursenior 2 года назад
Merci, objectif atteint pour moi alors. 💪 Bon développement, Simon.
@ameltriki2497
@ameltriki2497 2 года назад
Merci de nous avoir fait découvrir ce pattern design. Chaque vidéo est toujours un régal! Bonne continuation!
@codeursenior
@codeursenior 2 года назад
Merci pour ton message @Amel ! Bonne continuation également, Simon.
@MakdoKro
@MakdoKro 2 года назад
Super vidéo, tu m'as tellement réconcilié avec les design pattern que j'espère que tu vas en aborder d'autres !!!
@codeursenior
@codeursenior Год назад
Oui c'est prévu, j'espère trouver le temps qu'il faudra pour vous sortir tout ça ! 😉
@cmdtaz94
@cmdtaz94 2 года назад
Merci Simon! Très bonne vidéo. Moi en tout cas, tu m'as réconcilié avec les Design Patterns.🙂
@codeursenior
@codeursenior 2 года назад
Merci pour ton retour, le but de la vidéo était justement ne plus être fâché avec les Design Patterns ! 💪 Objectif atteint donc. ^^ Bon développement à toi, Simon.
@hishin8852
@hishin8852 5 месяцев назад
En tant que jeune apprenant suite à une reconversion, ta vidéo est incroyable ! Les explications et le codes sont très faciles à comprendre, tu es super pédagogue. Merci beaucoup
@codeursenior
@codeursenior 5 месяцев назад
Merci, bon code à toi !
@fucu-d
@fucu-d Год назад
Bonjour, je suis en reconversion pro Dev web au CEF et après avoir vu "Vue / React / Angular" j'ai décidé également de me spécialiser avec Angular car j'aime bien sa structure avec les Services etc. Je t'ai découvert hier et j'apprécie énormément ta façon de t'exprimer et d'expliquer les choses complexes. Merci beaucoup.
@codeursenior
@codeursenior Год назад
Merci à toi pour ton retour, et bon courage pour ta reconversion pro ! Bon code, Simon.
@meryvorente954
@meryvorente954 Год назад
Salut Simon merci pour tes vidéos, elles sont très pertinentes. Je suis aussi formateur JavaScript mais j'ai 23ans, pas encore formateur Angular mais j’arrive je te rattrape ^^
@ugglybobby
@ugglybobby 2 года назад
vidéo qui tombe a point nommée! je viens d'être embauché en Junior. Lors de l'entretien, j'ai été coincé sur la question des design pattern. J'y vois déjà plus clair. merci !
@codeursenior
@codeursenior 2 года назад
Merci, et bon courage pour tes entretiens !
@bandedecodeurs
@bandedecodeurs 8 месяцев назад
Hello Simon. Je découvre ta chaine. Superbe vidéo. L'approche est excellente tout comme les explications. Bravo !
@codeursenior
@codeursenior 8 месяцев назад
Hello, bienvenu à toi sur la chaîne alors ! Bon code et bientôt, Simon.
@samirbenabdessalem4536
@samirbenabdessalem4536 2 года назад
Bonjour Simon, Merci pour la vidéo. Le sujet est bien aborder.
@codeursenior
@codeursenior 2 года назад
Merci à toi Samir ! 👍 Je me demandais justement si tout allais être assez clair, étant donné que les Design Patterns sont plutôt "abstraits" en soi. Bon développement à toi ! Simon.
@sogobamohamed4563
@sogobamohamed4563 2 года назад
Merci simon c'est toujours un régal de suivre tes conseils
@codeursenior
@codeursenior 2 года назад
Merci Mohamed ! Bon développement, Simon.
@sylvain3932
@sylvain3932 2 года назад
Un grand plaisir à regarder, quand la tête est dans le guidon, ces vidéos permettent de se rappeler de la relever et de prendre le temps de penser ;))
@codeursenior
@codeursenior 2 года назад
"Prendre le temps de penser". Je n'aurais pas dit mieux, c'est clairement ce qui permet d'aller beaucoup plus vite à moyen et long terme. 👍 Bon développement à toi, Simon.
@ascensionspirituelle7287
@ascensionspirituelle7287 Год назад
Excellentissime 😌❤️👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼
@codeursenior
@codeursenior Год назад
Merci à toi ! Bon développement et à bientôt, Simon.
@burdygoureige6619
@burdygoureige6619 2 года назад
Merci tu m'a fait comprendre des choses intéressantes sur ce design pattern ! Des vidéos sur les designs patterns c'est excellent. Si tu peux faire une petite série de vidéos sur ce sujet ce serai vraiment bien. C'est réellement une forte valeur ajouté de savoir utiliser et surtout QUAND utiliser un design pattern. Tes explications sont au top, j'ai 5 ans d'expérience dans le code donc j'ai un peu ( je dis bien un peu) d'expérience et vraiment j'ai trouvé cette vidéo Super explicite et Utile. D'autres stp !
@codeursenior
@codeursenior 2 года назад
Hello, merci pour ton message ! Je te confirme que je planche une petite série sur les Design Patterns, orienté 100% vrai-vie / développeur frontend. 👍 Bon développement, Simon.
@sylvainbousselier6875
@sylvainbousselier6875 Год назад
Le même réponse, malgré 10 ans d'expériences je n'ai jamais coder réellement comme ca mais ca donne envie. Je suis pour une série sur les design pattern aussi :)
@ekobeko5353
@ekobeko5353 2 года назад
It was great explanation and great example. Thanks
@codeursenior
@codeursenior 2 года назад
Thank you for your positive feedback Ekrem !
@rencho13013
@rencho13013 Год назад
Merci pour tes vidéos.
@karljoyeux8845
@karljoyeux8845 8 месяцев назад
Super vidéo, (je suis étudiant) j'ai toujours du mal à utiliser les design pattern et je me souviendrai de cette vidéo le moment voulu. Honnêtement je galère avec tous les design pattern mais les pires pour moi sont les abstact factory et les singletons donc si tu pouvais faire une vidéo dessus, ce serait top !
@kohelet910
@kohelet910 2 года назад
Waaa excellent 😎 merci
@codeursenior
@codeursenior 2 года назад
Merci, bon développement. 👍
@alaham2590
@alaham2590 Год назад
eureka !!! top l'explication du builder ;) aller je m'abonne
@vincentbornert9427
@vincentbornert9427 5 месяцев назад
Merci pour ta chaine RU-vid, car tu fais évolué beaucoup EN FRANCE L INFORMATIQUE contre le Monde ANGLOPHONNE qui est Puissant dans le ce domaine!! Continue ta chaine youtube MERCI
@codeursenior
@codeursenior 5 месяцев назад
Hello, merci beaucoup pour ton message, ça me va droit au cœur. Je vais tout faire pour honorer la mission 👍Et il n'y a pas qu'en informatique que le monde anglophone est (trop ?) puissant...
@vincentbornert9427
@vincentbornert9427 5 месяцев назад
@@codeursenior Merci beaucoup mon amis, en ce moment j apprend l anglais depuis 6 mois et c 'est vraiment top
@codeursenior
@codeursenior 5 месяцев назад
@@vincentbornert9427 Solide. À bientôt !
@vincentbornert9427
@vincentbornert9427 5 месяцев назад
@@codeursenior oui merci continue tes vidéos surtout c est les meilleurs sur youtube en français je trouve car tu donnes les détails du vrai métier
@codeursenior
@codeursenior 5 месяцев назад
@@vincentbornert9427 💪
@costa7409
@costa7409 2 года назад
Merci beaucoup pour l'info, oui ca serait cool de mieux expliquer ce concept de design pattern... J'attends d'autres videos et je vais voir qlq tutos sur ca également. Merci beaucoup
@LiorCHAMLA
@LiorCHAMLA 2 года назад
Magnifique pédagogie ! Bravo collègue !
@codeursenior
@codeursenior 2 года назад
Merci collègue ! 🔥
@wilkyarny3012
@wilkyarny3012 2 года назад
Bonjour Simon, j'aime bcp ces petites séries de vidéos courtes sur une notion spécifique en particulier. Dans le même format, un design pattern que j'aimerais bien voir c'est l'injection de dépendance. Ce serait bien d'avoir ton retour sur l'état de l'art de ce design pattern super important et qui aide beaucoup pour les tests. Super vidéo en tout cas👌
@codeursenior
@codeursenior 2 года назад
Très bonne idée ! Eh bien, je me note votre idée et je retourne plancher sur une petite série de vidéos sur les Design Patterns. 👍 Bon développement, Simon.
@julienchene2923
@julienchene2923 8 месяцев назад
Trop class, thkx.
@codeursenior
@codeursenior 8 месяцев назад
Merci et bon code ! Simon.
@andrediquelou3583
@andrediquelou3583 Год назад
Je vois remercie pour ces explications , je commence à comprendre la nature du design pattern .
@codeursenior
@codeursenior Год назад
Merci André, c'est top de pouvoir rendre ces patterns plus "digeste". À bientôt
@69guigz
@69guigz Год назад
Merci pour ta très bonne vidéo. Ça m'a donné envie d'aller plus loin dans mon code pour qu'il soit plus scalable. Merci à toi
@codeursenior
@codeursenior Год назад
Merci pour ton message, c’est le but des vidéos donc ça fait plaisir ! Bon développement à toi, Simon.
@kadereklou6132
@kadereklou6132 2 года назад
Très utile, Merci beaucoup
@codeursenior
@codeursenior Год назад
Merci ! 👍
@zhenma8053
@zhenma8053 Год назад
c'est hyoer bien expliqué!!
@codeursenior
@codeursenior Год назад
Super, merci pour ton retour. L'objectif est vraiment de rendre accessible un savoir qui me paraissait plus opaque à l'époque.
@AlteriosLeGris
@AlteriosLeGris 2 года назад
Hello Simon, C'est un concept dont j'ai beaucoup entendu parlé mais qui est toujours resté flou. Grâce à ta vidéo, j'ai compris l'utilité et la manière de le mettre en place en - de 5min. Merci :). Perso je suis preneur des autres explications sur les design pattern que tu utilises.
@codeursenior
@codeursenior 2 года назад
Merci pour ton retour, j'ai réussi ma mission avec cette vidéo ! 🔥 Je me note de faire une série de 23 vidéos sur les Design Patterns (il y en a 23 😉). Bon développement, Simon.
@AlteriosLeGris
@AlteriosLeGris 2 года назад
@@codeursenior Parfait ! bon courage :)
@codeursenior
@codeursenior 2 года назад
@@AlteriosLeGris Merci ! 🙂
@meijiao9766
@meijiao9766 2 года назад
Incroyable... Je te remercie j'étais mais alors là EXACTEMENT dans la situation que tu décrivais en début de vidéo, j'avais beau lire des articles, ou voir des documents sur les designs pattern, je n'arrivais absolument pas à avoir la compréhension de l'utilisation d'un design pattern, et pour le design pattern builder tout autant, et là j'ai l'impression que tu m'as ouvert les yeux... Même si je expérimente pas en JavaScript, grâce à toi je pense pouvoir l'utiliser dans un cas concret en java et pour ça merci milles fois !
@meijiao9766
@meijiao9766 2 года назад
Pour le coup l'observer ou poids mouche sont aussi des concepts que je trouve intéressant par principe mais le fonctionnement me perd vraiment, je ne sais pas si tu as déjà fait d'autres explications de design pattern, mais celui là est une grande réussite de mon côté !
@codeursenior
@codeursenior 2 года назад
Merci pour ton retour, c'est top que tu sois débloqué sur ce design pattern ! Je compte abordé l'Observer également, je l'utilise quotidiennement. 👍
@meijiao9766
@meijiao9766 2 года назад
@@codeursenior Super ! Pressé de voir ça ! 😄
@codeursenior
@codeursenior 2 года назад
@@meijiao9766 Yep, je planche déjà sur cette mini-série. 👍
@nicolasnguyen1168
@nicolasnguyen1168 2 года назад
Topissime merci
@codeursenior
@codeursenior 2 года назад
Merci Nicolas !
@ZpecialiX
@ZpecialiX 2 года назад
Merci pour ces explications! Je réalise maintenant que j'aurais pu utiliser ce pattern dans un projet à la fac ahahah
@codeursenior
@codeursenior 2 года назад
😂 Haha, c'est la première étape pour apprendre les Design Patterns... Se rendre compte qu'on aurait pu en avoir besoin ! Bon courage pour la Fac, je suis passé par là... Simon.
@penielmmen2088
@penielmmen2088 4 месяца назад
Waouh c'est tout simplement magnifique ! Je suis tombé amoureux des design patterns. Je ne comprenais pas trop leur nécessité mais maintenant, grâce à vous ce n'est plus le cas. Le code qui marche ne me suffit plus et je veux en apprendre plus. Svp pourriez vous présenter d'autres design ? Sur RU-vid ce n'est pas bien expliqué.
@codeursenior
@codeursenior 4 месяца назад
Bonjour, bienvenu au club des amoureux du bon code ! Si le code qui marche ne vous suffit plus, je veux que vous vous sentiez au BON ENDROIT sur cette chaîne. 💪 Vous trouverez la playlist de tous les design patterns expliqué sur la chaîne sur ce lien : ru-vid.com/group/PLhVogk7htzNhf1sPcvTQzHV_Jv6-LOmLi La playlist est en cours de construction, mais certains design pattern sont déjà disponible. Bon code à vous !
@pascalstrentz9549
@pascalstrentz9549 2 года назад
Merci pour la qualité de contenu tes vidéos Impressionnant Nous sommes sur les épaules d'un géant Cela offre un regard une respiration une vision plus grande que notre imagination
@codeursenior
@codeursenior 2 года назад
Merci Pascal ! 🔥
@mrcoolll
@mrcoolll 7 месяцев назад
Excellent
@cryp8835
@cryp8835 6 месяцев назад
Tes vidéos sont géniales. Je suis un dev react et je dois rapidement me former sur angular, j’intègre une entreprise dans deux semaines. Merci pour toutes tes vidéos. C’est clair, précis et ça permet de monter en compétence rapidement. Tu aurais un lien sur le quel je peux trouver les principaux design patterns en angular ? Merci 🤩
@tarior
@tarior 7 месяцев назад
Merci pour tes explications. Programmant principalement en c++, je vois l'analogie de ces builders avec les fonctions membres static qui retourne une instance de la classe (ces fonctions ne dépendent d'aucune instance et sont appelées via "NomDeClasse::NomDeFonction(arguments)")
@karimdiallo6809
@karimdiallo6809 2 года назад
Force à toi mon gar, force à toi.
@codeursenior
@codeursenior 2 года назад
Merci Abdoul ! 💪
@burdygoureige6619
@burdygoureige6619 2 года назад
Force, on en veut d'autres 😂
@codeursenior
@codeursenior 2 года назад
@@burdygoureige6619 Il va me falloir un peu de force pour les 22 autres Design Pattern effectivement. Je me met au boulot ! 😉
@burdygoureige6619
@burdygoureige6619 2 года назад
@@codeursenior Oui ça va te demander beaucoup de temps c'est sur! Ou Sinon ceux les plus utiles en côté front, ou les plus utilisés en angular. 🙂
@codeursenior
@codeursenior 2 года назад
@@burdygoureige6619 Oui carrément c'est une excellente idée. Je vais plutôt montrer le côté REEL de tout ça. Par exemple, je n'implémente jamais le Pattern Observer en Angular quand j'en ai besoin... puisque je peux simplement créer un Observable/subscribe(). Bref, vais présenter ça sous un angle de la vraie vie, côté frontend. 👍 À +, Simon.
@Liword132
@Liword132 2 года назад
Super cet exemple de snackbars, on a eu exactement le même problème à mon boulot c'est fou !
@codeursenior
@codeursenior Год назад
Étonnant ! 😅
@GtrsJohn
@GtrsJohn 2 года назад
Bravo pour cette vidéo, t'explique clairement et calmement. On voit ta passion pour le code ca fait plaisir 😜. Je comprends l'intérêt de ce builder mais, de mon point de vue ce qui m'embête c'est cette duplication de code sur les BuildInfo() etc... Potentiellement t'as des devs qui vont suivre cette exemple et mettre une 50ène buildMachin() et si un jour il y a besoin de modifier un comportement pour chaque fonction ça peut devenir l'enfer
@codeursenior
@codeursenior 2 года назад
Hello JohnV, Merci pour ton retour constructif, voici mes réponses point par point : - Au niveau des méthodes de builds, je ne pense pas qu'il y ait de duplication de code. Au contraire, chaque build possible exprime à la ligne près la configuration à encapsuler. - Aussi, si chaque build exprime une configuration spécifique, normalement, il faudra modifier uniquement cette méthode de build en cas de changement. (Principe Open/Closed de SOLID). - Si jamais le business décide de changer les 4 configurations de build, et bien là, c'est notre boulot d'adapter les 4 méthodes. On n'aura pas le choix. 😇 Qu'en penses-tu ? Au plaisir d'échanger, Simon.
@damien3901
@damien3901 2 года назад
Salut Simon, je suis nouveau sur la chaîne, j'aurais une question pour toi, ça serait pour savoir si, dans le monde du travail, les développeurs commences directement à faire du code propre ou bien à faire du code qui fonctionne ? Sinon, super vidéo, j'ai appris un truc très intéressant. Merci.
@codeursenior
@codeursenior Год назад
Hello Damien, quel que soit le niveau d'un développeur, je pense que le code que l'on produit passe toujours par ces étapes : Make it work > Make it right > Make it fast. C'est plus une trajectoire à viser qu'une réponse OUI/NON à un instant t. Voilà ! :) Bon développement, Simon.
@saidmansour9200
@saidmansour9200 7 месяцев назад
merci boss
@codeursenior
@codeursenior 7 месяцев назад
Avec plaisir, bon code !
@brunotamagnini9042
@brunotamagnini9042 Год назад
quels seraient les huits premiers motifs de conception à apprendre en premier? Suivant le critère de fréquence d'implémentation dans les codes Pro...
@aminebelkhodja2796
@aminebelkhodja2796 Год назад
bonjour simon, j'appreci beaucoup tes videos, juste une remarque sur la solution builder que tu as expisé, ca casse le principe OCP, un bon polymorphisme avec le pattern Stategy t'aurais donné un meilleurs resultat
@codeursenior
@codeursenior Год назад
Hello Amine, merci pour ton retour. Oui c’est une piste intéressante, surtout que ça me permet de passer par la composition plutôt que l’héritage. La problématique que j’avais m’a poussé à partir sur le builder, car je dois créer un objet de configuration à passer une librairie. Je ne coder qu’un wrapper. Au plaisir d’échanger, Simon.
@nicolasroselle791
@nicolasroselle791 2 года назад
Bonjour Simon content de pouvoir te retrouver. J'ai une petite question stp: --> Aurais tu une référence de site pour creuser le sujet ? Avec une liste de design pattern les plus couramment utilisés. J'espère que la question n'a pas été déjà posée. Je t'avoue que je n'ai pas eu le courage de lire tous les commentaires. Je suis bien sûr entrain de chercher mais j'aimerai avoir ton avis stp. J'ai vu ce "disign patern" dans une librairie que j'utilise pour filtrer un mot de passe. J'ai trouvé ça tellement beau et efficace et je me demandais justement comment cela fonctionnais. --> Merci donc pour les explications !!!
@codeursenior
@codeursenior Год назад
Salut Nicolas, ça fait plaisir d'échanger à nouveau. J'espère que tu vas bien ! 😉 La référence que j'utilise pour les design patterns est le site REFACTORING GURU : refactoring.guru/fr/design-patterns. Tu trouveras les 23 designs patterns référencés par le Gang Of Four (1994) avec des explications sympas. Bon développement et à bientôt, Simon.
@kaak2270
@kaak2270 Год назад
Merci bien. J'ai toujours du mal à me manger du code qui réponds à des besoins que je n'ai pas encore eu, et j'ai souvent besoin d'un "historique" ("on fait ça parce que d'abord on a fait comme ça et ça marchait, mais ensuite on a voulu étendre à quelque chose de + général/durable/facile à entretenir et du coup on fait ceci ou cela plutôt maintenant"). J’apprécie donc particulièrement quand on me "dénoue" un truc en lui rendant du sens. Tellement + facile et + excitant d'avancer quand on comprend le sens , le pourquoi des choses... 👍
@codeursenior
@codeursenior Год назад
Merci pour votre message, c'est exactement le type de pédagogie que j'essaye de mettre en avant. Se mettre d'accord sur le problème avant la solution ! 👍
@vincentremi4397
@vincentremi4397 8 месяцев назад
Pourrais tu nous faire une introduction au logging (journal d'erreur) ? comment l'integrer ? que faut-il y ecrire ou non ? comment regler different niveau si necessaire et sur quels critères ? C'est rarement abordé mais ça me parrait essentiel pour trouver et resoudre des problemes qui eux n'apparaissent pas dans les compilateurs.
@jlnko
@jlnko Год назад
Salut ce que tu appelle snack bar c'est une modal? Ou c'est pas vraiment la même chose ? Je suis sur ce sujet en ce moment, je dois créer une modal qui affiche du contenu dynamique via une api, et ça me rend un peu dingue 😊
@julienr8114
@julienr8114 9 месяцев назад
J'aime beaucoup cette approche j'aurai choisi le pattern Factory mais je trouve cette démarche plus élégante et plus simple à l’utilisation.
@laurentzida7719
@laurentzida7719 2 года назад
Hello Simon, j'ai essayé d'accéder à votre cours, Devenir fullstack javascript mais le lien ne fonctionne pas. Est-ce que le cours n'est plus disponible ?
@codeursenior
@codeursenior 2 года назад
Hello Laurent, de temps en temps je "ferme" le programme durant 1 mois lorsqu'on est complet. Pour le mois d'aout, le programme est ouvert actuellement. Bon développement à vous ! Simon.
@proismael7198
@proismael7198 2 года назад
Très intéressant, tu expliques mieux l'utilisation des designs pattern
@codeursenior
@codeursenior 2 года назад
Merci ! 🔥
@Monstermash355
@Monstermash355 8 месяцев назад
Sujet très intéressant, même pour quelqu'un qui fait pas d'angular Dans ton cas, ça suffit pas de passer tes props dans un objet et de juste mettre des valeurs par défaut ? Ca donnerait une utilisation genre new Snackbar({title: "foo", message: "foo"}), constructor({title = null, message = null, canClose = false, ...}: { title?: string | null...) Je délire peut être complètement je fais que du react
@michelgisenael4021
@michelgisenael4021 2 года назад
Salut; est il possible de mettre un exemple de l'utilisation de la class sur l'html du snackbar?
@codeursenior
@codeursenior 2 года назад
Salut Michel, Malheureusement, je ne pense pas que ce soit intéressant ici. Cela créerait un anti-focus pour tout le monde, d'un cas d'utilisation de Snackbar dans le DOM. L'objectif ici est 100% d'illustrer le Design Pattern Builder. En espérant que tu comprennes la démarche ! Bon développement, Simon.
@sogobamohamed4563
@sogobamohamed4563 2 года назад
Simon une question : quel est l'importance d'utiliser redux ou ngrx store dans angular si c'est important si tu pouvais une une vidéo dessus
@codeursenior
@codeursenior 2 года назад
Salut Mohamed, je citerai l'adage classique : "Si vous ne savez pas si vous avez besoin de Redux, c'est probablement que vous n'en avez pas besoin". Est-ce que ça t'éclaire ou pas du tout ? 🙃
@sogobamohamed4563
@sogobamohamed4563 2 года назад
@@codeursenior ah oui j'ai compris
@codeursenior
@codeursenior 2 года назад
@@sogobamohamed4563 😉
@learningwithjurou3717
@learningwithjurou3717 2 года назад
Merci
@codeursenior
@codeursenior Год назад
👍
@myfreedom42
@myfreedom42 9 месяцев назад
je prefere les constructeurs avec un hash qui donne que les options necessaires, et le constructeur gere les valeur par defaut, ça evite davoir des setter inutile qui traine dans le code de la class et dans l'utilisation, je trouve pas ça tres propre. Le seul probleme de la version "pas senior" c'est qu'en gros on ne sait pas quel param correspond à quoi et qu'on est obligé de passer tous les param, ce qui est idiot
@jean-bernardsaint-eve3340
@jean-bernardsaint-eve3340 2 года назад
Je pense qu'il y a un copier/coller malencontreux sur setDuration (8min28. Merci pour la vidéo, je vais essayer de passer un peu de temps sur ces design pattern avec lesquels je ne suis pas très familier
@codeursenior
@codeursenior 2 года назад
Salut Jean-Bernard, effectivement pour le setDuration, c'est bien `this.duration = duration`. Bien vu ! 😉 Bon développement à toi, j'espère que tu auras l'occasion d'implémenter quelques Design Patterns sur du code récurrent !
@stephanezaffran9528
@stephanezaffran9528 Месяц назад
je n'arrive pas a bien saisir sur le fond la différence avec une factory, sur la forme ca permet l'autocompletion je suppose mais sur le fond, on a les elements en commun au niveau de la classe abstraite et les specificites au niveau de chaque classe d'heritage,
@codeursenior
@codeursenior Месяц назад
Bonjour, le Factory pattern crée des objets en fonction d'un type spécifié sans exposer la logique de création, tandis que le Builder pattern construit un objet étape par étape, permettant de créer des variantes complexes de cet objet. C'est l'étape d'abstraction supplémentaire, quand la compléxité de création devient trop lourde à exposer.
@iancarter724
@iancarter724 Год назад
Pour refact sans casser l'existant, les fonctions du genre CreateWarningSnackBar('message...', {...otherProps}); peuvent aider
@davidmonteux8995
@davidmonteux8995 2 года назад
Merci, je comprends mieux l'intérêt des design pattern.
@codeursenior
@codeursenior 2 года назад
Merci pour ton retour David, objectif de la vidéo réussi alors ! 👍
@proismael7198
@proismael7198 2 года назад
Peux tu faire des Tuto design patterns avec le Typescript? Ou javascript
@codeursenior
@codeursenior 2 года назад
Salut, oui les prochaines vidéos sur les Design Patterns seront en TypeScript ! (comme celle-ci d'ailleurs, tu as l'extrait de code dans la description de la vidéo 👍)
@LyriaStudio
@LyriaStudio 7 месяцев назад
Le code que tu affiche à 8:28, on vois que ta fait du copier/coller et que ta pas finis de renommer les variables car ta 2 fonctions qui sont incorrect ^^' (setSticky & setDuration).
@dissid_4676
@dissid_4676 2 года назад
Bonjour Simon, dsl de passer par là mais je sais pas si tu captes encore les messages sur library... je suis devenu un de tes clients mais j'ai eu un petit problème. Merci de ton retour.
@codeursenior
@codeursenior 2 года назад
Holà, pas de soucis, on règle ça par email du coup. Bon apprentissage à toi, 😉 Simon.
@comyams
@comyams 2 года назад
private setDuration(duration: duration) { this.icon = icon; return this; } Pourquoi icon ici ?
@codeursenior
@codeursenior 2 года назад
Salut Yamine, Pure erreur d'inatention au milieu du montage/tournage. C'est bien un setter "classique" pour ce design pattern: ```` private setDuration(duration: number) { this.duration = duration; return this. } ``` Je viens de mettre à jour le code dans la description de la vidéo. Merci !
@richardsongyurand8721
@richardsongyurand8721 10 месяцев назад
Je me souviens Dans mon apprentissage ING informatique, Je me souviens Des set et get voila de l'utilité montrer dans votre formation. Parfois Les techniques dev pro permet de devlopper le plus simple,mais l'apprentissage de ces techniques demande de la patience.
@sylvainschellenberger
@sylvainschellenberger 2 года назад
Bon exemple de mise en pratique du pattern. As-tu une idée de comment simplifier la pile de "if not null" à l'affichage de la Snackbar? Peut-être en appliquant des Decorators, ce n'est pas "simple" mais ça permet de ne pas risquer de tout casser si l'on doit changer la manière d'afficher une seule des propriétés de la snackbar. Sinon tu pourrais également démontrer le fonctionnement de Bridge pour afficher les différentes notifications mais dans différents contextes (desktop/mobile, ou visitor / admin par exemple). Ce serait également intéressant que tu montres la correspondance du code avec le diagramme UML si cela ne te saoûle pas trop. En fait ces diagrammes sont plus simples que l'on ne le pense , une fois que l'on a compris leur équivalent en code.
@codeursenior
@codeursenior Год назад
Salut Sylvain, Effectivement, j'ai prévu de faire plusieurs vidéos pour présenter les 23 design patterns référencés par le Gang Of Four dans un contexte Frontend/JavaScript. Je manque un peu de temps en ce moment mais c'est bien sur ma todo-list de vidéos. ;) Côté diagramme je vais réfléchir, malheureusement cela ne m'as jamais aidé à réellement comprendre l'intérêt des design patterns par rapport à du code "en action". A voir si je change d'avis ! Bon développement, Simon.
@sylvainschellenberger
@sylvainschellenberger Год назад
@@codeursenior C'est une bonne idée de série, qui peut représenter énormément de travail pour couvrir les 23! Je pense que les plus intéressants ce sont les patterns que tu as personnellement utilisé en mission et ou en poste. Après l'UML c'est au goût de chacun, personnellement, cela m'aide de réfléchir en abstraction plutôt que directement en coe, mais chacun sa méthode.
@codeursenior
@codeursenior Год назад
@@sylvainschellenberger Oui, je pense aussi prioriser les vidéos sur les design patterns les plus utiles au quotidien ! 👍
@JirAWS
@JirAWS 2 года назад
Les explications sont limpides, peut être un peu abruptes pour des juniors, mais avec un peu de notions ça glisse super bien. Étonnant que tu n’aies pas plus d’abonnés 🤔
@codeursenior
@codeursenior Год назад
Merci ! 🔥
@gaxkiller
@gaxkiller 8 месяцев назад
Dans toutes les boites que j ai faite on utilisait très rarement ce design pattern. Par contre factory constructor avec un defaut constructor private ça c'est très souvent
@lawicsp8421
@lawicsp8421 2 года назад
De mon côté, c'est le livre design pattern Java, la tête la première qui m'a mis une claque dès le premier pattern (stratégie) 🤯
@codeursenior
@codeursenior 2 года назад
Ah les livres... le moyen de progresser le plus sous-côté ! Bravo à vous donc ! (La série de livres de cet éditeur a une excellente réputation, votre commentaire vient le confirmer une fois de plus !)
@swarthn7577
@swarthn7577 2 года назад
Merci, quelle est le pattern pour les méthodes avec beaucoup trop d'arguments, certains inutiles parfois et qui est vilain à lire. J'ai pensé au pattern command mais je suis pas sûre .
@codeursenior
@codeursenior 2 года назад
Bonjour, c'est un peu plus subtil que ça. Pas sûr qu'il y est une recette côté Design Pattern sur les méthodes avec trop d'arguments. Peut-être regardé du côté Clean Code/Refactoring pour ce genre de soucis. Plus de 1 ou 2 arguments indique généralement un problème de conception. Bon développement, Simon.
@gamecodeur
@gamecodeur Год назад
Bien vu. Je ne fais pas de web mais cette problématique est universelle. Intuitivement je préfère toujours avoir un constructeur non tyrannique, mais tu apportes ici du sens. Notamment sur la consistance/cohérence.
@codeursenior
@codeursenior Год назад
Hello, merci pour ton retour !
@forsethtv7190
@forsethtv7190 2 года назад
c'est clair sa me dégoute tout sa xD merci d'avoir rendu digeste ce truc ,simon thanks
@codeursenior
@codeursenior Год назад
La guerre contre les powerpoints et autres diagrammes a officiellement commencé ! 😆
@makes5819
@makes5819 2 года назад
' return new Snackbar (...) ' dans le build, il faut faire une autre class Snackbar avec un constructor ?
@codeursenior
@codeursenior 2 года назад
Bonjour @Makes, oui tout à fait. Précision que j'aurais peut-être dû apporter. En fait, c'est SnackbarBuilder qui va gérér la création des Snackbars. Mais Snackbar est une classe également, qu'on pourra rendre protégée et accessible au Builder. Ainsi, on est obligé de créer des instances de snackbars en passant par le builder comme on le voulait. 👍
@makes5819
@makes5819 2 года назад
@@codeursenior ok merci 😃
@polipos8341
@polipos8341 2 года назад
@@codeursenior Peut-on faire comme ceci aussi ? private build() { return ({ message: this.message, title: this.title, sticky: this.sticky, type: this.type, icon: this.icon, canClose: this.canClose, duration: this.duration }) }
@codeursenior
@codeursenior 2 года назад
@@makes5819 👍
@codeursenior
@codeursenior 2 года назад
@@polipos8341 Oui, c'est une possibilité, mais je pense que tu perdras le typage TypeScript sur l'élément Snackbar retourné. Peut-être ajouté "as Snackbar" et créer une interface snackbar.model.ts ?
@1234myflash
@1234myflash 2 года назад
J'ai un probleme justement et je me demande si ya un patern pour ca... Exemple on demande a une fonction de nous donner la personne Patrick donc on fait un espece de getPersonne ( aName : string ) : TPersonne; ca retourne une personne mais la on doit prendre en charge le fait que la fonction a instancier la personne mais c'est nous qui doit le detruire... Parcontre peut etre quon veux pas le detruire car cette personne la doit etre utiliser un peux partout dand notre code... Bref je me demande si je dois garder en note tout les personne cree, exemple dans un tableau de la class personne qui delete tout les personne a la fermeture du programme ... Bref personne c'est un objet simple mais j'ai des objet des fois comme ca qui doit etre refiller a plusieur autre objet qui me demande cette objet ... Mon probleme : c'est objet la qui me demande ma personne pense quil vont devoir le detruire eu aussi. Si il le detruit moi je tombe sur un null object error lollll
@codeursenior
@codeursenior 2 года назад
Hello Patrick, je vais vous donner mon point de vue à partir de ce que j'ai compris. Premièrement, les Design Patterns ne sont pas des recettes de cuisines. Parfois, on peut "ne pas avoir suffisamment le problème" pour justifier de mettre en place un design pattern. Deuxièmement, j'ai l'impression que vous avez un problème de state management classique : est-ce que j'ai déjà récupéré cette donnée ? est-ce que je veux une version à jour ou le résultat de la dernière requête ? Comment prévenir les autres éléments du programme que l'état a changé dans l'application ? Je vous recommande de regarder du côté des principes Redux et Flux. Bon développement ! Simon.
@1234myflash
@1234myflash 2 года назад
@@codeursenior Redux et Flux je connais pas.. merci je vais etudier ca un peux. C'est bien d'avoir des nouveau chemin a etudier, qui sais peut etre ma solution vas me venire... Je pense a une variable owner qui dit qui a le droit de detruire...
@codeursenior
@codeursenior 2 года назад
​@@1234myflash Si vous n'avez pas de gros besoins d'industrialisation, une simple variable et un service dédié peuvent suffire ! 😉
@JosephMaarek
@JosephMaarek Год назад
Pourquoi ne pas utilisé ici de l'héritage ? const snackbar = new SuccessSnackbar({message: "information", sticky: true}); Ou alors des méthodes statiques de création: const snackbar = Snackbar::createSuccess({message: "information", sticky: true})
@cebim8929
@cebim8929 Год назад
Chouette vidéo ! "N'utilisez pas constructor" mouhahahaha ! Ou comment rendre un dev curieux.
@codeursenior
@codeursenior Год назад
Merci pour votre retour ! J'espère que la vidéo vous a été utile au-delà de la curiosité initiale. :) Bon développement, Simon.
@sparttan21
@sparttan21 8 месяцев назад
Sur les bulder tu peux utiliser des wither à la place des setter. Ça sera plus naturel à lire
@dfgfhg
@dfgfhg 2 месяца назад
Salut, -tu devrais éditer cette coquille du code de la description : "setSticky(sticky: string)" -> "setSticky(sticky: boolean)". -ne manquerait-il pas les attibuts au début de la class, par exemple : class SnackbarBuilder { private message: string; private title: string; private sticky: boolean; etc ? -je ne comprends pas : Il existe toujours une class Snackbar publique : "class Snackbar { constructor( private message: string, private title: string, private sticky: boolean, private type: string, private icon: string, private canClose: boolean, private duration: number, ) {} }" puisque la méthode "private build() {return new Snackbar..." en a besoin, non ? Du coup l'utilisateur peut toujours l'utiliser à la place du SnackbarBuilder pour construire des snackbars farfelues, ou quelque chose m'échape ?
@codeursenior
@codeursenior Месяц назад
Pour le premier point, vous avez raison, mais malheureusement malheureusement je ne peux pas modifier les vidéos RU-vid. Concernant le deuxième point, il s’agit d’une astuce de syntaxe, de type script qui permet d’éviter cette redondance. Concernant le troisième point, il est effectivement possible de créer une snack-bar « libre » en sortant du contexte du Snackbar Builder. Selon le niveau d’abstraction dont vous aurez besoin, sur un gros projet, cette façon de faire pourrait être revue. Bon code !
@danielrmc
@danielrmc 2 года назад
Comme dit dans la vidéo le niveau de précision est en fait que la lecture du code devient plus agréable et compréhensible par n’importe quel autre dev.
@codeursenior
@codeursenior 2 года назад
Hello Daniel, oui je suis 100% sur cette ligne.
@nuketoto3868
@nuketoto3868 2 года назад
merci , peut etre le code source ?
@codeursenior
@codeursenior 2 года назад
Bonjour, j'ai essayé de mettre le code source dans la vidéo à 11:21. Est-ce que c'est lisible ou pas du tout ? Sinon je peux regarder pour l'ajouter en description. Ce serait peut-être une meilleure solution.
@nuketoto3868
@nuketoto3868 2 года назад
@@codeursenior désolé ce n'est pas lisible
@codeursenior
@codeursenior 2 года назад
@@nuketoto3868 Re, effectivement ce n'est pas la joie ! Je viens d'ajouter le code du Design Pattern Builder à copier-coller en description de la vidéo 👆 Est-ce que tu as pu le récupérer ? Je pense que cela devrais servir à d'autres développeurs également !
@nuketoto3868
@nuketoto3868 2 года назад
@@codeursenior oui, c'est bon. super, merci !
@codeursenior
@codeursenior 2 года назад
@@nuketoto3868 Au top !
@sylvereleipertz955
@sylvereleipertz955 8 месяцев назад
Attention à l'anglicisme très présent chez les devs du mot "Consistant" qui veut dire "Cohérent" en français. Consistant ou consistance en français c'est pour les gâteaux 😉
@AkioJunichiro
@AkioJunichiro 2 года назад
T'as changé depuis ton procés Babor
@codeursenior
@codeursenior 2 года назад
Mince, tu m'as démasqué !
@FabHuy
@FabHuy 2 года назад
Vidéo intéressante, mais j'ai malgré tout un souci avec l'intro sur les Design Pattern. Cracher sur des diagrammes ou dire en demi-teinte que connaitre un pattern est inutile si on a pas déjà rencontré le problème associé, c'est quand même mettre de côté une capacité d'abstraction ou d'analyse qui me semble primordiale pour un développeur. Surtout avec dans la suite de la vidéo cette pique envers la production de code sans pousser la réflexion au-delà du "ça marche", il y a un vrai problème de cohérence. Pourquoi pousser la réflexion après avoir codé serait une bonne chose, et pas réfléchir en amont, penser des abstractions ?
@codeursenior
@codeursenior Год назад
"Pourquoi pousser la réflexion après avoir codé serait une bonne chose, et pas réfléchir en amont, penser des abstractions ?" Hello, je maintiens ma position ! 😉 "Over-engineering is often worst than under-engineering" - Refactoring, Martin Fowler (1999) Je constate chaque jour que c'est bien plus simple d'aligner une équipe sur la résolution d'un problème (l'épine dans le pied) plutôt sur une couche d'abstraction en soi (le meilleur framework/outil/design pattern..). Je constate également qu'un peu de dette de technique fait bien moins de dégât sur un projet que des couches d'abstractions pharaoniques (des semaines d'onboarding) pour résoudre des problèmes que l'équipe de dev n'a pas...
@FabHuy
@FabHuy Год назад
@@codeursenior Il y a quand même une énorme différence entre penser à l'avance et l'over-engineering. Vous exagerez mes propos pour ne pas répondre à ma remarque : l'incohérence de la vidéo. "Un peu de dette technique", pourquoi pas, mais il semble assez peu pertinent de se retrouver à résoudre des problèmes qu'on aurait pas eu en utilisant une méthode éprouvée, pour gérer un singleton par exemple, juste par principe ou a cause de l'épouvantail de l'over-thinking.
@codeursenior
@codeursenior Год назад
"il semble assez peu pertinent de se retrouver à résoudre des problèmes qu'on aurait pas eu en utilisant une méthode éprouvée" => Bien sûr, si vous connaissez déjà une méthode éprouvée en amont, je ne peux que vous inviter à l'utiliser. L'hypothèse cachée ici étant que vous savez déjà comment résoudre le problème au moment où vous le rencontrez.
@FabHuy
@FabHuy Год назад
@@codeursenior C'est un dialogue de sourd, vous vous contentez de détourner un extrait de mes propos à chaque réponse, sans répondre au point principal C'est assez malhonnête, on va s'arrêter là.
@wootwoots
@wootwoots 7 месяцев назад
Informations et façon de faire très intéressante, par contre 13min pour expliquer ce qui se trouve en ... 1min en cherchant les bouts de codes et un gros résumé de la problématique.. bon...
@cours458
@cours458 2 года назад
je vois pas l'interet de faire un builder, un superclasse "BaseSnackbar" avec des attritbut privée aurait eu le meme effet. car dans la realité, les devellopeur vont juste modifier le builder pour faire ce qu'il veulent et en code review on leur dira "ah non non non, la durée est la meme pour toute les snackbar du projet"
@codeursenior
@codeursenior Год назад
Hello, merci pour votre retour. Est-ce que vous avez un exemple de code à partager à partir des spécifications présentées dans la vidéo ? Au plaisir d'échanger, Simon.
@guillaumelalenebie3254
@guillaumelalenebie3254 Год назад
Atos 😱😱😱
@codeursenior
@codeursenior Год назад
Un atosien ?
@yogyohm
@yogyohm 2 года назад
Marrant, j'ai appris à construire des applis par les données par la méthode merise, je n'ai jamais été bloqué et je ne connais pas les design patterns.
@codeursenior
@codeursenior 2 года назад
Incroyable.
@JeremyGasperowicz
@JeremyGasperowicz 2 года назад
👍
@codeursenior
@codeursenior 2 года назад
🔥
@Gepeto213
@Gepeto213 8 месяцев назад
Même réaction que toi en comparant les solutions : Eurêka ! 😂
@cybernetiks
@cybernetiks 7 месяцев назад
Ce n'est pas le pattern builder car c'est plus complexe à mettre en place et ce dont ce que tu présentes ne respecte donc pas le premier pilier de SOLID "S" : Single responsibility La tu as fait une classe qui a plusieurs responsabilité. Ni le second pilier "O" : Open/closed principle Puisque si demain tu décides de changer ta manière de faire les choses alors tu devras modifier ta classe SnackbarBuilder... Bref regarde le diagramme de classe pour le pattern builder
@Anthony_Desponds
@Anthony_Desponds 7 месяцев назад
Wesh babor c'est mis à la prog ?
@codeursenior
@codeursenior 7 месяцев назад
Wesh wesh
@BrainStroming1789
@BrainStroming1789 2 года назад
Juste en passant, les designs pattern hormis de très rares ne doivent pas être utilisés d'entrée de jeux. Il faut avant que le code et l'orientation business se stabilise avant de refactorer avec du design pattern. Sinon on risque de tordre le bras d'un design pattern pour lui faire faire un autre job. Et là c'est la merde. Avant de pensez design pattern, pensez SOLID. Pensez design d'objet par aggegat de comportement (interface). Plus tard refactorez via des design pattern "si et seulement si nécéssaire". Hormis la factory, peu doivent êtres utilisé from scratch.
@codeursenior
@codeursenior Год назад
Commentaire extrêmement pertinent ! Je plussoie (SOLID, composition vs héritage) 👍
@ViraLok
@ViraLok 2 года назад
Tu vas tous les expliquer ?
@codeursenior
@codeursenior 2 года назад
Bonjour Vira, oui, on pourrait. Certains sont plus utiles que d'autres pour un écosystème frontend. Le sujet vous intéresserait ?
@toofitoutflemme
@toofitoutflemme 2 года назад
@@codeursenior tout à fait, le sujet est finalement extrêmement peu abordé sur le youtube francophone
@codeursenior
@codeursenior 2 года назад
@@toofitoutflemme Eh bien on a de quoi faire étant donné que le "Gang Of Four" a répertorié 23 Design Patterns... Donc 23 vidéos ! 🙂
@burdygoureige6619
@burdygoureige6619 2 года назад
Oui d'autres !! l'OL
@codeursenior
@codeursenior 2 года назад
@@burdygoureige6619 🔥
@IStMl
@IStMl 2 месяца назад
Refactoring Guru
@codeursenior
@codeursenior 2 месяца назад
Oui le site de référence. 👍
@wanstalker107
@wanstalker107 9 месяцев назад
Hm’ouais… je suis très départagé. Dire du builder pattern que c’est « Senior »… C’est un peu abusé quand même. Et pour ce cas de figure, je suis départagé entre créer une classe SnackbarBase et jouer sur de l’héritage ou employer le builder pattern.
@codeursenior
@codeursenior 9 месяцев назад
On est sur un titre RU-vid ne l’oubliais pas.
@pacoraby532
@pacoraby532 9 месяцев назад
Ce qu'il a utilisé n'est pas le builder pattern. C'est juste une classe avec des getters et des setters et des fonctions qui renvoient l’objet avec des valeurs prédéfinit. Si le mec est senior, il l'est dans l'amateurisme de ses solutions. Ton intuition est bonne en ce qui concerne d'avoir une meilleur solution que celle proposée dans la vidéo. Tu es sur la bonne voie.
@wanstalker107
@wanstalker107 9 месяцев назад
@@pacoraby532 Tu es mignon et j’apprécie beaucoup ton gentil et charmant message, mais il est inutile d’autant dénigrer ce pauvre Simon. Ça me met plus mal à l’aise pour lui que ça ne me fait rougir de tes si agréables compliments. On va boire un verre ?
@pacoraby532
@pacoraby532 9 месяцев назад
​@@wanstalker107 J'ai juste appeler un chat un chat. En même temps on a une flopée maintenant de Codeur pseudos senior avec des techniques de coach de séduction. Le code qu'il propose est l'application d'aucun design pattern. C'est juste une classe qui se balade. Donc il devrait se sentir mal à l'aise étant donné qu'il raconte des conneries à grande échelle. Avoir une motivation mercantile n'a rien de préjudiciable tant qu'on ne trompe pas les gens sur le produit qu'on vend. Sinon ça s'appel une arnaque.
@codeursenior
@codeursenior 9 месяцев назад
@@pacoraby532 Le builder pattern s'applique sur la classe SnackbarConfig uniquement.
Далее
ТЫ С ДРУГОМ В ДЕТСТВЕ😂#shorts
01:00
Comprendre le Server Side Rendering avec Angular
18:12
getting started with typespec
28:51
Просмотров 1 тыс.
Maîtrisez ces 3 soft-skills pour coder chez Google
22:33
10 Design Patterns Explained in 10 Minutes
11:04
Просмотров 2,2 млн
Command Pattern - Design Patterns (ep 7)
39:12
Просмотров 267 тыс.
ТЫ С ДРУГОМ В ДЕТСТВЕ😂#shorts
01:00