Transcript
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/