Organisation de projet
Tentative de formalisation de quelques pratiques d'organisation d'un projet informatique.
Présentation
Je travaille sur des projets basés sur différents languages de programmation. Jongler entre les possibilités et spécificités techniques de chacun de ces langages n'est pas toujours aisé, mais la manière d'organiser le code peut amener un semblant d'unité.
Au boulot, j'utilise principalement le java ; c'est un monde où la structuration des projets est fortement normalisée et il est donc préférable de ne pas trop y toucher. Pour d'autres langages, PHP, javascript, css ou python, la normalisation est moins forte voire inexistante ; j'essaye néanmoins d'adopter une organisation commune.
Spécifications
- build
- docs
- html
- txt
- src
- tests
- samples
- unit
- build.sh
- LICENCE
- README
- build/ : dossier de compilation du projet, ce qui est publié/livré :
- Javascript|CSS : YUICompressor.
- docs/ : Répertoire de documentation.
- html/ : version HTML de la documentation du code :
- PHP : PHPDoctor.
- Javascript : jsdoc-toolkit, CodeTodDoc.
- txt/ : version texte de la documentation.
- html/ : version HTML de la documentation du code :
- src/ : code source du projet.
- tests/ : dossier de test du projet
- build.sh : outils bash facilitant la construction du projet.
- LICENCE : licence de diffusion du projet.
- README : Texte d'introduction pour les utilisateurs du projet.
Remarques
Cette organisation n'est pas toujours idéale : il est par exemple conseillé en python de placer le dossier de tests à l'intérieur des sources afin de pouvoir les exécuter plus aisément en tant que module. Dans le cas de projets python, le processus de build devra donc inclure le dossier test.
Les dépendances peuvent aussi poser problème quand elles sont situées à l'extérieur du code. Dans ces cas là, de simples liens symboliques arrangent l'affaire.
Autres organisations
ZIADé, Tarek. The Hitchhiker's Guide to Packaging. The Hitchhiker's Guide to Packaging v1.0 documentation, . Creating a Package
COLLECTIF. Packages/1.0. CommonJS, . Le code source est à placer dans un dossier lib/.
COLLECTIF. Guide de référence du programmeur. framework.zend.com, . Recommended Project Directory Structure
Historique
- 2011-04-10
- Première formalisation de la structure utilisée depuis plusieurs mois.
- 2011-08-28
- Constitution d'une documentation plus détaillée.