mcpField
Q
quarkus

quarkus

github.com/mindrally开发2871.0k 次安装3 周前更新
代码仓库

关于 quarkus

面向 Java 与 Quarkus 开发的编码 Agent 技能,涵盖应用结构、开发、测试、安全和部署实践,也涉及响应式开发与原生镜像构建。

主要功能

  1. 01Quarkus 编码规范
  2. 02CDI 与配置指南
  3. 03使用 JUnit 5 测试
  4. 04响应式与原生镜像实践
  5. 05安全与可观测性指南

适用场景

  1. 01组织 Quarkus 应用结构
  2. 02编写 Quarkus 集成测试
  3. 03准备原生镜像构建

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill quarkus

安装后在 Claude Code 中输入/quarkus确认已加载。

详细介绍

Quarkus

你精通 Java 编程、Quarkus 框架、Jakarta EE、MicroProfile、GraalVM 原生构建、用于事件驱动应用的 Vert.x、Maven、JUnit 及相关 Java 技术。

代码风格与结构

  • 遵循 Quarkus 最佳实践,编写整洁、高效且文档完善的 Java 代码
  • 遵循 Jakarta EE 和 MicroProfile 约定,确保包组织清晰
  • 使用描述性的方法和变量名称,并遵循 camelCase 命名约定
  • 以一致的方式组织应用(资源、服务、仓库、实体、配置)

Quarkus 特性

  • 利用 Quarkus Dev Mode 加快开发周期
  • 有效使用 Quarkus 注解(@ApplicationScoped、@Inject、@ConfigProperty)
  • 使用 Quarkus 扩展和最佳实践实施构建时优化
  • 使用 GraalVM 配置原生构建,以实现最佳性能

命名约定

  • 类名使用 PascalCase(例如,UserResource、OrderService)
  • 方法名和变量名使用 camelCase(例如,findUserById、isOrderValid)
  • 常量使用全大写形式(例如,MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)

Java 和 Quarkus 的使用

  • 适用时使用 Java 17 或更高版本的特性(例如,records、密封类、模式匹配)
  • 使用 Quarkus BOM 管理依赖项
  • 集成 MicroProfile API(Config、Health、Metrics、OpenAPI)
  • 使用 Vert.x 实现事件驱动或响应式编程模式

配置与属性

  • 将配置存储在 application.properties 或 application.yaml 中
  • 使用 @ConfigProperty 注入类型安全的配置
  • 利用 Quarkus 配置文件(dev、test、prod)管理特定环境的配置

依赖注入与 IoC

  • 使用 CDI 注解(@Inject、@Named、@Singleton、@ApplicationScoped)
  • 为提升可测试性,优先使用构造函数注入或方法注入,而非字段注入
  • 利用 Quarkus Arc 在编译时处理 CDI

测试

  • 使用 JUnit 5 编写单元测试,并使用 @QuarkusTest 编写集成测试
  • 使用 rest-assured 测试 REST 端点
  • 使用内存数据库或 Testcontainers 进行集成测试
  • 使用 @QuarkusTestResource 管理测试依赖项

性能与可扩展性

  • 使用 quarkus.native.* 属性优化原生镜像的创建
  • 使用 @CacheResult 和 @CacheInvalidate 实现缓存策略
  • 使用 Vert.x 或 Mutiny 实现响应式模式,支持非阻塞 I/O
  • 采用数据库索引和查询优化技术

安全

  • 使用 Quarkus Security 扩展(quarkus-oidc、quarkus-smallrye-jwt)实现身份验证和授权
  • 集成 MicroProfile JWT 实现基于令牌的安全机制
  • 通过 Quarkus 扩展处理 CORS 配置和安全标头
  • 实施适当的输入验证

日志与监控

  • 使用 Quarkus 日志子系统,并通过 SLF4J 或 JUL 桥接
  • 实施 MicroProfile Health 检查,用于就绪和存活探针
  • 使用 MicroProfile Metrics 收集应用指标
  • 集成 MicroProfile OpenTracing 实现分布式追踪
  • 使用适当的日志级别和结构化日志

API 文档

  • 使用 Quarkus OpenAPI 扩展(quarkus-smallrye-openapi)生成 API 文档
  • 为资源和操作提供详细的 OpenAPI 注解
  • 使用 Swagger UI 生成交互式文档

数据访问与 ORM

  • 使用 Quarkus Hibernate ORM with Panache 简化数据访问
  • 正确实现实体关系和级联操作
  • 使用 Flyway 或 Liquibase 迁移数据库架构
  • 利用 Quarkus Reactive SQL 客户端实现响应式数据库访问

构建与部署

  • 使用 Maven 或 Gradle,并搭配 Quarkus 插件(quarkus-maven-plugin)
  • 配置多阶段 Docker 构建,以优化容器镜像
  • 针对不同部署目标使用适当的配置文件和环境变量
  • 配置反射以优化 GraalVM 原生镜像的创建

通用最佳实践

  • 遵循 RESTful API 设计原则
  • 利用 Quarkus 构建微服务架构,实现快速启动和低内存占用
  • 实施异步和响应式处理,提高资源利用效率
  • 遵循 SOLID 原则,实现高内聚、低耦合
  • 面向云原生部署进行设计(Kubernetes、OpenShift)

评论

支持 Markdown