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

  • docs
  • tests
  • build.sh
  • LICENSE
  • README
Organisation de base d'un projet.
  • docs/  : Répertoire de documentation.
  • tests/ : Dossier de test du projet.
  • build.sh : Script de construction de la version de production.
  • LICENSE : Licence de diffusion du projet.
  • README : Texte d'introduction pour les utilisateurs du projet.

Outils -

Liste d'outils
Language build Documentation Tests
css YUICompressor - CSSLint
Javascript YUICompressor JSDoc3, CodeToDoc JSLint, QUnit
PHP - PHPDoctor, CodeToDoc PHPUnit

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

  • README.md
  • package.json
Titre
Add-on SDK
chapter
cfx
Éditeur
Mozilla
  • CHANGES.txt
  • LICENSE.txt
  • MANIFEST.in
  • README.txt
  • setup.py
  • <name>
Titre
The Hitchhiker's Guide to Packaging
chapter
Creating a Package
Auteurs
  • Tarek ZIADÉ
Éditeur
The Hitchhiker's Guide to Packaging v1.0 documentation
Date
Titre
Guide de référence du programmeur
chapter
Recommended Project Directory Structure
Auteurs
  • COLLECTIF
Éditeur
framework.zend.com
Date
  • Makefile
  • README
Titre
Organizing Browser Application Files
Auteurs
  • Peter MICHAUX
Éditeur
peter.michaux.ca
Date

Historique

2012-10-15
  • Plus de détails dans la structure générique d'un projet.
  • Autres organisations : remplacement des liens par une représentation de la structure de répertoires.
2011-08-28
Constitution d'une documentation plus détaillée.
2011-04-10
Première formalisation de la structure utilisée depuis plusieurs mois.