Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

api-pagination

大規模データセットに対してオフセット/リミット方式、カーソルベース、キーセットページネーションなど効率的なページング戦略を実装します。コレクションを返す場合、大量の結果セットを扱う場合、またはクエリパフォーマンスを最適化する際に使用してください。

description の原文を見る

> Implement efficient pagination strategies for large datasets using offset/limit, cursor-based, and keyset pagination. Use when returning collections, managing large result sets, or optimizing query performance.

SKILL.md 本文

API ページネーション

目次

概要

効率的なクエリ、ナビゲーション、パフォーマンス最適化を備えた大規模データセット処理のためのスケーラブルなページネーション戦略を実装します。

使用する場合

  • 大規模なリソースコレクションの返却
  • 検索結果のページネーション実装
  • 無限スクロールインターフェースの構築
  • 大規模データセットクエリの最適化
  • クライアントアプリケーションのメモリ管理
  • API レスポンス時間の改善

クイックスタート

最小限の動作例:

// Node.js オフセット/リミット実装
app.get('/api/users', async (req, res) => {
  const page = parseInt(req.query.page) || 1;
  const limit = Math.min(parseInt(req.query.limit) || 20, 100); // Max 100
  const offset = (page - 1) * limit;

  try {
    const [users, total] = await Promise.all([
      User.find()
        .skip(offset)
        .limit(limit)
        .select('id email firstName lastName createdAt'),
      User.countDocuments()
    ]);

    const totalPages = Math.ceil(total / limit);

    res.json({
      data: users,
      pagination: {
        page,
        limit,
        total,
        totalPages,
        hasNext: page < totalPages,
// ... (詳細な実装についてはリファレンスガイドを参照)

リファレンスガイド

references/ ディレクトリ内の詳細な実装:

ガイド内容
オフセット/リミットページネーションオフセット/リミットページネーション
カーソルベースページネーションカーソルベースページネーション
キーセットページネーションキーセットページネーション
検索ページネーション検索ページネーション
ページネーションレスポンス形式ページネーションレスポンス形式
Python ページネーション (SQLAlchemy)Python ページネーション (SQLAlchemy)

ベストプラクティス

✅ すべきこと

  • 大規模データセットにはカーソルページネーションを使用する
  • 合理的な最大リミットを設定する (例: 100)
  • 可能な場合は合計数を含める
  • ナビゲーションリンクを提供する
  • ページネーション戦略をドキュメント化する
  • ソート用にインデックスされたフィールドを使用する
  • 適切な場合はページネーション結果をキャッシュする
  • エッジケース (空の結果) を処理する
  • 一貫したページネーション形式を実装する
  • 非常に大規模なデータセットにはキーセットを使用する

❌ してはいけないこと

  • 数十億行のデータでオフセットを使用する
  • 無制限のページサイズを許可する
  • リクエストごとに行をカウントする
  • ソートなしでページネーションする
  • ページネーション中にソート順序を変更する
  • カーソルなしで深いページネーションを使用する
  • 大規模データセットのページネーションをスキップする
  • データベースページネーションを直接公開する
  • ページネーション戦略を混在させる
  • パフォーマンスの影響を無視する

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
aj-geddes
リポジトリ
aj-geddes/useful-ai-prompts
ライセンス
MIT
最終更新
不明

Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: aj-geddes · aj-geddes/useful-ai-prompts · ライセンス: MIT