kotlin-development
Kotlinの開発ガイドラインに従い、クリーンなコード設計、命名規則、関数設計、データ処理に関するベストプラクティスを提供します。Kotlinプロジェクトのコード品質向上や実装方針の確認が必要な際に活用できます。
description の原文を見る
Kotlin development guidelines with best practices for clean code, naming conventions, function design, and data handling
SKILL.md 本文
Kotlin 開発のベストプラクティス
一般原則
- すべてのコードとドキュメントは英語で記述する
- すべての変数と関数の型を常に宣言する
any型は避け、必要な型を作成する- 関数本体内に空行を入れない
命名規則
ケース標準
- PascalCase: クラス、インターフェース、列挙型
- camelCase: 変数、関数、メソッド、パラメータ
- UPPERCASE: 環境変数、定数
- underscores_case: ファイルとディレクトリ
命名ガイドライン
- 各関数は動詞で始める (get, set, create, update, delete など)
- 略語より完全な単語を使用する
- 許可される略語: API、URL、ループ用の i/j、err、ctx、req/res/next
- マジックナンバーは避け、定数として定義する
- ブール変数は
isLoading、hasError、canDeleteのようなプレフィックスを使用する
関数設計
サイズと責務
- 関数は 20 命令以下に保つ
- 各関数は単一の責務を持つ
- 複雑さが増したときはロジックをユーティリティ関数に抽出する
関数の命名
- 動作を説明する動詞ベースの命名を使用する
- ブール値を返す関数には
is、has、canのプレフィックスを付ける - void 関数には
execute、save、sendなどの動詞をプレフィックスとして付ける
ネストの削減
- エッジケースを最初に処理するために早期リターンを使用する
- ネストされたロジックを別の関数に抽出する
- ループを最小化するために高階関数 (map、filter、reduce) を使用する
- シンプルな操作にはアロー関数を使用し、それ以外は名前付き関数を使用する
パラメータ
- null チェックの代わりにデフォルトパラメータを使用する
- 関数が複数のパラメータを持つ場合、それらをオブジェクトに統合する (RO-RO パターン)
- パラメータリストは短く保つ (最大 3~4 パラメータ)
データ処理
データクラス
- データ構造にはデータクラスを使用する
- ドメイン概念を表すプリミティブ型をコンポジット型にカプセル化する
- データクラス内でデータを検証する
イミュータビリティ
- データではイミュータビリティを優先する
- 変更されない変数には
valを使用する - 可能な限りイミュータブルなコレクションを使用する
- 既存のインスタンスを変更するのではなく、新しいインスタンスを作成する
クラスとオブジェクト
サイズガイドライン
- クラスは 200 命令以下に保つ
- 公開メソッドは 10 個未満に制限する
- プロパティは 10 個未満に制限する
設計原則
- SOLID 原則に従う
- 継承より合成を優先する
- 抽象化にはインターフェースを使用する
- クラスは単一の責務に焦点を当てる
例外処理
例外を使用する場合
- 真に予期しないエラーのために例外を予約する
- 制御フローに例外を使用しない
- 例外をキャッチするのは以下の場合のみ
- 予想されたイシューを修正する場合
- 再スローする前にコンテキストを追加する場合
ベストプラクティス
- ドメイン固有のエラー用にカスタム例外型を作成する
- 意味のあるエラーメッセージを含める
- 適切なレベルで例外をログに記録する
テスト
ユニットテスト
- Arrange-Act-Assert の慣例に従う
- すべての公開関数のユニットテストを記述する
- 依存関係にはテストダブル (モック、スタブ、フェイク) を使用する
- テストを説明的に命名して、動作を文書化する
受け入れテスト
- Given-When-Then の慣例に従う
- ユーザー向けの動作とシナリオをテストする
- テストは独立しており、再現可能に保つ
コード組織
- 関連する機能をグループ化する
- ファイルはフォーカスされ、凝集度の高いものに保つ
- パッケージ/モジュールを使用してコードを機能またはレイヤーごとに整理する
- プロジェクト全体で一貫したファイル構造を維持する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。