mcpField
D
dart-logic-patterns

dart-logic-patterns

github.com/dhruvanbhalara開発30247 回インストール8 週間前に更新
リポジトリ

dart-logic-patterns について

アルゴリズムの効率と再利用可能なビジネスロジックのパターンを扱うDart向けスキルです。データ構造、検索・ソート、テストしやすく応答性の高いロジックの指針を示します。

主な機能

  1. 01計算量とデータ構造の指針
  2. 02デバウンス、スロットリング、メモ化
  3. 03Dart 3のパターンマッチング
  4. 04検索とソートの方法
  5. 05純粋関数と検証ロジックの整理

活用シーン

  1. 01頻繁な検索に適した構造の選択
  2. 02対話機能での重複計算の削減
  3. 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 クラスの外にある、純粋でテスト可能な関数に保ちましょう。
  • フェイルファスト: ガード節を使用して、エッジケースや無効な状態を早期に処理しましょう。
  • バリデーションロジック: 複雑なバリデーションは別のドメイン層に保ち、異なる画面間で再利用できるようにしましょう。

コメント