ページネーションはシンプルに見えます。
ページ → 制限 → スライス → 終了。
それが私の考えでした。
そこで、VibeCode Arenaで小さなチャレンジを作りました。
すると、状況が面白くなってきました。
問題
ロジックは…静的データに対しては完璧に動きます。
しかし、現実のシステムは静的ではありません。
データは変わり続けます。
ユーザーはアイテムを追加したり削除したりし続けます。
何がうまくいかないのか?
現実のシナリオでは:
- 新しいデータが挿入される
- 古いデータが削除される
- ユーザーがページを更新する
そして突然:
重複したデータが表示される
もしくは、いくつかのレコードを見逃す
これは非常に一般的な、本番環境のバグです。
私が観察したこと
AIモデルにこれを試させたとき:
- ほとんどが基本的なスライスベースのロジックだった
- 動的データを考慮しないものもあった
- カーソルベースのページネーションを提案したのはごくわずかだった
コードは動きます。
しかし、システムは信頼できません。
自分で試してみて
私は、このチャレンジを作って現実的なAPIの思考をテストしました。
こちらで試せます:
https://vibecodearena.ai/duel/b772342a-30ee-4d38-838c-c2c888dfffa7
あなたはできますか:
- 重複レコードを防ぐ?
- 動的データを扱う?
- スケーラブルなページネーションシステムを設計する?
最後に
ページネーションは、データをスライスすることではありません。
ユーザーが適切なタイミングで正しいデータを見られるようにすることです。
このようなAPIレベルのロジック設計をAIに任せて信頼できますか?
議論しましょう




