mcpField
K
kotlin-best-practices

kotlin-best-practices

github.com/c0x12c開発109119 回インストール19 週間前に更新
リポジトリ

kotlin-best-practices について

記載された規約を採用するコードベース向けの Kotlin リファレンススキルです。null 安全性、エラー処理、ORM、トランザクション、DTO 変換のパターンをまとめています。

主な機能

  1. 01非 null アサーションと Manager の例外送出を回避
  2. 02ハードコード値の代わりに enum を使用
  3. 03Exposed ORM と論理削除の規約
  4. 04読み取りはレプリカ、書き込みはプライマリ
  5. 05レスポンス DTO の変換パターンを規定

活用シーン

  1. 01プロジェクト規約に沿った Kotlin 変更の確認
  2. 02Manager と Controller のエラー処理実装
  3. 03Exposed ORM のテーブルとクエリ作成
  4. 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を使用してください
  • フィールドインジェクション — コンストラクターインジェクションを使用してください

コメント