46
1 La qualité au-delà du code ConFoo 2012

La qualité au-delà du code - ConFoo 2012

Embed Size (px)

DESCRIPTION

Les cycles de développement des applications raccourcissent de plus en plus. La pression se fait plus forte sur les équipes de développement qui sont poussées à développer en mode mercenaire, où seul le résultat immédiat compte. Cette vision est généralement contre-productive sur le long-terme car on passe beaucoup plus de temps à maintenir une application qu'à la développer. Il est donc primordial de s'assurer de sa qualité au delà de l'adéquation avec le besoin fonctionnel.Cela passe par de nombreux éléments dont bien entendu la qualité du code source mais pas seulement. La présence de documentations pertinentes et à jour, les types et l'étendue des tests mis en place, l'architecture de l'application ou encore sa portabilité sont autant de facteurs clés du succès d'un projet.

Citation preview

Page 1: La qualité au-delà du code - ConFoo 2012

1

La qualité au-delà du codeConFoo 2012

Page 2: La qualité au-delà du code - ConFoo 2012

Passionné de web depuis 1996, de PHP depuis 2000 et de musique depuis 1977

Jean-Marc Fontaine

‣ Consultant PHP chez Alter Way‣ Ex-Président de l’AFUP‣ Co-Auteur du livre blanc

«Industrialisation PHP»‣ Auteur du blog

industrialisation-php.com

2

Page 3: La qualité au-delà du code - ConFoo 2012

3

La qualité au-delà du code

Page 4: La qualité au-delà du code - ConFoo 2012

4

“C'est seulement quand l'hiver est arrivé qu'on s'aperçoit que le pin et le cyprès perdent leurs feuilles après tous les autres arbres”

Confucius

Page 5: La qualité au-delà du code - ConFoo 2012

5

70%Environ 70% du temps consacré à un applicatif l’est dans sa maintenance

Page 6: La qualité au-delà du code - ConFoo 2012

6

Compréhensibilité 1Cohérence 2Exhaustivité 3Concision 4

Portabilité 5Testabilité 6Fiabilité 7Maintenabilité 8

Page 7: La qualité au-delà du code - ConFoo 2012

7

Compréhensibilité

Page 8: La qualité au-delà du code - ConFoo 2012

8

DocumentationLa documentation doit être de qualité, exhaustive et à jour

Page 9: La qualité au-delà du code - ConFoo 2012

9

CommentairesLes commentaires doivent compléter le code pas le paraphraser

Page 10: La qualité au-delà du code - ConFoo 2012

10

ComplexibilitéToute chose devrait être rendue aussi simple que possible, mais pas plus. - Albert Einstein

Page 11: La qualité au-delà du code - ConFoo 2012

11

Mise en forme du codeFaire en sorte que la forme ne vienne pas perturber la compréhension du fond

Page 12: La qualité au-delà du code - ConFoo 2012

12

Cohérence

Page 13: La qualité au-delà du code - ConFoo 2012

13

NommageLe nommage des éléments doit être logique, cohérent et pertinent

Page 14: La qualité au-delà du code - ConFoo 2012

14

DocumentationLe style et la langue de la documentation doivent être uniformes d’un bout à l’autre

Page 15: La qualité au-delà du code - ConFoo 2012

15

Mise en forme du codeL’ensemble du code doit suivre les règles de codage. Pas d’exception !

Page 16: La qualité au-delà du code - ConFoo 2012

16

Exhaustivité

Page 17: La qualité au-delà du code - ConFoo 2012

17

Application complèteL’application est-elle totalement fonctionnelle ?

Page 18: La qualité au-delà du code - ConFoo 2012

18

Eléments temporairesLes éléments temporaires doivent être absent de la version finale

Page 19: La qualité au-delà du code - ConFoo 2012

19

Interfaces externesEst-ce que les interfaces externes sont disponibles ?

Page 20: La qualité au-delà du code - ConFoo 2012

20

DonnéesEst-ce que les données nécessaires sont présentes ?

Page 21: La qualité au-delà du code - ConFoo 2012

21

Concision

Page 22: La qualité au-delà du code - ConFoo 2012

22

Page 23: La qualité au-delà du code - ConFoo 2012

23

DocumentationLa documentation doit être complète mais éviter les longueurs inutiles

