Index
Documentation Générale Qualité
Documentation Classes Metier
Documentation Liste Qualité Code Review
Documentation Liste Qualité Guideline Development
Documentation Bugs Defaults
Documentation Tests Unitaires
Documentation i18n
Documentation SQL Indexation
Documentation Timeframe
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1
|
Liste "in progress" de choses à faire ou vérifier systématiquement à avoir en tête pendant le développement, pour améliorer la qualité globale du code livré | ||||||||||||||||||||||||||
|
2
|
N'hésitez pas à suggérer des précisions ou de nouvelles vérifications à faire pour compléter cette liste et améliorer la qualité livrée. | ||||||||||||||||||||||||||
|
3
|
|||||||||||||||||||||||||||
|
4
|
Mots clefs | Description | |||||||||||||||||||||||||
|
5
|
|||||||||||||||||||||||||||
|
6
|
CONCEPTS GENERAUX TOUT AU LONG DES DEVELOPPEMENTS | ||||||||||||||||||||||||||
|
7
|
Finition, qualité | La finition et la qualité sont plus importantes que la vitesse | |||||||||||||||||||||||||
|
8
|
Factorisation | Factoriser quand c'est possible et souhaitable (si cela complexifie trop le code et/ou que ça impacte d'autres modules, il faut en débattre) | |||||||||||||||||||||||||
|
9
|
Performances |
Penser performance. Vous développez en test avec 3-4 jeux de données mais quel volume représentera ce jeu de données dans 1 mois, 1 an, 5 ans ? Tout ce qui est consommateur de ressources et répétitif doit faire l'objet de notre attention pour soit être repensé, soit utiliser le deamon en arrière plan.
|
|||||||||||||||||||||||||
|
10
|
Simple |
KIS (Keep It Simple) > La solution la plus simple est toujours la meilleure > Simple != simpliste > Plus une méthode est unique, plus elle est facile à lire, plus elle sera facile à déboguer > On utilise la force de l'équipe pour valider/chercher des solutions.
|
|||||||||||||||||||||||||
|
11
|
Réutilisation des codes |
DRY (Don’t Repeat Yourself) > Par extension dans notre équipe DRO (Don’t Repeat Ourselves) > Toujours chercher à utiliser une technique, une fonction,, une classe, une manière de faire existante. Demander à un collègue plus expérimenté s'il sait. Si l'existant n'est pas satisfaisant le remonter (me contacter) et on en discute.
|
|||||||||||||||||||||||||
|
12
|
Inutile |
Au-delà de KIS > YAGNI (You Aren’t Gonna Need It) > Tout ce qui n'est pas indispensable est à supprimer à priori > Il y a 1000 façons de coder une fonctionnalité nous recherchons la plus simple avec le moins de dépendances possibles (js, librairies etc...) et la plus performante possible en terme de ressources.
|
|||||||||||||||||||||||||
|
13
|
|||||||||||||||||||||||||||
|
14
|
SQL | ||||||||||||||||||||||||||
|
15
|
Indexation |
Optimisation des tables au fur et à mesure, créer les indexs selon les requêtes sur les tables. Voir le nommage particulier des index dans des tables existantes. => ne pas créer systématiquement des index, essayez d'utiliser l'existant, les index étant chargés en RAM, une surabondance peut plomber les performances globales. Ca vaut le coup d'en parler si vous avez un doute.
|
|||||||||||||||||||||||||
|
16
|
Suivi structure BDD | Reporter toutes les créations et changements de BDD dans divers/Hightekers.sql | |||||||||||||||||||||||||
|
17
|
Préparation MEP |
Fournir toutes les requêtes sql (ajouts/modif...) prêt à l'usage pour la mise en production (MEP) dans le répertoire upgradeFromMaster/ (le créer si n'existe pas) et dans un fichier + changements JS README.md
|
|||||||||||||||||||||||||
|
18
|
|||||||||||||||||||||||||||
|
19
|
TESTS ET PULL REQUEST | ||||||||||||||||||||||||||
|
20
|
Tests réels |
Bien réfléchir aux données de tests, très souvent on "s'enferme" pendant le développement dans des tests avec un jeu de données biaisées qui nous arrange pour le développement. Il faut absolument créer des jeux de données réelles pour les tests.
|
|||||||||||||||||||||||||
|
21
|
Tester ' et caractères spéciaux | Dans les champs | |||||||||||||||||||||||||
|
22
|
Tests complets | Tester l'intégralité des fonctionnalités de votre module pendant le développement régulièrement et avant livraison. | |||||||||||||||||||||||||
|
23
|
Tests complets croisés | Faire tester par un autre développeur avant livraison. | |||||||||||||||||||||||||
|
24
|
PULL REQUEST |
Toujours merger le master avant de faire une PR et repouisser et contrôler ses PR régulièrement pour voir si elles sont mergeables. Si elles ne sont mergeable il faut régler les conflits et repousser.
|
|||||||||||||||||||||||||
|
25
|
|||||||||||||||||||||||||||
|
26
|
CODE | ||||||||||||||||||||||||||
|
27
|
Documentation et commentaires |
Commenter, commenter même si c'est ce qui paraît évident. Pour les méthodes, utilisez les fonctionnalités de PHPStorm pour créer des commentaires standard PHPDOC et complétez les,
|
|||||||||||||||||||||||||
|
28
|
Merge | Pas de merge de 2 branches entre elles autres que MASTER et PREPROD | |||||||||||||||||||||||||
|
29
|
Rester strictement dans l'objet de la branche |
Pas de modification ou bugfix/correctifs en dehors du sujet de la branche courante > Nouvelle branche depuis master > PR > Et on pull soit cette nouvelle brancher soit le master si ça été mergée.
|
|||||||||||||||||||||||||
|
30
|
Merger le master souvent dans votre branche | Merger origin/master plusieurs fois par jour dans votre branche courante. | |||||||||||||||||||||||||
|
31
|
Scripts sensibles |
Dès que l'on touche à quelque chose de sensible, surtout les calculs (exemple include/model/comptes_consultants.inc.php fct maj_totaux_compte_consultant ou le deamon). Faire relire et vérifier au moins 3 fois la validité du calcul.
|
|||||||||||||||||||||||||
|
32
|
Toute modification update/insert | update/insert modifiés > vérifier, pointer les champs (manquent-il des champs), | |||||||||||||||||||||||||
|
33
|
Typer les variables dans les fonctions | exemple func(int $one):array {} ou func(int $one):nom_objet {} | |||||||||||||||||||||||||
|
34
|
Restreindre les colonnes | Dans les fonctions du manager ->get, ->update > préciser les champs voulus dans un tableau en paramètres ! Systématiquement. | |||||||||||||||||||||||||
|
35
|
Simplifier manager | Pas de fonction additionnelle dans les managers si pas indispensable. | |||||||||||||||||||||||||
|
36
|
Textes interfaces | Faire bien attention aux textes destinés aux users : Style, simplicité, didactique, orthographe. | |||||||||||||||||||||||||
|
37
|
Entities | Tous les attributs value des champs de form avec des valeurs provenant soit de l'utilisateur, soit de la base, doivent être protégés par la fonction entities() | |||||||||||||||||||||||||
|
38
|
Relecture | Relecture du code à la fin de chaque cycle (exemple fin d'un module). | |||||||||||||||||||||||||
|
39
|
Comparer | Revoir tous les changements par rapport au master avant la pull request. | |||||||||||||||||||||||||
|
40
|
Recomparer | Refaire lire le différentiel votre branche VS master à un autre développeur pour avoir son retour. | |||||||||||||||||||||||||
|
41
|
|||||||||||||||||||||||||||
|
42
|
AFFICHAGES | ||||||||||||||||||||||||||
|
43
|
Tableaux | Bien vérifier formatage des nombres et alignements dans les colonnes des tableaux (CF autres pages existantes) => la plupart du temps, nombres alignés à droite et textes à gauche | |||||||||||||||||||||||||
|
44
|
Listes | Pour chaque ajout de paramétres à une liste, il faut qu'ils soient pris en compte aussi dans le download xls | |||||||||||||||||||||||||
|
45
|
Défauts visuels | Vérifier les défauts visuels même mineurs, les noter s'ils ne sont pas traîtés immédiatement et les corriger. | |||||||||||||||||||||||||
|
46
|
Responsive | Tester le responsive | |||||||||||||||||||||||||
|
47
|
Protéger l'affichage | Tous les affichages de textes sur le navigateur doivent être encadrés par la fonction entities() | |||||||||||||||||||||||||
|
48
|
|||||||||||||||||||||||||||
|
49
|
ERREURS & LOGS & DEBUG | ||||||||||||||||||||||||||
|
50
|
Nettoyer | Vérifier les notices et warning et les traîter. Application web : tail -f apachelog/hightekers.process-id.com-error_log, Daemon : tail -f /project/htkd.log | |||||||||||||||||||||||||
|
51
|
Supprimer debugs | Chercher et supprimer debugvar, var_dump, print_r, error_log, ecrit_log, code mort de partout. | |||||||||||||||||||||||||