Communitygithub.com

backupcompany/skill-cursor

Playbook d'accès aux données de production pour le problème des requêtes N+1. À utiliser lorsque le code interroge une base de données dans une boucle, qu'un ORM charge paresseusement une relation par ligne, ou qu'un point de terminaison de liste est rapide avec 5 lignes et lent avec 50. Les cas traités se trouvent dans references/bad-vs-good.md. Ne pas utiliser pour la conception de contrats HTTP ou pour le style de langage Go/JavaScript.

Qu'est-ce que skill-cursor ?

Cette compétence fournit un playbook structuré pour diagnostiquer et résoudre le problème des requêtes N+1 dans l'accès aux bases de données en production. Elle est conçue pour les développeurs utilisant des ORM (comme ActiveRecord, Hibernate, Entity Framework, etc.) ou écrivant des boucles qui génèrent des requêtes redondantes. La règle de base (03) interdit les N+1, les `SELECT *` sur les chemins chauds, les requêtes sans index, et les grandes listes non paginées. Cette compétence explique comment cette règle échoue lorsqu'un ORM ou une boucle masque les allers-retours en base, et fournit des cas concrets (bons et mauvais) dans le fichier `references/bad-vs-good.md` que l'utilisateur doit consulter avant de charger une relation depuis une collection, de marquer un mapping comme eager, ou de joindre une relation one-to-many dans une liste paginée.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/backupcompany/skill-cursor/tree/HEAD/skills/data-access

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Accès aux données

La règle 03 est le minimum : pas de N+1, pas de SELECT * sur un chemin chaud, requêtes soutenues par des index, grandes listes paginées. Cette compétence explique comment cette règle échoue lorsqu'un ORM ou une boucle masque les allers-retours.

Lisez references/bad-vs-good.md avant de charger une relation depuis une collection, de marquer un mapping comme eager, ou de joindre une relation one-to-many dans une liste paginée.

Fait quand

  • Une liste de N parents n'émet pas N requêtes pour la même relation.
  • Le journal des requêtes ou une trace montre un nombre fixe d'instructions (1 ou 2, ou 1 + N/lot), pas une par ligne.
  • Une page de parents renvoie le nombre de parents demandé, pas une page de lignes jointes.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills associés