My App

Nommage

kebab-case pour fichiers, camelCase pour code, conventions par contexte

Fichiers et dossiers

ContexteConventionExemple
Fichiers TS/TSXkebab-caseestablishment.service.ts
Dossierskebab-caseqr-codes/
Composants Reactkebab-case (fichier)sign-in-form.tsx
Schémas Drizzlekebab-case + .schema.tsestablishment.schema.ts
Routes tRPCkebab-case + .router.tsestablishment.router.ts
Testskebab-case + .test.tsestablishment.service.test.ts

Code TypeScript

ContexteConventionExemple
VariablescamelCaseconst toiletName = ...
FonctionscamelCasefunction createEstablishment()
Types / InterfacesPascalCasetype Establishment = ...
EnumsPascalCaseenum ReportStatus { ... }
ConstantesUPPER_SNAKE_CASEconst MAX_FREE_TEXT_LENGTH = 200
Composants ReactPascalCasefunction SignInForm()

Base de données

ContexteConventionExemple
Tablessnake_case singulierestablishment, qr_code
Colonnessnake_casecreated_at, establishment_id
Enums PGsnake_casereport_status, issue_category
Indexidx_{table}_{column}idx_report_toilet_id
FK{table}_{column}_fktoilet_establishment_id_fk

Règles transversales

  • Anglais pour tout le code (variables, fonctions, types, noms de tables)
  • Français pour les commentaires internes si besoin, et la documentation
  • Pas d'abréviations sauf si universellement comprises (id, url, db)
  • Pas de préfixes I/T sur les types (Establishment, pas IEstablishment)

On this page