Download - La qualité au-delà du code - ConFoo 2012
1
La qualité au-delà du codeConFoo 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
3
La qualité au-delà du code
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
5
70%Environ 70% du temps consacré à un applicatif l’est dans sa maintenance
6
Compréhensibilité 1Cohérence 2Exhaustivité 3Concision 4
Portabilité 5Testabilité 6Fiabilité 7Maintenabilité 8
7
Compréhensibilité
8
DocumentationLa documentation doit être de qualité, exhaustive et à jour
9
CommentairesLes commentaires doivent compléter le code pas le paraphraser
10
ComplexibilitéToute chose devrait être rendue aussi simple que possible, mais pas plus. - Albert Einstein
11
Mise en forme du codeFaire en sorte que la forme ne vienne pas perturber la compréhension du fond
12
Cohérence
13
NommageLe nommage des éléments doit être logique, cohérent et pertinent
14
DocumentationLe style et la langue de la documentation doivent être uniformes d’un bout à l’autre
15
Mise en forme du codeL’ensemble du code doit suivre les règles de codage. Pas d’exception !
16
Exhaustivité
17
Application complèteL’application est-elle totalement fonctionnelle ?
18
Eléments temporairesLes éléments temporaires doivent être absent de la version finale
19
Interfaces externesEst-ce que les interfaces externes sont disponibles ?
20
DonnéesEst-ce que les données nécessaires sont présentes ?
21
Concision
22
23
DocumentationLa documentation doit être complète mais éviter les longueurs inutiles
24
LibrariesChaque librairie présente doit avoir son utilité
25
Code mortLe code mort augmente inutilement la taille de l’application
26
Code dupliquéLe code dupliqué doit être factorisé pour simplifier sa maintenance
27
Portabilité
28
Nouveaux environnementsLa configuration de l’application doit permettre de la déployer facilement sur de nouveaux environnements
29
Dépendances logiciellesAvoir un minimum de dépendances logicielles permet de diffuser plus largement son application
30
Testabilité
31
Critères d’acceptationPour tester une application il faut connaître les critères d’acceptation du client
32
Séparation des responsabilitésUne application dont les responsabilités sont clairement séparées pourra évoluer plus facilement
33
Code testableUn code fonctionnel n’est pas forcément un code testable
L’injection de dépendance permet de découpler le codeInjection de dépendance
34
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é
36
Fiabilité
37
Tolérance aux erreursUne application ne devrait pas être indisponible dès que survient un problème mineur
38
Mode dégradéUn service réduit est mieux que pas de service du tout
39
SécuritéQuelque soit le domaine économique, la sécurité est un enjeu important pour une application
40
Maintenabilité
41
Installation / Mise à jourL’installation et la mise à jour d’une application doit être le plus simple possible
42
LogsUn système de logs permet de comprendre la vie interne de l’application
43
DébogageIl faut éviter les pratiques compliquant le débogage de l’application
44
Compréhensibilité 1Cohérence 2Exhaustivité 3Concision 4
Portabilité 5Testabilité 6Fiabilité 7Maintenabilité 8
45
Merci !
‣ Commentaires et slides : https://joind.in/5966‣ Blog : http://www.industrialisation-php.com/‣ Twitter : @jmfontaine / @indusphp‣ Email : [email protected]
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/