My App
Conventions

Nommage

Conventions de nommage des fichiers, identifiants, tables et enums.

Fichiers en kebab-case

Les fichiers de code sont en kebab-case, par exemple report-priority.ts. La règle est appliquée par Biome via useFilenamingConvention.

Les fichiers imposés par les frameworks gardent leur convention, car elle est dictée par l'outil et non par nous : page.tsx, layout.tsx, les routes dynamiques de Next, les fichiers spéciaux d'Expo. Ces répertoires sont exemptés de la règle via des overrides Biome.

Langue du code

Le code est en anglais : noms de variables, de fonctions, de types. Les commentaires internes peuvent être en français lorsqu'ils expliquent une intention métier subtile.

Identifiants et composants

ÉlémentConventionExemple
Fichier de codekebab-casereport-priority.ts
Composant ReactPascalCaseSignInForm
Fonction et variablecamelCasereportPriority
Type et interfacePascalCaseTrustLevel
Constante partagéeSCREAMING_SNAKE_CASETRUST_LEVELS

Identifiants de base de données

Les tables métier utilisent des identifiants ULID, triables dans le temps et adaptés à la pagination par curseur. Les tables gérées par Better Auth conservent leurs identifiants text d'origine, on ne les touche pas.

export const ulidPk = () =>
  text("id")
    .primaryKey()
    .$defaultFn(() => ulid());

Enums Postgres

Les enums sont déclarés explicitement avec pgEnum et un nom stable, réutilisés dans les tables. Le nom de l'enum est unique dans toute la base.

export const postStatus = pgEnum("post_status", ["active", "removed", "quarantined"]);

On this page