- Nouveau
- Tendances
- Classement
-
Tagsbonnes-pratiquesBonnes pratiques42phpPHP24newsletternewsletter24devdev23veilleVeille15teletravailTélétravail15programmationprogrammation14tddTDD13architectureArchitecture13javascriptJavaScript12design-patternDesign Pattern12agiliteAgilité12codeCode11laravelLaravel9devopsDevOps9conferenceConférence8carriereCarrière8retour-d-experienceRetour d'experience7front-endfront-end7gitGit6formationFormation6entreprenariatEntreprenariat6clean-codeClean Code6youtubeYoutube5videoVidéo5podcastPodcast5organisationOrganisation5cultureCulture5testingTesting4tech-leadTech Lead4optimisationOptimisation4freelancingFreelancing4dddDDD4craftCraft4compagnonCompagnon4vue-jsvue.js3retrospectiveRetrospective3remoteremote3reconversionReconversion3reactReact3programmation-fonctionnelleProgrammation fonctionnelle3productivteproductivté3performancesperformances3nodejsNodeJS3javaJava3iaIA3humourHumour3ethiqueEthique3emploiEmploi3ecologieEcologie3debutantDébutant3cqrsCQRS3covid-19Covid-193clean-architectureClean Architecture3ci-cdCI/CD3blogBlog3architecture-hexagonaleArchitecture Hexagonale3webWeb2vscodevscode2slackSlack2securiteSécurité2rustrust2pythonPython2produitProduit2pooPOO2personal-brandingpersonal branding2pair-programmingPair programming2hexagonalehexagonale2green-itGreen IT2gestion-du-tempsGestion du temps2evenementÉvènement2ecosystemeEcosystème2donnees-personnellesDonnées personnelles2changelogChangelog2cercleCercle2vite-jsvite.js1visualstudiovisualstudio1vision-systemiqueVision systémique1vie-priveeVie privée1tinydbTinyDB1theorie-des-contraintesThéorie des contraintes1thematuredevTheMatureDev1testtest1systeme-de-queueSystème de queue1sqlSQL1springbootspringboot1slow-techSlow.tech1restREST1refactoringrefactoring1react-nativeReact-Native1queerQueer1prodprod1ports-and-adaptersPorts and Adapters1pedagogiePédagogie1originesOrigines1open-sourceOpen Source1onlineonline1net.NET1mvcmvc1mutation-testingMutation testing1minimalismeMinimalisme1microsoftmicrosoft1maisonMaison1lowtechLowTech1livelive1licorneLicorne1langagelangage1jobjob1ingenieurieIngénieurie1inclusionInclusion1ideide1hommageHommage1hibernatehibernate1graphqlGraphQL1goGo1flowconFlowcon1flowflow1extreme-programmingeXtreme Programming1event-sourcingEvent sourcing1entretien-d-embaucheEntretien d'embauche1entretienentretien1entrainementEntrainement1energieEnergie1dojoDojo1dockerdocker1diversiteDiversité1devtoolDevTool1dbDB1ctoCTO1csscss1coup-de-gueuleCoup de gueule1cloudCloud1chansonChanson1buildbuild1blazorblazor1bffBFF1bddbdd1avenirAvenir1autonomieAutonomie1audioAudio1atddatdd1apiAPI1androidAndroid1alignementAlignement1algorithmealgorithme1
- Mes favoris
- Recevoir par email
- Partager un lien
Les patrons de conception (design patterns) sont des solutions classiques à des problèmes récurrents de la conception de logiciels. Chaque patron est une sorte de plan ou de schéma que vous pouvez personnaliser afin de résoudre un problème récurrent dans votre code.
Qu'est-ce que le pattern stratégie ?
Comment l'utiliser ?
Maxime nous partage ce qu'il a appris.

Entre de bonnes mains, l'héritage peut être utilisé pour bien des choses. En voici l'une des plus puissantes.
Vous connaissez le code « boite noire » qui fonctionne sans vous demander votre avis ? Si oui, alors il est temps de le reprendre en main comme il se doit.
Instancier des objets avec une interface, c’est souvent un risque de se gaufrer. Mais avec ce patron de conception, ce sera du gâteau !
Les patrons de conception, que sont-ils et pourquoi sont-ils si indispensables ? Je vous explique ça avec mes piètres talents de dessinateur.
refactoring.guru/fr

Je me suis bien trop souvent brûlé les ailes en faisant des abstractions prématurées sur des exigences client bien souvent mouvantes.
Je préfère largement laisser émerger les abstractions de l'étape de refacto du cycle TDD, qui s'apparente à la phase de réusinage de l'article du coup.
José Paumard nous présente une sélection commentée des livres qu'il aime bien.
Enocre une ressource sur l'archi hexa, ça fait pas de mal !
Mais je manque d'arguments et de ressources pour détailler cette nuance :/
Ca te permettra de faire peut etre apparaitre mieux dans ton code un concept métier (si méthode compliqué c'est bien que c'est un point sensible métier normalement)
En le mettant dans une classe dédié, tu pourras aussi le remplacer plus simplement (par exemple ca devient facile de remplacer l'appel de cette classe dédié par une interface et ca ouvre la porte à la possibilité de switcher facilement d'implémentation, imagine que tu as une idée pour améliorer l'algo en question ou améliorer sa vitesse, bim ca devient possible facilement par le fait que tu ai extrait l'algo dans une classe dédié)
Qui a dit que le DDD et le logiciel en général ne pouvait être composé que de classes, d’héritage, et qu’une modélisation sans comportement était forcément un modèle anémique, un anti-pattern par définition ?
Pourquoi devrais-je l'étudier selon toi ?
En plus d'être très bon dans son domaine (no pun intended !), c'est un super pédagogue qui sait expliquer simplement des concepts compliqués sans les vulgariser/dénaturer.
Les développeurs passent beaucoup de temps devant un écran, parfois au détriment de leur santé oculaire. Une des solutions serait la lecture sur un support papier.
Le pattern stratégie en POO peut être remplacé par une fonction passée en paramètre par exemple.