SuperAPI AI 工具集

kotlin-specialist

编程与开发

查看项目

更新于 10-15 09:51

技能介绍

用途

Kotlin Specialist 是一个面向 Kotlin 开发的技能,定位为资深 Kotlin 开发者,专注于协程、Kotlin Multiplatform(KMP)以及现代 Kotlin 1.9+ 的惯用模式。其触发场景为:构建、编写或审阅使用 coroutines / Flow 等的 Kotlin 代码。

主要能力

该技能围绕以下核心主题提供指导,并可按上下文加载对应参考文档:

  • 协程与 Flow(references/coroutines-flow.md):适用于异步操作、结构化并发、Flow API
  • 多平台 KMP(references/multiplatform-kmp.md):适用于共享代码、expect/actual、平台配置
  • Android 与 Compose(references/android-compose.md):适用于 Jetpack Compose、ViewModel、Material3、导航
  • Ktor 服务端(references/ktor-server.md):适用于路由、插件、认证、序列化
  • DSL 与惯用法(references/dsl-idioms.md):适用于类型安全构建器、作用域函数、委托

关键模式包括:

  • 使用密封类(sealed class)对状态建模,例如以 UiState 表示 Loading / Success / Error,并通过 when 穷尽分支,由编译器强制覆盖所有情况。
  • 协程与 Flow:使用结构化并发,避免 GlobalScope;通过 flow 构建器与 flowOn(Dispatchers.IO) 处理异步流;使用 MutableStateFlow 与 asStateFlow 暴露 StateFlow;避免在生产代码中使用 runBlocking 阻塞调用线程。
  • 空安全:优先使用安全调用 ?. 与 Elvis 运算符 ?:;用 let 限定可空操作作用域;仅在确属契约违反且有文档说明时使用 !!,或用 requireNotNull 并附消息。
  • 作用域函数:apply 用于配置对象并返回接收者;let 用于转换可空值或引入局部作用域;also 用于不改变调用链的副作用。

使用方式

技能定义了一条核心工作流:

  1. 分析架构——识别平台目标、协程模式、共享代码策略。
  2. 设计模型——创建密封类、数据类、类型层级。
  3. 实现——使用协程、Flow、扩展函数编写惯用 Kotlin。
  4. 检查点——在继续前验证协程取消已处理(拆除时取消父作用域)、空安全已落实。
  5. 验证——运行 detekt 与 ktlint;校验协程取消处理与空安全。若 detekt/ktlint 失败,需修复所有报告问题并重新运行两个工具后再进入步骤 5。
  6. 优化——应用内联类(inline classes)、序列操作、编译策略。
  7. 测试——编写支持协程测试的多平台测试(runTest、Turbine)。

约束要求(MUST DO):使用空安全;优先用密封类建模状态;异步操作用 suspend 函数;利用类型推断但必要时显式声明;用 Flow 处理响应式流;恰当使用作用域函数;用 KDoc 记录公开 API;库使用显式 API 模式;提交前运行 detekt 与 ktlint;验证协程取消已处理。

禁止事项(MUST NOT DO):在生产代码中用 runBlocking 阻塞协程;无文档说明地使用 !!;在公共模块中混入平台相关代码;跳过空安全检查;使用 GlobalScope.launch(应使用结构化并发);忽略协程取消;因协程作用域造成内存泄漏。

输出模板要求:实现 Kotlin 特性时,提供数据模型(密封类、数据类)、实现文件(扩展函数、suspend 函数)、带协程测试支持的测试文件,以及所用 Kotlin 特有模式的简要说明。

适用场景

适用于构建、编写或审阅 Kotlin 代码,尤其是使用 coroutines / Flow 的场景;也覆盖 Kotlin Multiplatform 共享代码、Android 与 Jetpack Compose、Ktor 服务端以及 Kotlin DSL 与惯用法相关工作。

限制

资料未提供该技能的收费、价格、平台支持范围、实际效果或具体安装步骤等信息,暂未提供。知识参考涉及 Kotlin 1.9+、Coroutines、Flow API、StateFlow/SharedFlow、Kotlin Multiplatform、Jetpack Compose、Ktor、Arrow.kt、kotlinx.serialization、Detekt、ktlint、Gradle Kotlin DSL、JUnit 5、MockK、Turbine。