dart-logic-patterns について
アルゴリズムの効率と再利用可能なビジネスロジックのパターンを扱うDart向けスキルです。データ構造、検索・ソート、テストしやすく応答性の高いロジックの指針を示します。
主な機能
- 01計算量とデータ構造の指針
- 02デバウンス、スロットリング、メモ化
- 03Dart 3のパターンマッチング
- 04検索とソートの方法
- 05純粋関数と検証ロジックの整理
活用シーン
- 01頻繁な検索に適した構造の選択
- 02対話機能での重複計算の削減
- 03検証ロジックの画面間での再利用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dhruvanbhalara/ skills --skill dart-logic-patternsインストール後、Claude Code で/dart-logic-patternsを入力して読み込まれたか確認します。
詳細
アルゴリズムとロジック
ビジネスロジックの効率は、バッテリー寿命と応答性に直接影響します。
複雑性の分析
- Big O の意識: 操作のコストを理解しましょう。数百件を超えるデータセットに対して、メインスレッドで O(n²) 以上の処理を避けてください。
- データ構造の選択:
Map: キーによる高速な検索。Set: 一意な項目の高速な管理。List: 高速なインデックスアクセスとシーケンシャルアクセス。LinkedHashSet/Map: 挿入順序を保持しつつ、高速な検索を提供します。
ロジックパターン
- デバウンス: ユーザーが操作をやめるまで実行を遅延させます(例: 入力に応じた検索)。
- スロットリング: 実行を一定間隔につき最大1回に制限します(例: スクロールイベント)。
- メモ化: 引数に基づいて、計算コストの高い純粋関数の結果をキャッシュします。
package:memoizeまたはカスタム実装を使用してください。 - パターンマッチング(Dart 3+): 深くネストした if-else チェーンの代わりに、switch 式と網羅的なパターンマッチングを制御フローに使用してください。これはクリーンな Dart ロジックの中核です。
検索とソート
- 二分探索: ソート済みリストに使用し、O(n) の検索を O(log n) に変換します。
- 効率的なソート: Dart 組み込みの
list.sort()を使用してください。これは高度に最適化されたアルゴリズムを使用しています。カスタムオブジェクトには、対象を絞ったComparable実装を提供してください。
ビジネスロジックの整理
- 純粋関数: ビジネスロジックは UI クラスの外にある、純粋でテスト可能な関数に保ちましょう。
- フェイルファスト: ガード節を使用して、エッジケースや無効な状態を早期に処理しましょう。
- バリデーションロジック: 複雑なバリデーションは別のドメイン層に保ち、異なる画面間で再利用できるようにしましょう。
コメント
Markdown 対応