Merci Mike pour cette video, je suis dev debutant et je me suis bien reconnu dans la 5eme anti pattern 😅. Je vais progresser grâce a toi! Continues comme ça! 👍
@MikeCodeur_
3 жыл бұрын
🙏
@redheademile2915
3 жыл бұрын
~7:30 Le if (condition) { return true; } else { return false; } ça compte comme Antipatterns ? (car on pourrait directement fairre "return condition;")
@MikeCodeur_
3 жыл бұрын
Yes onpoureaitt
@zenwhitezen
3 жыл бұрын
Super bien les illustrations en haut à droite ! Je viens de me rendre compte que je fais des magic strings alors 😂
@MikeCodeur_
3 жыл бұрын
Hey hey 🙏
@Sims4Luxury
3 жыл бұрын
Pareil, je fais ça tout le temps (mes profs aussi ^^)
@Rob_tknd
3 жыл бұрын
Toujours ici pour les conseils.🙌🏾 merci
@MikeCodeur_
3 жыл бұрын
🙏
@mnenterprise8580
3 жыл бұрын
Conseils très pratiques, merci !
@MikeCodeur_
3 жыл бұрын
🙏
@SlothySP
3 жыл бұрын
Je viens de découvrir ta chaîne et elle est super cool ! Merci à toi 😉
@MikeCodeur_
3 жыл бұрын
🙏
@DavidSilveraYT
3 жыл бұрын
Tres bonne vidéo comme d'habitude. Le nommage est hyper important. Un code bien écrit n'a pas besoin de commentaire 👍
@changemotion
2 жыл бұрын
Merci pour cette vidéo
@MikeCodeur_
2 жыл бұрын
🙏
@mohagp3905
3 жыл бұрын
Tu m'as régalé frérot je pensais que tu t'étais perdu dans l'argent avec tes formations mais nan t'es un bon
@MikeCodeur_
3 жыл бұрын
Mdr
@bouloan7576
3 жыл бұрын
Ne nous enflammons pas, on est reste quand même sur un niveau très basique
@rachidbenbelkacem8412
3 жыл бұрын
Merci pour les conseils, je pense que pour les magic strings/numbers le plus judicieux est d'utiliser des enums en Java/typescript. On pourra rajouter aux anti patterns : Premature optimization God class Useless classes
@MikeCodeur_
3 жыл бұрын
👌
@malo6741
3 жыл бұрын
Ta une bonne mine Mike, cool le soleil de Bali ! merci pour ce nouveau contenu :)
@MikeCodeur_
3 жыл бұрын
🙏
@thirien59
3 жыл бұрын
Merci pour cette vidéo Mike, je n'ai pas beaucoup d'expérience, mais les "magic strings" et le code dupliqué sont tout juste le genre de coquilles que j'aurai pu faire, sans réaliser qu'à long terme elles auraient pu me poser des problèmes.
@MikeCodeur_
3 жыл бұрын
👌👍
@nicolasjoulin3004
3 жыл бұрын
Pour l'overcomment, faut quand même garder en tête qu'un IDE à moyen d'afficher "au survol" les commentaire mis au dessus d'une fonction, ça permet d'éviter de se taper la navigation entre plein de fichier juste pour voir quels paramètres une fonction accepte. Dans ce cas là à mon sens c'est une bonne chose d'être verbeux. Mais oui, pas besoin d'allourdir le corps d'une méthode avec des commentaire redondant.
@MikeCodeur_
3 жыл бұрын
👍
@ced07
3 жыл бұрын
merci pour la vidéo, un petite piqure de rappel cela fait du bien...
@MikeCodeur_
3 жыл бұрын
🙏
@battosensei
3 жыл бұрын
Merci c'est top comme conseil ça aide beaucoup continue on voit le passionné 👍👌
@MikeCodeur_
3 жыл бұрын
👍
@tsedaclick4574
3 жыл бұрын
Un peu basique a mon goût. Le meilleur conseol a retenir ca peut etre de lire Coder Proprement. Avis aux intéressés c'est un livre très orienté objet, tous les exemples sont donnés en Java
@MikeCodeur_
3 жыл бұрын
Simple, basique car tu es ...
@tsedaclick4574
3 жыл бұрын
@@MikeCodeur_ Je m'attendais à voir développer les anti-pattern de ton mail de ce matin : "Bikeshedding, Analysis Paralysis, God Class, Inner-platform Effect"
@MikeCodeur_
3 жыл бұрын
👍
@emilie1977
3 жыл бұрын
Super
@MikeCodeur_
3 жыл бұрын
🙏
@Tx_id
3 жыл бұрын
Très intéressant ! Plus de vidéo de ce format =') !
@MikeCodeur_
3 жыл бұрын
👍
@hamzac.4555
3 жыл бұрын
good video, je valide
@MikeCodeur_
3 жыл бұрын
🙏
@Docstring
3 жыл бұрын
Par rapport à l'exemple avec les magic strings, je vois très souvent des structures conditionnelles comme ça avec 3 lignes de code (voire plus si on rajoute un else). Quand on teste une condition avec un opérateur de comparaison, on récupère déjà un booléen qui sera donc true ou false, donc pas besoin d'encapsuler tout ça dans un if et de retourner true ou false, il suffit de retourner directement la comparaison : Exemple : function estMajeur(age) { return age >= 18; }
@MikeCodeur_
3 жыл бұрын
Yes mais ce n’est pas le propos de la video
@Docstring
3 жыл бұрын
@@MikeCodeur_ bien sûr et ça n’enlève rien à ton propos sur les magic string et je sais bien que c’est un code d’exemple. Je me permettais juste de mentionner cette astuce qui permet d’éviter quelques lignes :)
@philippec4448
3 жыл бұрын
Du bon contenu, comme d’hab. Keep up the good work !
@MikeCodeur_
3 жыл бұрын
🙏
@theob.1779
3 жыл бұрын
Pour la première erreur au moins le code est déjà obfusqué ^^ (merci pour la vidéo)
@MikeCodeur_
3 жыл бұрын
Merci
@philippelek8956
3 жыл бұрын
Pour devenir développeur web back-end, tu conseilles qu'elle techno pour un débutant ?
@MikeCodeur_
3 жыл бұрын
Node js
@fnicolay100
3 жыл бұрын
Super vidéo, très enrichissante.
@MikeCodeur_
3 жыл бұрын
🙏
@yorikmoreau1636
3 жыл бұрын
Vidéo intéressante, une série sur les designs patterns de prévue ? :)
@MikeCodeur_
3 жыл бұрын
Yes bonne idée
@illshaadbudureea9146
3 жыл бұрын
Génial 😊
@MikeCodeur_
3 жыл бұрын
🙏
@jerem213012
3 жыл бұрын
très bonne vidéo, merci Mike pour ton contenu :)
@MikeCodeur_
3 жыл бұрын
Merci jerem
@aliascross
3 жыл бұрын
Bien vu 👍 Y’aurait juste pour les méthodes, où je trouve quand même pratique d’avoir une description, rien que pour confirmer ce qu’elles font quand on code leurs appels. En tout cas, ça fait du bien de mettre un nom sur ces « dérives », on se sent moins seul 😅
@MikeCodeur_
3 жыл бұрын
👌
@valeresoisse
3 жыл бұрын
Merci Mike tu gères, beau pc au passage !
@MikeCodeur_
3 жыл бұрын
🙏
@alphago-59
3 жыл бұрын
Merci Mike, 👍 Impeccable.
@MikeCodeur_
3 жыл бұрын
👍
@juliengrg5837
3 жыл бұрын
>= 18 prochaine vidéo sur les off-by-one groumpf (Et _Poltergeist_ est un mot allemand, pour l'anecdote). Cool comme vidéo. :)
@MikeCodeur_
3 жыл бұрын
🙏👌
@SovatthaSok
3 жыл бұрын
Pas mal cette vidéo, et distrayante en tout cas ! C'est bien que tu cites Clean code. Pour le dernier exemple, il est dit dans le bouquin que les fonctions monadiques (à un paramètre) sont plus lisibles que celles à 2 paramètres 😉 L'exemple de la fin aurait mérité 2 fonctions : log() et getFormat() Après il n'y a pas une vérité absolue hein !
@MikeCodeur_
3 жыл бұрын
Yes 👌
@pandojotv1440
3 жыл бұрын
Très bonne vidéo ;) D'ailleurs, étant débutant en programmation, je me demandais si ce bout de code est correct, ou si c'est un "antipattern" : let roles = { U: "user", C: "contributor", A: "admin" } let createArticlePrivilege = (role) => { if(role === roles.C || role === roles.A ){ return true } else { return false } }
@MikeCodeur_
3 жыл бұрын
Yes ca semble correcte. Mais pkoi create ?
@Fireanen
3 жыл бұрын
créer un branchement if else uniquement pour retourner true ou false est a éviter. Fait juste retourner le résultat de ta condition comme ceci: return role === roles.C || role === roles.A;
@59140Dunkerque
3 жыл бұрын
super, bien cette video. merci
@MikeCodeur_
3 жыл бұрын
Merci
@saidoudiallo9506
3 жыл бұрын
merci bcp @Mike
@MikeCodeur_
3 жыл бұрын
🙏
@idrisscoder
3 жыл бұрын
const merci = "super vidéo Mike merci !)"
@neilquechon8716
3 жыл бұрын
alert(merci);
@jeremierousseau965
3 жыл бұрын
Moi qui code depuis quelques années il m'est arrivé plusieurs fois d'écrire 500lignes de code et de les détruire 6 mois après et le code allait 5fois plus vite, le soft évolue un peu comme une plante à qui tu donnes de l'angrais mais que tu tailles de temps en temps mon frère me disait il y a dix ans c'est un peu comme faire de la peinture à la gouache tu passes et repasses en revue certaines zones de ton code, après je trouve que la façon de coder dépend du projet en construction, plus fonctions ou plus OOP.
@MikeCodeur_
3 жыл бұрын
👌
@sinamarki
3 жыл бұрын
Dans le 3e cas, ton exemple ressemble beaucoup au pattern Decorateur qui justement peut s'avérer très utile pour apporter des comportements de façon dynamique à une classe.
@MikeCodeur_
3 жыл бұрын
Yes
@brunonogues5128
3 жыл бұрын
Pour ta classe animal, marcher courir et autres représente le comportement de l'animal, il serait même plus pertinent de créer une interface avec ses méthodes non ?
@MikeCodeur_
3 жыл бұрын
Yes possible
@brunonogues5128
3 жыл бұрын
@@MikeCodeur_ Ah cool ! J'ai galèrer a comprendre a quoi servait les interfaces je crois que je commence a saisir! Parce qu'en soi on peut tout faire sans interfaces donc je voyais pas l'intérêt
@gedTech16
3 жыл бұрын
merci pour la video ; dev un jour , dev toujours
@MikeCodeur_
3 жыл бұрын
Hey hey
@k4nful
3 жыл бұрын
Je trouve vraiment que c'est pas cohérent ce que tu expliques, un pattern Singleton ou Factory c'est des modèle de conception, donc deux patterns qui créent des objets. Un antipattern c'est pas un magique string ou le faite de commenter ou pas son code , ça c'est simplement des bonnes pratiques ultras basiques et non des antipatterns. Un antipattern c'est le fait de coder un mécanisme qui fournit le même résultat (qu'un pattern) mais qui ne respecte pas le modèle donc codé avec les pieds et inmaintenable. Un exemple flagrant d'antipattern pertinent avec le pattern State (State Machine) c'est de le coder avec un gros switch bien moche (antipattern) à la place de suivre le modèle du pattern avec une classe par état. Bref tout ça pour dire que tu confonds certaines choses et tu n'expliques pas ce que c'est un antipattern. Comme il n y'a que des débutants ici personne ne réagit. Mais quand on veut faire de la formation il faut être au clair avec ces concepts, ne pas rester en surface et utiliser les bons termes, là tu parles simplement de bonnes pratiques très très basiques alors que les patterns ça peut vite devenir complexe. Pour finir il faut arrêter de montrer des exemples de fonction style : isAdmin (p) { if( p.role === ADMIN) { return true; } } ON DOIT CODER : isAdmin(p) { return p.role === ADMIN; } C'est absolument interdit ce genre de choses avec des vrais codeurs pointilleux sur des apps ultra costauds. A+ merci
@MikeCodeur_
3 жыл бұрын
Ce sont des antipattern classique
@thirien59
3 жыл бұрын
j'ai plutôt l'impression que tu cherches la petite bête pour l'allumer.
@k4nful
3 жыл бұрын
@@thirien59 Ben écoute le jour où on te parle de design pattern et que tu sors " c'est d'éviter les magics string" , j'aimerais bien voir la tête du mec en face...
@thirien59
3 жыл бұрын
@@k4nful oh la la j’aurais utilisé un terme plutôt qu’un autre ! Ça voudra dire que je serais jamais capable de coder !
@k4nful
3 жыл бұрын
@@thirien59 C'est pas un terme plutôt qu'un autre, là, c'est juste faux. Après si tu veux apprendre faux tu peux. Au moins, après cette discussion tu pourra pas dire que tu sais pas !!!
@herrlockskun9295
3 жыл бұрын
Joli recyclage de ta vidéo sur le clean code d'il y a un an
@MikeCodeur_
3 жыл бұрын
Un petit peu différente quand meme 😁
@rolandpierrelouis4013
3 жыл бұрын
Merci Mike..est possible de nous expliquer en video les Designs Pattern en profondeur ?
@MikeCodeur_
3 жыл бұрын
Bonne idée
@rolandpierrelouis4013
3 жыл бұрын
@@MikeCodeur_ si tu connais aussi des livres pouvant aider à mieux comprendre les Designs pattern, fais moi une petite liste please
@guillaumedelestanville9615
3 жыл бұрын
L'hyper-comment j'ai vu ça. Un commentaire dans chaque méthode pour indiquer la partie déclaration de variables. Sisi. Un antipattern qui me donne de l'urticaire: ne pas faire les traitements à la volée. C'est à dire faire une première boucle pour stocker dans une structure temporaire, puis une seconde derrière pour faire un calcul ou une restitution. Cela a 2 défauts majeur: c'est lent et gourmand en mémoire et en plus cela complexifie inutilement le code . Il m'est arrivé de passer 2 à 3 jours pour détecter un bug et le corriger en 1 ligne. Un autre. Manipuler les valeurs numériques sous forme de chaine de caractère (idem pour les dates). Sans compter l'utilisation de "float" ou "double" pour le calcul financier. Mais aussi: le code fleuve. Une page de code sans fonctions qui fait plus de 500 lignes, ça vous tente ? Moi ça me donne la migraine. L'art du commentaire reste délicat. Lorsque l'algorithme est particulièrement alambiqué, il est bien d'avoir au moins une explication en début de code pour savoir ce que c'est censé faire et comment s'en servir. Cela évite de mettre le nez dans le code pour comprendre le fonctionnement.
@MikeCodeur_
3 жыл бұрын
👌
@atortevois
3 жыл бұрын
En bon débutant la fonction isAdmin j’aurais juste fait : function isAdmin(role) { return (role === ADMIN); } 😉
@MikeCodeur_
3 жыл бұрын
Ues
@rpgamer1002
3 жыл бұрын
Les parenthèses sont pas nécesaires mais l'exemple de la vidéo est à proscrire en effet.
@atortevois
3 жыл бұрын
Les parenthèses ne sont pas nécessaires mais perso je trouve qu’elle rende le code plus lisible ;)
@jaysanprogramming6818
3 жыл бұрын
vidéo intéressante. Ca fait toujours du bien de rappeler les bonnes pratiques. Par contre, loin de moi l'idée de lancer un débat sur point virgule ou pas à la fin d'une instruction mais tes exemples oscillent entre la présence du point virgule et l'absence. Je trouve ça un peu dérangeant d'avoir pas une cohérence tout du long pour ça.
@MikeCodeur_
3 жыл бұрын
Yes bien vu
@pingolitipus
3 жыл бұрын
Euh.... Oki d accord... 😄. Pour animal ce n est pas si simple, le modem ne doit pas être pollué par des méthodes qui implémente un comportement. Il est nécessaire de faire des classes différentes, le problème vient surtout de l instance animal qui a été propager dans les classes enfants, les classes enfants doivent recevoir des informations généralistes et pas des objets pour être réutilisables.
@MikeCodeur_
3 жыл бұрын
👌
@TheMrslimane
3 жыл бұрын
Rien ne disparait avec le temps, c'est avec le travail qu'on acquire les bonnes pratiques, j'entends souvent ça que avec le temps tu développes mieux, c'est faux le temps n'y fais rien, on peut coder avec ses pieds pendant 20 ans.
@MikeCodeur_
3 жыл бұрын
Yes
@gillesbarges1861
3 жыл бұрын
La 1ere erreur du débutant, c'est de commencer son projet en écrivant directement du code dans l'IDE, sans réfléchir à la structure, aux besoins, à l'organisation (séquentiel ? événementiel ?), sans faire d'organigramme... Le code, le code, le code, vite, vite !
@MikeCodeur_
3 жыл бұрын
👍
@marclebrun
3 жыл бұрын
"Poltergeist" n'est pas un mot Anglais mais Allemand, monsieur l'Arrogant :-)
@MikeCodeur_
3 жыл бұрын
Yes tout le monde m’a dit ca
@harveykonan897
2 жыл бұрын
Merci pour les patterns mais et les principes S.O.L.I.D
@MikeCodeur_
2 жыл бұрын
Yes
@FredM80
3 жыл бұрын
Salut ! Bonne vidéo ! Poltergeist, je crois que c'est un mot allemand.
@MikeCodeur_
3 жыл бұрын
Ah ok
@davenpaint
3 жыл бұрын
!connardArogant ^^ Sympa cet aspect de l'apprentissage du code, de beaux conseils
@MikeCodeur_
3 жыл бұрын
😁
@PyxelBlobsStudio
3 жыл бұрын
Bonne vidéo. Même si la plupart tu les fais plus d'instinct. En tout cas pour moi.
@MikeCodeur_
3 жыл бұрын
👍
@tchitcholoco
3 жыл бұрын
Le nom des variables et de la fonction sont un problème, certes, mais également la comparaison « âge > 18 » à la place de « âge >= 18 » 🤔
@MikeCodeur_
3 жыл бұрын
Yes momo bien vu
@hamzac.4555
3 жыл бұрын
A vrai dire pour la fonction estMajeur, j'aurais meme pas mis de condition, j'aurais juste "return age > 18"
@MikeCodeur_
3 жыл бұрын
Yes
@rpgamer1002
3 жыл бұрын
Corriger des antipatterns avec d'autres antipatterns. Fallait y penser mdr
@MikeCodeur_
3 жыл бұрын
Tu m’as l’air pédagogue toi
@thanosys4648
3 жыл бұрын
ça bronze ça bronze :)
@MikeCodeur_
3 жыл бұрын
Ah ouiil faut
@stargatonio
3 жыл бұрын
S'agissant de l'overcomment c'est malheureusement un truc qui est demandé dans les écoles public (tout du moins license et BTS) ayant le problème inverse, j'ai tendance à mettre vraiment peu de com, j'ai eu énormément de mal à comprendre ce qu'ils voulaient que je fasse avec des coms sur chaque ligne ^^
@MikeCodeur_
3 жыл бұрын
Mdr
@stargatonio
3 жыл бұрын
Ce que je peut conseiller sur le nommage de fonction, c'est d'utiliser 3 mots en camelCase, ça oblige à trouvé des nom cohérent et en plus, certain éditeur de code permettent l'utilisation des majuscule du camel Case pour faire l'autocompletion Ex: uint16 getVibratoAmplitude(); Sur l'ide Qt écrire 'gva' provoque l'autocompletion de getVibratoAmplitude() Pour les variable j'utilise en général 2 à 3 mots si c'est une variable non local (structure, class, global, ...) et seulement 1 pour toutes le variables locales car en général elle sont moins importantes et utilisées dans un contexte bien précis
@toubippc
3 жыл бұрын
😅 Je les ai toutes faites .. ! ( ..certaines sont tenaces ). Un code bien fait est ( généralement .. ) réutilisable !
@MikeCodeur_
3 жыл бұрын
😂👌
@weno1842
3 жыл бұрын
lol pour la duplication de code je me suis reconnu 😆
@MikeCodeur_
3 жыл бұрын
Jey hey
@amauryhoubrechts7802
3 жыл бұрын
attention quand même... la logique des un n'est pas celle des autres... si tu doutes d'être compris faut quand même commenter
@MikeCodeur_
3 жыл бұрын
Yes
@mozart3805
3 жыл бұрын
Erreur chez des développeurs avancés aussi !!! :)
@MikeCodeur_
3 жыл бұрын
Yes
@aymericcccc
3 жыл бұрын
Pour être majeur, c'est >= 18 et pas > 18 :)
@MikeCodeur_
3 жыл бұрын
Ca depend du pays
@aymericcccc
3 жыл бұрын
@@MikeCodeur_ C'est pas faux
@mediacreatif
2 жыл бұрын
Non Mike je te défends de dire ça, mes designs ne sont pas ternes.
@MikeCodeur_
2 жыл бұрын
😂
@MrSousx
3 жыл бұрын
Pour l'exemple de la class Animal Il existe un autre pattern. Les Traits. mais en JS ça n'existe pas , mais ont peut "imiter" ce comportement exemple ici: calebporzio.com/equivalent-of-php-class-traits-in-javascript
@MikeCodeur_
3 жыл бұрын
Thanks
@weshnarvalo7845
3 жыл бұрын
Je suis pas un expert JS, mais je me pose tout de même une question. Face à l'héritage et aux interfaces qui propose le langage, je vois mal quels sont les intérêts de l'approche avec l'imitation du pattern que tu proposes. Je n'y vois même que des inconvénients et je ne comprends pas vraiment dans quel cas ça peut être utile.
@levagabond4464
3 жыл бұрын
le copié collé des codes chez Bethesda ils le dévorent mdr
@MikeCodeur_
3 жыл бұрын
Mdr tu bosses chez eux ?
@levagabond4464
3 жыл бұрын
@@MikeCodeur_ non c'est une équipe de moddeur qui avaient trouvé le même code de skyrim pour les dragons dans Fallout 76 pour je ne sais plus quoi et ça faisait un gros bug , les moddeurs avaient vu qu'il y avais un copié collé mais vraiment, avec les commentaires mdr
@Xirnatts
3 жыл бұрын
Bonne vidéo, mais tu bouges beaucoup, c'est très distrayant ^^'
Пікірлер: 170