La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Refactoring (Restructuration de code )

Présentations similaires


Présentation au sujet: "Refactoring (Restructuration de code )"— Transcription de la présentation:

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


Télécharger ppt "Refactoring (Restructuration de code )"

Présentations similaires


Annonces Google