Skip to content

Commit

Permalink
Précise les conventions de dossiers et fichiers
Browse files Browse the repository at this point in the history
  • Loading branch information
farnoux committed Nov 27, 2024
1 parent 97dfa78 commit c491728
Showing 1 changed file with 59 additions and 14 deletions.
73 changes: 59 additions & 14 deletions doc/adr/0003-conventions-de-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,45 +27,90 @@ Les conventions de nommage et d'architecture choisies suivent les standards par

- **`kebab-case` pour les noms de fichiers et dossiers**

Exemple : `src/app/plan-actions/plan-actions.tsx`

- **Organisation des dossiers d'abord par domaine → puis scope → puis layer technique**

Exemple : `src/indicateurs/models/indicateur.schema.ts`

Exemple : `src/plan-actions/shared/models/fiche-action.schema.ts`

Exemple : `src/app/plan-actions/fiche-actions/views/fiche-action.card.tsx`
Exemple : `src/app/plans/plan-actions.tsx`

- **Organisation des dossiers d'abord par domaine → puis scope [→ puis feature] [→ puis layer technique]**

Exemple côté backend :

```
src
└ plans
└ fiches
· └ count-by-statut
· · └ count-by-statut.request.ts
· · └ count-by-statut.response.ts
· · └ count-by-statut.router.ts
· · └ count-by-statut.router.e2e-test.ts
· · └ count-by-statut.service.ts
· └ update
· · └ update.controller.ts
· · └ update.request.ts
· · └ update.service.ts
· └ shared
· └ fiche-action.table.ts
· └ fiche-action-referent.table.ts
└ shared
└ models
└ thematique.table.ts
└ structure-tag.table.ts
```

Exemple côté frontend :

```
src
└ plans
└ toutes-les-fiches
· └ views
· └ fiche-action.list.tsx
· └ fiche-action.list-item.tsx
· └ fiche-action.card.tsx
· └ fiche-action.card.stories.tsx
└ shared
└ hooks
└ use-create-fiche-action.ts
└ use-export-fiche-action.ts
```

- **Suffix des fichiers avec son "type"**

Exemple type UI : `fiche-action.card.tsx`, `fiche-action.list.tsx`, `fiche-action.list-item.tsx`
Exemple type UI :

- `fiche-action.card.tsx`
- `fiche-action.list.tsx`
- `fiche-action.list-item.tsx`

- **`index.ts` au niveau des sous-scopes**, si besoin, pour rassembler tous les exports associés et simplifier les imports.

Exemple : `src/plan-actions/fiche-actions/index.ts`
Exemple : `src/plans/fiches/index.ts`

→ résultat à l'import : `import { FicheAction } from '@tet/api/fiche-actions'`
→ résultat à l'import : `import { FicheAction } from '@tet/api/plans/fiches'`

### Les domaines métiers Territoires en Transitions

Les domaines correspondent aux principaux contextes métiers de la plateforme Territoires en Transitions.

Voici les domaines définis actuellement :
Voici les domaines et sous-scopes définis actuellement :

1. `utilisateurs`
2. `collectivites`
- `membres`
3. `referentiels`
- `scores`
- `audits`
- `labelisations`
- `personnalisations`
4. `indicateurs`
- `trajectoires`
5. `plans`
- `plans`
- `fiches`
- `paniers`
- `action-impacts`
6. `shared`

Les domaines définis doivent rester restreints et (quasi) figés.
Les domaines et scopes définis doivent rester restreints et (quasi) figés.

L'ajout exceptionnel d'un nouveau domaine ne peut se faire qu'après validation auprès de l'ensemble de l'équipe.

Expand Down

0 comments on commit c491728

Please sign in to comment.