Uso una guida di stile AngularJS. All'interno di questa guida c'è uno stile chiamato folder-by-feature
, invece di folder-by-type
, e in realtà sono curioso di sapere qual è l'approccio migliore (in questo esempio per Java)
Diciamo che ho un'applicazione in cui posso recuperare Users & Pets, usando servizi, controller, repository e oggetti di dominio ofcourse.
Prendendo gli stili delle cartelle per -....., abbiamo due opzioni per la nostra struttura di packaging:
1. Cartella per tipo
com.example
├── domain
│ ├── User.java
│ └── Pet.java
├── controllers
│ ├── UserController.java
│ └── PetController.java
├── repositories
│ ├── UserRepository.java
│ └── PetRepository.java
├── services
│ ├── UserService.java
│ └── PetService.java
│ // and everything else in the project
└── MyApplication.java
2. Cartella per funzionalità
com.example
├── pet
│ ├── Pet.java
│ ├── PetController.java
│ ├── PetRepository.java
│ └── PetService.java
├── user
│ ├── User.java
│ ├── UserController.java
│ ├── UserRepository.java
│ └── UserService.java
│ // and everything else in the project
└── MyApplication.java
Quale sarebbe un buon approccio e quali sono gli argomenti per farlo?
Pet
, dal controller, dal repository e dal servizio. In quale situazione avrei mai bisogno di tutti i controller, ma non delle visualizzazioni, dei repository o dei servizi?