Bonjour,

Aujourd'hui je met un gros coup de décrassage sur un gros projet sur lequel je travail.
J'ai pris aussi un peu de temps pour réorganiser la structure de mon projet. J'ai donc parcouru le web à la recherche des bonnes pratiques et j'ai trouvé quelques ressources intéressantes
https://jeffknupp.com/blog/2013/08/1...the-right-way/
https://github.com/audreyr/cookiecutter-pypackage

Je vois beaucoup de questions de code sur ce forum(Python), mais assez peu finalement sur l’environnement de travail, les outils, la méthodologie et l'organisation autant pour la phase de développement que pour le déploiement.
Je sais que certains points sont bien sur spécifiques au projet, et certains autres sont assez subjectifs (par exemple la stratégie d'organisation des tests unitaires), mais je pense qu'on peu quand même se mettre d'accord sur des bonnes pratiques et sur un template de base.

C'est dans cet optique que je crée ce nouveau thread afin que les gens puisse communiquer sur leurs pratiques et débattre sur les solutions proposées


Voici mon projet réorganisé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
MON_PROJET_REPO
    - binaries/ 
    - docs/ (sphinx)
    - mon_projet/
        - components/ (composants réutilisables)
            - component_1/
                - unit_tests/
                - component_1.py
            - ...
        - locale/
        - mon_projet/
            - truc_1/
                 - unit_tests/
                 - truc_1.py
            - ...
        - main.py
    - icons/ (logo, ...)
    - py_venv/ (virtualenv)
    - requirements/
        - prod.txt
        - test.txt
        - dev.txt
    - scripts/ (innosetup, sphinx, .bat ...)
    - .gitignore
    - .gitmodules
    - .travis.yml
    - HISTORY.md (Historique des changements)
    - license.rtf
    - Makefile
    - MANIFEST.in
    - README.md
    - requirements.txt
    - setup.cfg
    - setup.py
    - tox.ini
Personnellement j'utilise:
Virtualenv + virtualenvwrapper
Innosetup
Git
Sphinx
Tox
Travis / Jenkins

(Je ferai une maj demain pour rajouter quelques détails - c'est l'heure de quitter le boulot )