design-patterns

Organize GymPlannerService features using vertical-slice architecture with thin controllers and repository-first data access.

Updated Sep 2, 2024
One-click install
npx skills add https://github.com/IanArb/GymPlannerService --skill design-patterns-ianarb
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: design-patterns
Source: https://github.com/IanArb/GymPlannerService/tree/main/.claude/skills/design-patterns
Command: npx skills add https://github.com/IanArb/GymPlannerService --skill design-patterns-ianarb

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Establishes a consistent blueprint for adding new features to GymPlannerService by enforcing vertical-slice architecture, clear responsibilities, and standard patterns.

Core Features & Use Cases

  • Enforces vertical-slice module structure for feature teams
  • Defines consistent Controller/Service/Repository/Model/Exception patterns
  • Encourages cross-feature dependency handling through repositories

Quick Start

Create a new feature following the vertical-slice pattern shown in this guide.

Frequently Asked Questions about design-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is vertical-slice architecture in Spring Boot?

Vertical-slice architecture in Spring Boot organizes feature development by splitting code into cohesive modules with thin controllers, dedicated services, and repository-first data access. It enforces separation of concerns and standardized domain exceptions for each feature.

How do I structure a new Kotlin feature using vertical-slice architecture?

Structure your new Kotlin feature by creating a strict vertical-slice module containing thin controllers, cohesive services, repository-first data access layers, dedicated models, and standardized domain exceptions. Cross-feature dependencies should be handled through repositories.

Does vertical-slice architecture work for large Spring Boot applications with multiple feature teams?

Vertical-slice architecture works for large Spring Boot applications by enforcing a consistent folder structure and standardized patterns across feature teams. It ensures clear responsibilities and separation of concerns across all new modules.

What is the best way to handle cross-feature dependencies in a vertical-slice architecture?

The best way to handle cross-feature dependencies in a vertical-slice architecture is through repository-first data access. This approach encourages features to interact via repositories rather than direct service calls, maintaining strict separation of concerns.

When should I not use vertical-slice architecture for my Spring Boot project?

Vertical-slice architecture may not suit your Spring Boot project if your features lack clear domain boundaries or if you cannot enforce a strict folder structure. It requires standardized Controller, Service, Repository, Model, and Exception patterns for every new feature.