Je travaille sur différents projets Web et je me demandais s'il existait une règle générale concernant la structure projet/dossiers.Structure des dossiers/répertoires du projet Web - Meilleures pratiques
Beaucoup de mes applications sont construites dans la structure où chaque type de fichier a son propre répertoire. Par exemple:
└─┬root
|
├─┬node_modules
| └ // node_modules (npm libraries)
|
└─┬www
|
├─┬Libs // Js libraries
| |
| ├─┬Angular
| | └ … (.js files)
| |
| └─┬Bootstrap
| └ … (.js files)
|
├─┬JavaScript // my Js files
| |
| ├─┬Services
| | └ … // my services (.js files)
| |
| ├─┬Controllers
| | └ … // my controllers (.js files)
| |
| ├─┬Directives
| | └ … // my directives (.js files)
| |
| └app.js // js entry point
|
├─┬StyleSheets
| |
| ├─┬Less
| | └ … // my styles (.less files)
| |
| └─┬Css
| └ … // my styles (.css files)
|
├─┬Views
| |
| ├─┬Pages
| | └ … // pages layout (.html files)
| |
| └─┬DirectivesTemplates
| └ // templates layout (.html files)
|
├─┬Assets
| |
| ├─┬Fonts
| | └ … // app fonts (.ttf/ .woff files)
| |
| └─┬Images
| └ // app images (.jpg/ .png files)
|
├─┬Data
| |
| └ // app info (.json files)
|
└index.html // web site entry point
Cependant ces derniers temps, je vois quelques projets, où chaque module ont son propre dossier avec son code (fichier .js), vue (.html), le style (fichiers .css/.Moins) et les données (fichier .json, images, polices, etc.) Par exemple:
└─┬root
|
├─┬node_modules
| └ // node_modules (npm libraries)
|
└─┬www
|
├─┬Libs // Js libraries
| |
| ├─┬Angular
| | └ … (.js files)
| |
| └─┬Bootstrap
| └ … (.js files)
|
├─┬Modules
| |
| ├─┬moduleA
| | |
| | ├moduleA.js //modules controller
| | |
| | ├moduleA.html //modules view
| | |
| | ├moduleA.less //modules style
| | |
| | └moduleA.json //modules data
| |
| ├─┬moduleB
| | |
| | ├moduleB.js
| | |
| | ├moduleB.html
| | |
| | ├moduleB.less
| | |
| | ├moduleB.json
| | |
| | └moduleB-icon.png
| |
| └─┬moduleC
| |
| ├moduleC.js
| |
| ├moduleC.html
| |
| ├moduleC.less
| |
| ├moduleC.json
| |
| └moduleC-font.woff
|
└index.html // web site entry point
y at-il des meilleures pratiques en ce qui concerne la structure du projet?
La première structure ressemble à un seul développeur ou à une très petite équipe. La seconde est pour un projet plus important avec plus de développeurs. Chaque module peut être enlevé et remplacé, mis à jour ou changé sans toucher le reste. – Tigger
En Java, Maven est un standard de facto. Cela ne permet pas une grande créativité dans les structures de dossiers. Utilisez-vous Java? –
Je travaille principalement sur des applications côté client, développées en javascript, avec une grande variété de frameworks comme: angulaire, ember, jquery, ionique, webpack, grunt etc. (sur différents projets) –