|
|
Conventions de développement
|
|
|
============================
|
|
|
|
|
|
Cette page établit une liste de contraintes à respecter pour que du code soit
|
|
|
intégré à GestioCOF.
|
|
|
Elles semblent nécessaires pour plusieurs raisons, comme l'amélioration de la
|
|
|
lisibilité du code et une plus grande simplicité à travailler sur un projet
|
|
|
collaboratif.
|
|
|
|
|
|
Ces contraintes ne devraient pas être des freins ! Si vous éprouvez des
|
|
|
difficultés à les appliquer, placez votre attention sur la réalisation de votre
|
|
|
but initial. Quelqu'un, ou vous-même, pourra toujours repasser un peu plus
|
|
|
tard pour vous aider à *peaufiner*.
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
Linters
|
|
|
-------
|
|
|
|
|
|
Commençons par les conventions les plus simples à respecter : celles mises en
|
|
|
œuvre par des programmes externes.
|
|
|
Ils peuvent généralement être intégrés facilement à votre éditeur de texte,
|
|
|
nativement parfois, par l'installation d'extensions sinon.
|
|
|
Une rapide recherche du nom de votre éditeur et de l'extension devrait vous
|
|
|
mettre sur une bonne voie.
|
|
|
|
|
|
Certains d'entre eux feront peut-être parties intégrantes du processus de
|
|
|
développement en étant ajoutés à la CI (intégration continue).
|
|
|
Pour savoir ce qu'il se passe dans la CI, consultez le dernier
|
|
|
[gitlab-ci.yml](https://git.eleves.ens.fr/cof-geek/gestioCOF/blob/master/.gitlab-ci.yml)
|
|
|
du projet.
|
|
|
|
|
|
### flake8
|
|
|
|
|
|
Le code Python devrait être validé par [flake8](http://flake8.pycqa.org/en/latest/).
|
|
|
Ce n'est pas une nécessité mais ça peut être une bonne habitude à prendre.
|
|
|
Il vérifie, entre autres, que les conventions de la [PEP8](https://www.python.org/dev/peps/pep-0008/)
|
|
|
sont bien respectées.
|
|
|
|
|
|
À noter : Django est testé avec flake8 et
|
|
|
[recommande](https://docs.djangoproject.com/en/1.11/internals/contributing/writing-code/coding-style/)
|
|
|
son usage.
|
|
|
|
|
|
Celui-ci peut s'intégrer rapidement à votre éditeur de texte, vérifier dans le
|
|
|
catalogue des extensions disponibles de celui-ci.
|
|
|
|
|
|
### pylint
|
|
|
|
|
|
Bien que personne ne devrait vous en vouloir de ne pas rendre [Pylint](https://www.pylint.org/)
|
|
|
content, les messages offerts par ce plugin sont parfois utiles pour détecter
|
|
|
des erreurs. |