-
Notifications
You must be signed in to change notification settings - Fork 7
PrΓ©sentation technique des applications
Ivan Gabriele edited this page Apr 24, 2024
·
31 revisions
βββ config
β βββ FooConfig.kt
βββ domain
β βββ entities
β β βββ foo
β β βββ Foo.kt
β βββ exceptions
β β βββ FooException.kt
β βββ filters
β β βββ FooFilter.kt
β βββ mappers
β β βββ FooMapper.kt
β βββ repositories
β β βββ (I)FooRepository
β βββ Utils.kt
β βββ use_cases
β βββ foo
β βββ dtos
β β βββ FooDTO.kt
β βββ CreateOrUpdateFoo.kt
βββ infrastructure
β βββ api
β β βββ adapters
β β β βββ bff
β β β β βββ inputs
β β β β β βββ foo
β β β β β βββ CreateOrUpdateFooDataInput.kt
β β β β βββ outputs
β β β β βββ foo
β β β β βββ FooDataOutput.kt
β β β βββ publicapi
β β βββ endpoints
β β βββ bff
β β β βββ FooController,kt
β β β βββ BarControllerV[0-9].kt
β β βββ publicapi
β β βββ FooController.kt
β β βββ BarControllerV[0-9].kt
β βββ database
β β βββ models
β β β βββ FooModel.kt
β β βββ repositories
β β βββ interfaces
β β β βββ (I)DBFooRepository.kt
β β βββ JpaFooRepository.kt
β βββ monitorenv/monitorfish/rapportnav
β βββ Utils.kt
βββ utils
βββ GlobalFooer.kt
GΓ©nΓ©rateur d'arbre utilisΓ© : https://www.text-tree-generator.com.
- MΓ©lange de diffΓ©rents types de nommage : parfois suffixes, parfois prefixes.
- Confusion dans le nommage des repository domain et des repository infrastructure, mΓͺme chose pour les interfaces. Les repository domain dΓ©finissent les repository infrastructure et les
infrastructure/repositories/interfaces
reprΓ©sentent les query DB. - Versioning via de sous-dossier, des suffixes, des sur-dossiers, ou internes en suffixant les noms des mΓ©thodes ?
- Acronymes all cap ou camel-cased ?
- Remise en question des dossiers
inputs/
etoutputs/
dans le dossieradapters
=> pourquoi pas directement dans adapters ? - Suffixe des entitΓ©s ?
- Utils / structure : par sous-dossier relatif, globaux ou les deux selon qu'ils soient globaux ou dΓ©diΓ©s ?
- Utils / fonctions : rassemblΓ©s sous la mΓͺme classe en plusieurs mΓ©thodes ou sΓ©parΓ©s en un fichier par fonction ?
- Nommage :
- On suffixe tous les fichiers par leur rΓ΄le Γ l'exception des :
- entities
- use cases
- utils
- Singulier Γ l'exception des dossiers structurels (
entities/
,utils/
, etc) et des fichiers dΓ©diΓ©s Γ des collections (GetFoos
). On avait dΓ©jΓ dΓ©cidΓ© de Γ§a normalement.
- On suffixe tous les fichiers par leur rΓ΄le Γ l'exception des :
- Confusion repo/interface, proposition de structure/nommage :
/domain /repositories /FooRepository.kt /infrastructure /queries /FooQueryRepository.kt /repositories /JpaFooRepository.kt
- Config : Tout dans un
config/
au mΓͺme niveau quedomain/
etinfrastructure/
. - Versionning : en suffixant les mΓ©thodes des classes (
getAllV1()
,executeV1()
) pour :- Γ©viter de complexifier encore un peu plus la structure des dossiers ;
- Γ©viter d'avoir Γ faire le choix de "quand un sur-dossier, quand un sous-dossier ?" ;
- pour simplifier le codage en Γ©vitant d'avoir Γ ouvrir plusieurs fichiers similaires (
v1/foo/FooController
,v2/foo/MyController
).
- Acronymes all cap ou camel-cased : Camel-cased car je trouve Γ§a plus lisible mais c'est peut-Γͺtre une affaire de goΓ»t. => Quoique soit le choix, je suggΓ¨re qu'on fasse le mΓͺme choix pour le Frontend.
- Adapters : Supprimer les dossiers intermΓ©diaires
inputs/
etoutputs/
car les suffixes et les sur-dossiers mΓ©tiers qui les rassemblent me paraissent assez clairs pour en diffΓ©rencier l'usage. - Suffixe des entitΓ©s : Pas de suffixe.
- Utils / structure : Comme dans le Frontend, au niveau qui correspond Γ leur utilisation.
- Utils / fonctions : Comme dans le Frontend, en plusieurs fichiers pour les utils globaux, un seul fichier avec plusieurs mΓ©thodes lorsqu'ils sont localisΓ©s (pour Γ©viter d'ajouter des sous-dossiers supplΓ©mentaires ?).