kotlin-best-practices について
記載された規約を採用するコードベース向けの Kotlin リファレンススキルです。null 安全性、エラー処理、ORM、トランザクション、DTO 変換のパターンをまとめています。
主な機能
- 01非 null アサーションと Manager の例外送出を回避
- 02ハードコード値の代わりに enum を使用
- 03Exposed ORM と論理削除の規約
- 04読み取りはレプリカ、書き込みはプライマリ
- 05レスポンス DTO の変換パターンを規定
活用シーン
- 01プロジェクト規約に沿った Kotlin 変更の確認
- 02Manager と Controller のエラー処理実装
- 03Exposed ORM のテーブルとクエリ作成
- 04複数テーブル更新のトランザクション設計
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ c0x12c/ ai-toolkit --skill kotlin-best-practicesインストール後、Claude Code で/kotlin-best-practicesを入力して読み込まれたか確認します。
同梱ファイルcode-patterns.md
詳細
Kotlin のベストプラクティス — クイックリファレンス
null 安全性
!!は禁止です。スマートキャストには?.、?:、または null チェックを使用してください。
null 安全性の例については、code-patterns.md を参照してください。
Either によるエラー処理
マネージャーはEither<ClientException, T>を返し、例外をスローしません。コントローラーでは.throwOrValue()で値を取り出します。
マネージャーとコントローラーの例については、code-patterns.md を参照してください。
Enum の使用
Enum がある場合は、文字列をハードコードしないでください。常にEnumName.VALUE.valueを使用してください。
Enum の定義と使用パターンについては、code-patterns.md を参照してください。
Exposed ORM のパターン
UUIDTableを継承し、varchar()ではなくtext()を使用してください。常にdeletedAt.isNull()でフィルターしてください。論理削除はタイムスタンプを更新して行い、物理削除はしないでください。
テーブル、クエリ、論理削除の例については、code-patterns.md を参照してください。
トランザクションのルール
読み取りにはdb.replica、書き込みにはdb.primaryを使用してください。複数テーブルへの書き込みは1つのトランザクションブロック内で行い、すべて成功するか、すべてロールバックされるようにしてください。
トランザクションの例については、code-patterns.md を参照してください。
変換パターン
Response DTO 内にcompanion object { fun from(entity) }を記述してください。独立したマッパーファイルは作成しないでください。
パターン全体については、code-patterns.md を参照してください。
避けること
!!— 常に?.、?:、または null チェックを使用してください@Suppress— 根本原因を修正してください- 例外のスロー — 代わりに
Either.left()を返してください - SQL の
VARCHAR—TEXTを使用してください - Enum 値の文字列のハードコード
Table基底クラス —UUIDTableを使用してください- フィールドインジェクション — コンストラクターインジェクションを使用してください