Upgrade to Pro — share decks privately, control downloads, hide ads and more …

N'ayez pas peur de refactoriser

N'ayez pas peur de refactoriser

Forum AFUP - 2021

Loulier Guillaume

October 21, 2021
Tweet

More Decks by Loulier Guillaume

Other Decks in Programming

Transcript

  1. university.sensiolabs.com Guillaume Loulier / @Guikingone Développeur @SensioLabs Amoureux de sport

    automobile, fais un peu de Rust, Blackfire tatoué sur le cœur Vous lui dites: Coucou SensioLabs
  2. university.sensiolabs.com Sommaire SensioLabs Vous avez dit refactoriser? En théorie, tout

    va bien se passer En pratique, c’est compliqué Casser n’est pas refactoriser Questions
  3. university.sensiolabs.com Il y a bien longtemps SensioLabs Avez-vous entendu parler

    du portail de Chesterton ? Refactoriser est une affaire de compromis Vous ferez souvent des cauchemars … Mais vous vous ferez aussi des amis
  4. university.sensiolabs.com Hellcome SensioLabs Nous refactorisons quand quelque chose casse Cela

    coûte de l’argent, de la sueur et du temps Personne ne veut en parler ou ne s’en préoccupe
  5. university.sensiolabs.com De l’art d’être fragile SensioLabs Robert C. Martin You

    see, programmers tend to be arrogant, self- absorbed introverts. We didn’t get into this business because we like people. Nous tolérons mal les échecs Souvent, nous blâmons les autres Demander de l’aide aux collègues nous semble coûteux et inutile Que se passe t-il si un « sachant » s’en va?
  6. university.sensiolabs.com Prenons de la hauteur SensioLabs Idée Implémentation Tests Pré-production

    Production Idée Implémentation Tests Pré-production Production
  7. university.sensiolabs.com Parlons peu, parlons mieux SensioLabs Quel est l’état du

    produit ? Avons-nous trouvé des bugs ? Le client a t-il des priorités ? Pouvons-nous améliorer quelque chose ? Et l’infrastructure ? Benjamin Franklin If you fail to plan, you’re planning to fail! Idée Implémentation Tests Pré-production Production
  8. university.sensiolabs.com Faire du sale mais le faire vite SensioLabs To

    write clean code, you must first write dirtycode and then cleanit. Robert C. Martin Idée Implémentation Tests Pré-production Production Est-ce un bug ? Pouvons-nous améliorer cette dépendance ? Et si quelque chose casse ? Développer, livrer, vite
  9. university.sensiolabs.com Douter revient à tester SensioLabs Program testing can be

    used to show the presence of bugs, but never to show their absence! Edsger W. Dijkstra Idée Implémentation Tests Pré-production Production Est-ce que tout fonctionne ? Et si le formulaire change ? Est si telle API est indisponible ? Tester, c’est douter… Des autres
  10. university.sensiolabs.com Reculer pour sauter moins loin SensioLabs Et si je

    clique ici ? Et les tests de montées en charge ? Les performances sont- elles améliorées ? Avons-nous documenté cette fonctionnalité ? If a change to the requirements breaks your architecture, then your architecture sucks. Robert C. Martin Idée Développement Tests Pré-production Production
  11. university.sensiolabs.com La MEP peut attendre SensioLabs EdsgerW. Dijkstra Simplicityis prerequisite

    for reliability. L’application reste t-elle disponible ? Performante ? Avons-nous amélioré l’expérience utilisateur ? Récupérons-nous de nouveaux utilisateurs ? Les fonctionnalités sont- elles disponibles ? Idée Développement Tests Pré-production Production
  12. university.sensiolabs.com Livre III SensioLabs Idée Implémentation Tests Implémentation Tests Pré-production

    Idée Implémentation Pré-production Bien mais on livrequand ? Mieux mais quid des utilisateurs finaux ? Mieux mais … Et les performances? Idée Implémentation Production Bien mieux mais … Les tests?
  13. university.sensiolabs.com Tu parles charles SensioLabs Idée Implémentation Tests Et si

    les performances déclinent ? Quid du retour sur investissement ? Amélioration ? Régression ? Qui sait ? Idée Développement Tests Pré-production Production
  14. university.sensiolabs.com Contrôler les entrées / sorties ? Echec de planification

    ? Quid de la vision produit ? Réfléchir, c’est ralentir SensioLabs Implémentation Tests Pré-production Idée Développement Tests Pré-production Production
  15. university.sensiolabs.com Les performances ? Non ? Tester, c’est surfait ?

    Quid de la dette technique ? Et si j’outrepasse ce bouton ? Erreur 418 SensioLabs Idée Implémentation Pré-production Idée Implémentation Tests Pré-production Production
  16. university.sensiolabs.com Et si une régression survient ? Surprise, un bug

    sauvage ? Automatisons les tests ? Documentons-nous assez ? On ne déploie qu’une fois SensioLabs Idée Implémentation Production Idée Implémentation Tests Pré-production Production
  17. university.sensiolabs.com RIPP, 1000mg SensioLabs Acronyme facile pour “Rector, Infection, PHPStan

    / Psalm” Pensé autour de l’idée « Autant automatiser ce qui est laborieux » 3 prises par jour, avec des projets compliqués
  18. university.sensiolabs.com RIPPétons-nous SensioLabs Avez-vous entendus parler de « Continuous Refactoring

    » ? Pensée pour les projets anciens comme modernes Planifier avant d’agir Sécuriser, structurer, automatiser et livrer Static analysis Tests Automated refactoring Profiling Security analysis Monitoring
  19. university.sensiolabs.com Un nouvel espoir SensioLabs Snyk Blackfire Deptrac/ PHPat /

    Arkitect CI / Git E2E Refactoring Security Performances profiling Static analysis Unit tests + mutation testing Architecture Rector PHPStan / Psalm Infection Cypress RIPP
  20. university.sensiolabs.com Vends-moi ce refactoring SensioLabs Permet de mieux gérer l’évolution

    d’un projet Améliore les cycles de développement Mets la qualité, l’architecture et la correction de bugs en avant Et l’argent ?
  21. university.sensiolabs.com C’est un marathon et non un sprint(f) Refactoriserne rends

    pas beauet ne fait pas revenir l’être aimé. Vous serez mis devant vos responsabilités mais vous en apprendrezplus sur vouset le projet. Au final, votre patience sera testée, arrêtez d’y réfléchiret refactorisez! SensioLabs Guillaume Loulier, Afup2021, 10h (àpeuprès)
  22. university.sensiolabs.com Envie de donner un avis ? Envie de discuter

    ? @Guikingone Pas si vite SensioLabs SensioLabs