跳转至

Kotlin 代码审查

此命令会调用 kotlin-reviewer 代理,执行 Kotlin 特有的全面代码审查。

此命令的工作方式

  1. 识别 Kotlin 变更: 使用 git diff 检测已修改的 .kt 和 .kts 文件
  2. 执行构建和静态分析: 运行 ./gradlew build、detekt、ktlintCheck
  3. 安全扫描: 检查 SQL 注入、命令注入和硬编码密钥
  4. 空安全审查: 分析 !! 的使用、平台类型处理和不安全转换
  5. 协程审查: 检查结构化并发、调度器使用和取消
  6. 生成报告: 按严重程度对问题进行分类

使用时机

使用 /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