java-design-patterns
java-design-patterns copied to clipboard
Vertical slice architecture
Description: The Vertical Slice Architecture (VSA) design pattern focuses on organizing code by features rather than layers, promoting a more modular, maintainable, and scalable architecture. This approach ensures that each vertical slice contains all necessary components, such as data access, business logic, and user interface, which are isolated from other slices.
Main elements of the Vertical Slice Architecture include:
- Feature-based Structure: Each feature is a self-contained module with its own domain logic, data access, and user interface.
- Single Responsibility: Each slice is responsible for one specific functionality or feature, reducing dependencies between different parts of the application.
- Encapsulation: Each slice encapsulates its logic, making the application more modular and easier to test.
- CQRS (Command Query Responsibility Segregation): Often used in conjunction with VSA to separate read and write operations, enhancing performance and scalability.
References:
- Jimmy Bogard on Vertical Slice Architecture
- Gary Woodfine on Implementing Vertical Slice Architecture
Acceptance Criteria:
- Implement a new feature using the Vertical Slice Architecture pattern, ensuring it includes all necessary components (domain logic, data access, user interface) within the slice.
- Ensure the feature follows the single responsibility principle, isolating its functionality from other parts of the application.
- Provide documentation and examples within the codebase to illustrate how the Vertical Slice Architecture is implemented and how it benefits the overall project structure.
I would like to start working on this new pattern! Could you please assign it to me?
This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.
@iluwatar more over like this right? https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a
@thestbar may I know the status of this epic?
@iluwatar more over like this right? https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a
Exactly. If @thestbar is not working on it, I'll assign to you.
@thestbar may I know the status of this epic?
Have done some little stuff but didn't have the time to finish it lately. @iluwatar feel free to assign it to @sugan0tech.
if no one solves this, can you assign it to me?
@damlaYasarr I already made a PR, waiting for his review.
@iluwatar I have made the PR,can you check it out?
@sugan0tech I have a question. I want to code facade design but I cant install mvn package. I mean , I created mvn project but which architecture that I have to choose?
@sugan0tech I have a question. I want to code facade design but I cant install mvn package. I mean , I created mvn project but which architecture that I have to choose?
You can use an architecture that you think fits well with it. Also, have some reference in other patterns and code changes in PR's as well.
This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.