Tôi sử dụng một hướng dẫn phong cách AngularJS. Trong hướng dẫn này, có một kiểu được gọi folder-by-feature
, thay vì folder-by-type
và tôi thực sự tò mò cách tiếp cận tốt nhất (trong ví dụ này cho Java)
Giả sử tôi có một ứng dụng nơi tôi có thể truy xuất Người dùng & Thú cưng, sử dụng các dịch vụ, bộ điều khiển, kho lưu trữ và các đối tượng miền thông thường.
Lấy các kiểu theo thư mục, chúng tôi có hai tùy chọn cho cấu trúc bao bì của mình:
1. Thư mục theo loại
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. Thư mục theo tính năng
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
Điều gì sẽ là một cách tiếp cận tốt, và những lý lẽ để làm như vậy là gì?
Pet
, bộ điều khiển, kho lưu trữ và dịch vụ. Trong tình huống nào tôi sẽ cần tất cả các bộ điều khiển, nhưng không phải là các chế độ xem, repos hoặc dịch vụ?