Skip to content

PrΓ©sentation technique des applications

Ivan Gabriele edited this page Apr 24, 2024 · 31 revisions

Backend

Structure et nommage des fichiers

/
β”œβ”€β”€ config
β”œβ”€β”€ domain
β”‚   β”œβ”€β”€ entities
β”‚   β”‚   └── foo
β”‚   β”‚       └── Foo(Entity).kt
β”‚   β”œβ”€β”€ exceptions
β”‚   β”‚       └── FooException.kt
β”‚   β”œβ”€β”€ filters
β”‚   β”‚       └── FooFilter.kt
β”‚   β”œβ”€β”€ mappers
β”‚   β”œβ”€β”€ repositories
β”‚   └── use_cases
β”œβ”€β”€ 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

Questions

  • Fichiers de config ? (opinion perso : tout dans config/ au mΓͺme niveau que domain/ et infrastructure/)
  • Versionnage ?
  • Acronymes all cap ou camel-cased ?
  • Remise en question des dossiers inputs/ et outputs/ dans le dossier adapters => pourquoi pas directement dans adapters ?
  • Suffixe des entitΓ© (opinion perso : pas de suffixe)
  • Proposition:
    • interfaces/(I)DBFooRepository => interfaces/FooRepositoryInterface
    • interfaces/(I)DBFooRepository => interfaces/FooRepositoryInterface