Agent skill · software engineering · affaan-m
kotlin-patterns
惯用的Kotlin模式、最佳实践和约定,用于构建健壮、高效且可维护的Kotlin应用程序,包括协程、空安全和DSL构建器。
Why this skill is useful
Provides domain-specific knowledge on Kotlin patterns and best practices that the AI wouldn't reliably generate on its own.
What it needs
About 8k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
Kotlin 开发模式 适用于构建健壮、高效、可维护应用程序的惯用 Kotlin 模式与最佳实践。 使用时机 编写新的 Kotlin 代码 审查 Kotlin 代码 重构现有的 Kotlin 代码 设计 Kotlin 模块或库 配置 Gradle Kotlin DSL 构建 工作原理 本技能在七个关键领域强制执行惯用的 Kotlin 约定:使用类型系统和安全调用运算符实现空安全;通过数据类的 val 和 copy() 实现不可变性;使用密封类和接口实现穷举类型层次结构;使用协程和 Flow 实现结构化并发;使用扩展函数在不使用继承的情况下添加行为;使用 @DslMarker 和 lambda 接收器构建类型安全的 DSL;以及使用 Gradle Kotlin DSL 进行构建配置。 示例 使用 Elvis 运算符实现空安全: 使用密封类处理穷举结果: 使用 async/await 实现结构化并发: 核心原则 1. 空安全 Kotlin 的类型系统区分可空和不可空类型。充分利用它。 2. 默认不可变性 优先使用 val 而非 var,优先使用不可变集合而非可变集合。 3. 表达式体和单表达式函数 使用表达式体编写简洁、可读的函数。 4. 数据类用于值对象 使用数据类表示主要包含数据的类型。 密封类和接口 建模受限的层次结构 用于 API 响应的密封接口 作用域函数 何时使用各个函数 反模式 扩展函数 在不使用继承的情况下添加功能 协程 结构化并发 Flow 用于响应式流 取消与清理 委托 属性委托 接口委托 DSL 构建器 类型安全构建器 配置 DSL 用于惰性求值的序列 Gradle Kotlin DSL build.gradle.kts 配置 错误处理模式 用于领域操作的 Result 类型 require, check, error 集合操作 惯用的集合处理 快速参考:Kotlin 惯用法 惯用法 描述 ------- ------------- val 优于 var 优先使用不可变变量 data class 用于具有 equals/hashCode/copy 的值对象 sealed class/interface 用于受限的类型层次结构 value class 用于零开销的类型安全包装器 表达式 when 穷举模式匹配 安全调用 ?. 空安全的成员访问 Elvis ?: 为可空类型提供默认值 let/apply/also/run/with 用于编写简洁代码的作用域函数 扩展函数 在不使用继承的情况下添加行为 copy() 数据类上的不可变更新 require/check 前置条件断言 协程 async/await 结构化并发执行 Flow 冷响应式流 sequence 惰性求值 委托 by 在不使用继承的情况下重用实现 应避免的反模式 请记住:Kotlin 代码应简洁但可读。利用类型系统确保安全,优先使用不可变性,并使用协程处理并发。如有疑问,让编译器帮助你。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/kotlin-patterns--227e00