Uso um guia de estilo do AngularJS. Dentro deste guia, existe um estilo chamado folder-by-feature
, em vez de folder-by-type
, e estou realmente curioso sobre qual é a melhor abordagem (neste exemplo para Java)
Digamos que eu tenha um aplicativo onde possa recuperar Usuários e Animais de Estimação, usando serviços, controladores, repositórios e objetos de domínio ofcourse.
Tomando a pasta por estilos, temos duas opções para nossa estrutura de embalagem:
1. Pasta por 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. Pasta por recurso
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
Qual seria uma boa abordagem e quais são os argumentos para fazê-lo?
Pet
, do controlador, do repositório e do serviço. Em que situação eu precisaria de todos os controladores, mas não das visualizações, repositórios ou serviços?