Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Refactoring (Restructuration de code )
J.M. Vanel
2
Refactoring: Plan Les symptômes: les mauvaises odeurs Définition
Exemples
3
Définition d'un Refactoring
Changement à fonctionnalité égale Appuyé par des tests Par étapes successives Premature optimization is the root of all evil. Donald Knuth
4
What Motivates Us to Refactor?
Make it easier to add new code. Improve the design of existing code. Gain a better understanding of code. Make coding less annoying.
5
Principes Beaucoup d'yeux Code lisible par l'homme
Martin Fowler said it best: Any fool can write code that a computer can understand. Good programmers write code that humans can understand. Garder la propreté À petits pas La dette de mauvaise conception
6
Mauvaises odeurs: défauts majeurs
méthodes et classes trop longues duplication de code Mauvais nommage arguments trop nombreux
7
Mauvaises odeurs: défauts locaux
réutilisation de variables temporaires pour plusieurs usages différents Nombres en dur Commentaires !
8
Mauvaises odeurs: défauts OO
pas d'encapsulation des champs Objets immuables Switch, codes de types Cast (transtypage), instanceof Trop de static
9
Mauvaises odeurs: défauts architecturaux
comportement métier et couche infrastructure mélangés trop de dépendances croisées ou cycliques entre classes ou paquetages À détecter avec JDepend hiérarchies d'héritage parallèles
10
Mauvaises odeurs: autres défauts - 1
Nécessité de changements dans plusieurs classes (shotgun surgery) Changement divergent Envie pour les attributs d'une autre classe (feature envy) Données groupées (data clumps) Usage excessif des types simples (Primitive obsession) Généralité inutile (speculative generality)
11
Mauvaises odeurs: autres défauts - 2
Champs utilisés occasionnellement (temporary fields) Chaînes de messages L'intermédiaire qui fait surtout de la délégation (middle man) Trop d'intimité (inapropriate intimacy) Classes alternatives avec interfaces différentes Classes de données pures (Data Class)
12
Mauvaises odeurs: autres défauts - 3
Conventions de nommage implicites À remplacer par introspection Tout ce qui est détecté par les outils classiques ( PMD, Checkstyle, ...) Complexité cyclomatique
13
Exemples de Refactoring
Extraire: Méthode, classe, variable Renommer Déplacer (Méthode, classe, variable) D'une classe à une autre quelconque Entre parent et descendant Changer arguments méthode ==> eclipse fait tout ça
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.