关于 quarkus
面向 Java 与 Quarkus 开发的编码 Agent 技能,涵盖应用结构、开发、测试、安全和部署实践,也涉及响应式开发与原生镜像构建。
主要功能
- 01Quarkus 编码规范
- 02CDI 与配置指南
- 03使用 JUnit 5 测试
- 04响应式与原生镜像实践
- 05安全与可观测性指南
适用场景
- 01组织 Quarkus 应用结构
- 02编写 Quarkus 集成测试
- 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