Page 24: La qualité au-delà du code - ConFoo 2012

24

LibrariesChaque librairie présente doit avoir son utilité

Page 25: La qualité au-delà du code - ConFoo 2012

25

Code mortLe code mort augmente inutilement la taille de l’application

Page 26: La qualité au-delà du code - ConFoo 2012

26

Code dupliquéLe code dupliqué doit être factorisé pour simplifier sa maintenance

Page 27: La qualité au-delà du code - ConFoo 2012

27

Portabilité

Page 28: La qualité au-delà du code - ConFoo 2012

28

Nouveaux environnementsLa configuration de l’application doit permettre de la déployer facilement sur de nouveaux environnements

Page 29: La qualité au-delà du code - ConFoo 2012

29

Dépendances logiciellesAvoir un minimum de dépendances logicielles permet de diffuser plus largement son application

Page 30: La qualité au-delà du code - ConFoo 2012

30

Testabilité

Page 31: La qualité au-delà du code - ConFoo 2012

31

Critères d’acceptationPour tester une application il faut connaître les critères d’acceptation du client

Page 32: La qualité au-delà du code - ConFoo 2012

32

Séparation des responsabilitésUne application dont les responsabilités sont clairement séparées pourra évoluer plus facilement

Page 33: La qualité au-delà du code - ConFoo 2012

33

Code testableUn code fonctionnel n’est pas forcément un code testable

Page 34: La qualité au-delà du code - ConFoo 2012

L’injection de dépendance permet de découpler le codeInjection de dépendance

34

Page 35: La qualité au-delà du code - ConFoo 2012

Il existe de nombreux types de tests qui sont plus ou moins adapté au contexte d’une application

35

Types de test

‣ Tests unitaires‣ Tests fonctionnels‣ Tests de charge‣ Tests de sécurité

Page 36: La qualité au-delà du code - ConFoo 2012

36

Fiabilité

Page 37: La qualité au-delà du code - ConFoo 2012

37

Tolérance aux erreursUne application ne devrait pas être indisponible dès que survient un problème mineur

Page 38: La qualité au-delà du code - ConFoo 2012

38

Mode dégradéUn service réduit est mieux que pas de service du tout

Page 39: La qualité au-delà du code - ConFoo 2012

39

SécuritéQuelque soit le domaine économique, la sécurité est un enjeu important pour une application

Page 40: La qualité au-delà du code - ConFoo 2012

40

Maintenabilité

Page 41: La qualité au-delà du code - ConFoo 2012

41

Installation / Mise à jourL’installation et la mise à jour d’une application doit être le plus simple possible

Page 42: La qualité au-delà du code - ConFoo 2012

42

LogsUn système de logs permet de comprendre la vie interne de l’application

Page 43: La qualité au-delà du code - ConFoo 2012

43

DébogageIl faut éviter les pratiques compliquant le débogage de l’application

Page 44: La qualité au-delà du code - ConFoo 2012

44

Compréhensibilité 1Cohérence 2Exhaustivité 3Concision 4

Portabilité 5Testabilité 6Fiabilité 7Maintenabilité 8

Page 45: La qualité au-delà du code - ConFoo 2012

45

Merci !

‣ Commentaires et slides : https://joind.in/5966‣ Blog : http://www.industrialisation-php.com/‣ Twitter : @jmfontaine / @indusphp‣ Email : [email protected]

Page 46: La qualité au-delà du code - ConFoo 2012

Les photos et illustrations suivantes ont été utilisées dans cette présentation. Merci à leurs auteurs !

46

Crédits photographiques

‣ https://secure.flickr.com/photos/jorgempf/17271202/

‣ https://secure.flickr.com/photos/26053177@N03/4503264891/

‣ https://secure.flickr.com/photos/irisslootheer/4359044679/

‣ https://secure.flickr.com/photos/marcovdz/4520986339/

‣ https://secure.flickr.com/photos/houseofantiquehardware/5183160228/

‣ http://geekandpoke.typepad.com/geekandpoke/2010/01/documentation-is-key.html

‣ https://secure.flickr.com/photos/daimlerag/6640914329/

‣ https://secure.flickr.com/photos/cglosli/3296946161/

‣ https://secure.flickr.com/photos/44442915@N00/4371880134/