Nommage
-
Suivez les lignes directrices de cette feuille de triche de nommage .
-
Utilisez
camelCasepour les variables, fonctions, méthodes et props. UtilisezPascalCasepour les composants React, les classes et les noms de types exportés. -
Utilisez
kebab-casepour les noms de fichiers et de dossiers. -
Les composants doivent contenir le suffixe
.componentdans leur nom (par exempleuser.component.tsx). Cette nomenclature est utilisée pour distinguer les composants des autres fichiers tels que les ressources, les feuilles de style et les tests, et détermine où l’outil i18next-parser extrait les clés et chaînes de traduction. Les clés et chaînes de traduction ne seront pas extraites des fichiers qui ne correspondent pas aux globs dans le scriptextract-translationsdu package. -
Les composants spécialisés utilisent des suffixes propres à leur objectif au lieu du suffixe de base
.component. Ils incluent :.extensionpour les composants qui rendent des extensions par exemple lab-order-basket-panel.extension.tsx pour l’extensionLab Order Basket panel..modalpour les composants qui rendent des modales par exemple delete-condition.modal.tsx pour la modaleDelete Conditions..workspacepour les composants qui rendent des formulaires dans l’espace de travail par exemple order-basket.workspace.tsx pour l’espace de travailOrder Basket.
-
Gardez le script
extract-translationsaligné avec les suffixes utilisés dans le package. Les modules générés analysent.component.tsx,.extension.tsx,.modal.tsxetsrc/index.tspar défaut ; ajoutezsrc/**/*.workspace.tsxsi un fichier d’espace de travail contient des chaînes traduisibles. -
Les fichiers de test unitaire et d’intégration doivent contenir le suffixe
.testdans leur nom (par exempleuser.test.tsx). N’incluez pas le motcomponentdans le nom du fichier de test. -
Les tests e2e Playwright doivent contenir le suffixe
.specdans leur nom (par exempleuser.spec.ts). -
Les feuilles de style ne doivent pas contenir
.componentdans leur nom. Nommez-les d’après le composant ou la fonctionnalité qu’elles stylent, généralement avec l’extension.scss(par exempleuser.scsspouruser.component.tsx). Utilisez.module.scssuniquement lorsque le package utilise intentionnellement les modules CSS. -
Les fichiers de ressource qui encapsulent la logique de récupération de données doivent contenir le suffixe
.resourcedans leur nom (par exempleuser.resource.ts). C’est pour les distinguer des autres fichiers tels que les composants, les feuilles de style et les tests. -
Utilisez les extensions appropriées pour les fichiers TypeScript :
- Utilisez l’extension
.tsxpour les fichiers qui contiennent du JSX.
// user.component.tsx function UserComponent(props: UserComponentProps) { return <div>User Component</div>; }- Utilisez l’extension
.tspour les fichiers qui ne contiennent pas de JSX.
// user.resource.ts export async function fetchUser() { const response = await openmrsFetch<User>('/ws/rest/v1/user'); return response.data; }Dans la plupart des cas, vous ne devriez pas avoir besoin d’utiliser l’extension
.tsxpour les fichiers en dehors du répertoiresrc. - Utilisez l’extension
-
Suivez le guide de nomenclature du système d’extensions lors du nommage de vos extensions et emplacements d’extension.
-
Utilisez le nom du fichier comme nom du composant. Par exemple,
user.component.tsxdoit contenir un composant nomméUserComponent. Cela facilite la recherche du composant dans la base de code. -
Évitez d’utiliser les noms de props de composants DOM à des fins différentes. Par exemple, évitez d’utiliser la prop
stylepour passer des options de configuration. Utilisez plutôt un nom de prop descriptif qui correspond à son objectif, tel queconfigouoptions. -
Utilisez
camelCasepour les noms de props. C’est cohérent avec la convention de nommage pour les variables, fonctions et méthodes. -
Les clés de traduction doivent être en
camelCasetandis que les chaînes de traduction doivent être ensentence case. Par exemple,firstNameest une clé de traduction tandis queFirst nameest sa chaîne de traduction correspondante. -
Les modules frontend dans les monorepos doivent avoir des noms qui commencent par le préfixe
esm-. Le nom du module doit décrire ce que fait le module. Par exemple,esm-user-managementest un bon nom pour un module frontend gérant les préoccupations de gestion des utilisateurs etesm-patient-chartest un bon nom pour un module frontend gérant les préoccupations du dossier patient. -
Les props de gestionnaires d’événements doivent être nommées d’après l’événement qu’elles gèrent, par exemple
onClickpour un gestionnaire de clic. Par convention, les props de gestionnaires d’événements doivent commencer par le préfixeon, suivi d’une lettre majuscule. -
Les fonctions de mise à jour d’état doivent être nommées d’après l’état qu’elles mettent à jour. Par exemple,
setFirstNameest un bon nom pour une fonction de mise à jour d’état qui met à jour l’étatfirstName. -
Le nommage de vos branches est généralement une question de préférence personnelle. Cependant, en cas de doute, nommez vos branches en utilisant le type de commit conventionnel auquel votre travail se conforme, suivi d’un slash et d’une courte description séparée par des tirets du travail. De bons exemples incluent :
feat/debounced-order-basket-search,fix/missing-translation,chore/bump-dependenciesettest/add-order-basket-coverage.