Kotlin 代码审查¶
此命令会调用 kotlin-reviewer 代理,执行 Kotlin 特有的全面代码审查。
此命令的工作方式¶
- 识别 Kotlin 变更: 使用
git diff检测已修改的.kt和.kts文件 - 执行构建和静态分析: 运行
./gradlew build、detekt、ktlintCheck - 安全扫描: 检查 SQL 注入、命令注入和硬编码密钥
- 空安全审查: 分析
!!的使用、平台类型处理和不安全转换 - 协程审查: 检查结构化并发、调度器使用和取消
- 生成报告: 按严重程度对问题进行分类
使用时机¶
使用 /kotlin-review 的情况:
- 编写或修改 Kotlin 代码后
- 提交 Kotlin 变更之前
- 审查包含 Kotlin 代码的拉取请求时
- 熟悉新的 Kotlin 代码库时
- 学习惯用的 Kotlin 模式时
审查类别¶
CRITICAL(必须修复)¶
- SQL/命令注入漏洞
- 无充分理由的强制解包
!! - 平台类型的空安全违规
- 使用 GlobalScope(违反结构化并发)
- 硬编码的凭据
- 不安全的反序列化
HIGH(应当修复)¶
- 在可以使用不可变状态时使用可变状态
- 在协程上下文中执行阻塞调用
- 长循环中缺少取消检查
- 对 sealed 类型的非穷尽
when - 大函数(超过 50 行)
- 深层嵌套(超过 4 层)
MEDIUM(应当考虑)¶
- 非惯用的 Kotlin(Java 风格模式)
- 缺少尾随逗号
- 作用域函数误用或嵌套
- 大型集合链中缺少 sequence
- 冗余的显式类型
执行的自动检查¶
# ビルドチェック
./gradlew build
# 静的解析
./gradlew detekt
# フォーマットチェック
./gradlew ktlintCheck
# テスト
./gradlew test
使用示例¶
User: /kotlin-review
Agent:
# Kotlinコードレビューレポート
## レビュー対象ファイル
- src/main/kotlin/com/example/service/UserService.kt(変更)
- src/main/kotlin/com/example/routes/UserRoutes.kt(変更)
## 静的解析結果
✓ ビルド: 成功
✓ detekt: 問題なし
WARNING: ktlint: フォーマット警告2件
## 検出された問題
[CRITICAL] 強制アンラップNullセーフティ
File: src/main/kotlin/com/example/service/UserService.kt:28
Issue: nullableなリポジトリ結果に!!を使用
```kotlin
val user = repository.findById(id)!! // NPEリスク
```
Fix: セーフコールとエラーハンドリングを使用
```kotlin
val user = repository.findById(id)
?: throw UserNotFoundException("User $id not found")
```
[HIGH] GlobalScopeの使用
File: src/main/kotlin/com/example/routes/UserRoutes.kt:45
Issue: GlobalScopeの使用は構造化された並行性を壊す
```kotlin
GlobalScope.launch {
notificationService.sendWelcome(user)
}
```
Fix: コールのコルーチンスコープを使用
```kotlin
launch {
notificationService.sendWelcome(user)
}
```
## サマリー
- CRITICAL: 1
- HIGH: 1
- MEDIUM: 0
推奨: FAIL: CRITICALの問題が修正されるまでマージをブロック
批准标准¶
| 状态 | 条件 |
|---|---|
| PASS: 批准 | 没有 CRITICAL 或 HIGH 问题 |
| WARNING: 警告 | 仅有 MEDIUM 问题(谨慎合并) |
| FAIL: 阻止 | 检测到 CRITICAL 或 HIGH 问题 |
与其他命令的集成¶
- 首先使用
/kotlin-test确认测试通过 - 如果发生构建错误,使用
/kotlin-build - 在提交前使用
/kotlin-review - 对于非 Kotlin 特有的关注点,使用
/code-review
相关¶
- 代理:
agents/kotlin-reviewer.md - 技能:
skills/kotlin-patterns/、skills/kotlin-testing/
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC