Add Quarkus development standards and instructions (#48)
* Add Quarkus development standards and instructions * Fix: Add applyTo field in Quarkus instructions metadata
This commit is contained in:
parent
c3869d8c7b
commit
643d4e77db
@ -42,6 +42,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
|
|||||||
| [Performance Optimization Best Practices](instructions/performance-optimization.instructions.md) | The most comprehensive, practical, and engineer-authored performance optimization instructions for all languages, frameworks, and stacks. Covers frontend, backend, and database best practices with actionable guidance, scenario-based checklists, troubleshooting, and pro tips. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fperformance-optimization.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fperformance-optimization.instructions.md) |
|
| [Performance Optimization Best Practices](instructions/performance-optimization.instructions.md) | The most comprehensive, practical, and engineer-authored performance optimization instructions for all languages, frameworks, and stacks. Covers frontend, backend, and database best practices with actionable guidance, scenario-based checklists, troubleshooting, and pro tips. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fperformance-optimization.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fperformance-optimization.instructions.md) |
|
||||||
| [PowerShell Cmdlet Development Guidelines](instructions/powershell.instructions.md) | PowerShell cmdlet and scripting best practices based on Microsoft guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md) |
|
| [PowerShell Cmdlet Development Guidelines](instructions/powershell.instructions.md) | PowerShell cmdlet and scripting best practices based on Microsoft guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md) |
|
||||||
| [Python Coding Conventions](instructions/python.instructions.md) | Python coding conventions and guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) |
|
| [Python Coding Conventions](instructions/python.instructions.md) | Python coding conventions and guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) |
|
||||||
|
| [Quarkus](instructions/quarkus.instructions.md) | Quarkus development standards and instructions | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fquarkus.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fquarkus.instructions.md) |
|
||||||
| [Secure Coding and OWASP Guidelines](instructions/security-and-owasp.instructions.md) | Comprehensive secure coding instructions for all languages and frameworks, based on OWASP Top 10 and industry best practices. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) |
|
| [Secure Coding and OWASP Guidelines](instructions/security-and-owasp.instructions.md) | Comprehensive secure coding instructions for all languages and frameworks, based on OWASP Top 10 and industry best practices. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) |
|
||||||
| [TanStack Start with Shadcn/ui Development Guide](instructions/tanstack-start-shadcn-tailwind.md) | Guidelines for building TanStack Start applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) |
|
| [TanStack Start with Shadcn/ui Development Guide](instructions/tanstack-start-shadcn-tailwind.md) | Guidelines for building TanStack Start applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) |
|
||||||
|
|
||||||
|
|||||||
98
instructions/quarkus.instructions.md
Normal file
98
instructions/quarkus.instructions.md
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
---
|
||||||
|
applyTo: '*'
|
||||||
|
description: 'Quarkus development standards and instructions'
|
||||||
|
---
|
||||||
|
|
||||||
|
- Instructions for high-quality Quarkus applications with Java 17 or later.
|
||||||
|
|
||||||
|
## Project Context
|
||||||
|
|
||||||
|
- Latest Quarkus version: 3.x
|
||||||
|
- Java version: 17 or later
|
||||||
|
- Use Maven or Gradle for build management.
|
||||||
|
- Focus on clean architecture, maintainability, and performance.
|
||||||
|
|
||||||
|
## Development Standards
|
||||||
|
|
||||||
|
- Write clear and concise comments for each class, method, and complex logic.
|
||||||
|
- Use Javadoc for public APIs and methods to ensure clarity for consumers.
|
||||||
|
- Maintain a consistent coding style across the project, adhering to Java conventions.
|
||||||
|
- Adhere to the Quarkus coding standards and best practices for optimal performance and maintainability.
|
||||||
|
- Follow Jarkarta EE and MicroProfile conventions, ensuring clarity in package organization.
|
||||||
|
- Use Java 17 or later features where appropriate, such as records and sealed classes.
|
||||||
|
|
||||||
|
|
||||||
|
## Naming Conventions
|
||||||
|
- Use PascalCase for class names (e.g., `ProductService`, `ProductResource`).
|
||||||
|
- Use camelCase for method and variable names (e.g., `findProductById`, `isProductAvailable`).
|
||||||
|
- Use ALL_CAPS for constants (e.g., `DEFAULT_PAGE_SIZE`).
|
||||||
|
|
||||||
|
## Quarkus
|
||||||
|
- Leverage Quarkus Dev Mode for faster development cycles.
|
||||||
|
- Implement build-time optimizations using Quarkus extensions and best practices.
|
||||||
|
- Configure native builds with GraalVM for optimal performance (e.g., use the quarkus-maven-plugin).
|
||||||
|
- Use quarkus logging capabilities (JBoss, SL4J or JUL) for consistent logging practices.
|
||||||
|
|
||||||
|
### Quarkus-Specific Patterns
|
||||||
|
- Use `@ApplicationScoped` for singleton beans instead of `@Singleton`
|
||||||
|
- Use `@Inject` for dependency injection
|
||||||
|
- Prefer Panache repositories over traditional JPA repositories
|
||||||
|
- Use `@Transactional` on service methods that modify data
|
||||||
|
- Apply `@Path` with descriptive REST endpoint paths
|
||||||
|
- Use `@Consumes(MediaType.APPLICATION_JSON)` and `@Produces(MediaType.APPLICATION_JSON)` for REST resources
|
||||||
|
|
||||||
|
### REST Resources
|
||||||
|
- Always use JAX-RS annotations (`@Path`, `@GET`, `@POST`, etc.)
|
||||||
|
- Return proper HTTP status codes (200, 201, 400, 404, 500)
|
||||||
|
- Use `Response` class for complex responses
|
||||||
|
- Include proper error handling with try-catch blocks
|
||||||
|
- Validate input parameters using Bean Validation annotations
|
||||||
|
- Implement rate limiting for public endpoints
|
||||||
|
|
||||||
|
### Data Access
|
||||||
|
- Prefer Panache entities (extend `PanacheEntity`) over traditional JPA
|
||||||
|
- Use Panache repositories (`PanacheRepository<T>`) for complex queries
|
||||||
|
- Always use `@Transactional` for data modifications
|
||||||
|
- Use named queries for complex database operations
|
||||||
|
- Implement proper pagination for list endpoints
|
||||||
|
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
- Use `application.properties` or `application.yaml` for simple configuration
|
||||||
|
- Use `@ConfigProperty` for type-safe configuration classes
|
||||||
|
- Prefer environment variables for sensitive data
|
||||||
|
- Use profiles for different environments (dev, test, prod)
|
||||||
|
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- Use `@QuarkusTest` for integration tests
|
||||||
|
- Use JUnit 5 for unit tests
|
||||||
|
- Use `@QuarkusIntegrationTest` for native build tests
|
||||||
|
- Mock external dependencies using `@QuarkusTestResource`
|
||||||
|
- Use RestAssured for REST endpoint testing (`@QuarkusTestResource`)
|
||||||
|
- Use `@Transactional` for tests that modify the database
|
||||||
|
- Use test-containers for database integration tests
|
||||||
|
|
||||||
|
### Don't use these patterns:
|
||||||
|
- Don't use field injection in tests (use constructor injection)
|
||||||
|
- Don't hardcode configuration values
|
||||||
|
- Don't ignore exceptions
|
||||||
|
|
||||||
|
|
||||||
|
## Development Workflow
|
||||||
|
|
||||||
|
### When creating new features:
|
||||||
|
1. Create entity with proper validation
|
||||||
|
2. Create repository with custom queries
|
||||||
|
3. Create service with business logic
|
||||||
|
4. Create REST resource with proper endpoints
|
||||||
|
5. Write comprehensive tests
|
||||||
|
6. Add proper error handling
|
||||||
|
7. Update documentation
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
### When implementing security:
|
||||||
|
- Use Quarkus Security extensions (e.g., `quarkus-smallrye-jwt`, `quarkus-oidc`).
|
||||||
|
- Implement role-based access control (RBAC) using MicroProfile JWT or OIDC.
|
||||||
|
- Validate all input parameters
|
||||||
Loading…
x
Reference in New Issue
Block a user