Travailler avec de grandes bases de code introduit un nouvel ensemble de défis par rapport au travail sur des projets plus petits. En nous appuyant à la fois sur notre expérience de mise à l’échelle de la propre base de code de Cursor et sur les insights de clients gérant des bases de code massives, nous avons découvert des modèles utiles pour gérer la complexité accrue. Dans ce guide, nous passerons en revue certaines de ces techniques que nous avons trouvées utiles pour les grandes bases de code.

Utilisez Chat pour vous familiariser rapidement avec du code inconnu

Naviguer dans une grande base de code, surtout si elle vous est nouvelle, peut être difficile. Vous devez souvent utiliser grep, rechercher et cliquer partout pour trouver les parties spécifiques de la base de code que vous cherchez. Avec Chat, vous pouvez commencer à poser des questions pour trouver ce que vous cherchez et obtenir une explication détaillée de son fonctionnement. Ici, nous obtenons de l’aide pour trouver les détails d’implémentation de l’indexation de la base de code dans Cursor, et nous demandons même quelques exemples pour faciliter la compréhension.
Pour donner à Cursor une compréhension approfondie de la structure de votre base de code, assurez-vous d’activer Include Project Structure dans Settings pour améliorer les performances.

Écrire des règles pour les connaissances spécifiques au domaine

Si vous intégriez un nouveau collaborateur dans votre base de code, quel contexte lui donneriez-vous pour vous assurer qu’il puisse commencer à apporter des contributions significatives ? Votre réponse à cette question est probablement une information précieuse que Cursor devrait également comprendre. Pour chaque organisation ou projet, il existe des connaissances latentes qui pourraient ne pas être entièrement capturées dans votre documentation. Utiliser les règles efficacement est le meilleur moyen de s’assurer que Cursor obtient une vue d’ensemble complète. Par exemple, si vous rédigez des instructions sur la façon d’implémenter une nouvelle fonctionnalité ou un service, considérez l’écriture d’une règle courte pour la documenter pour la postérité.
Boilerplate
---
description: Add a new VSCode frontend service
---

1. **Interface Definition:**
   - Define a new service interface using `createDecorator` and ensure `_serviceBrand` is included to avoid errors.

2. **Service Implementation:**
   - Implement the service in a new TypeScript file, extending `Disposable`, and register it as a singleton with `registerSingleton`.

3. **Service Contribution:**
   - Create a contribution file to import and load the service, and register it in the main entrypoint.

4. **Context Integration:**
   - Update the context to include the new service, allowing access throughout the application.
S’il existe des modèles de formatage courants que vous voulez vous assurer que Cursor respecte, considérez l’attachement automatique de règles basées sur des motifs glob.
Formatting
---
globs: *.ts
---
- Use bun as package manager. See [package.json](mdc:backend/reddit-eval-tool/package.json) for scripts
- Use kebab-case for file names
- Use camelCase for function and variable names
- Use UPPERCASE_SNAKE_CASE for hardcoded constants
- Prefer `function foo()` over `const foo = () =>`
- Use `Array<T>` instead of `T[]`
- Use named exports over default exports, e.g (`export const variable ...`, `export function `)

Restez proche du processus de création de plan

Pour des changements plus importants, consacrer un temps de réflexion supérieur à la moyenne pour créer un plan précis et bien délimité peut considérablement améliorer les résultats de Cursor. Si vous constatez que vous n’obtenez pas le résultat souhaité après plusieurs variations différentes du même prompt, envisagez de prendre du recul et de créer un plan plus détaillé depuis le début, comme si vous créiez un PRD pour un collègue. Souvent, la partie difficile consiste à déterminer quel changement doit être effectué, une tâche bien adaptée aux humains. Avec les bonnes instructions, nous pouvons déléguer certaines parties de l’implémentation à Cursor. Une façon d’utiliser l’IA pour améliorer le processus de création de plan est d’utiliser le mode Ask. Pour créer un plan, activez le mode Ask dans Cursor et déversez tout le contexte que vous avez de vos systèmes de gestion de projet, de vos documents internes ou de vos réflexions éparses. Réfléchissez aux fichiers et dépendances que vous avez dans la base de code que vous savez déjà vouloir inclure. Cela peut être un fichier qui inclut des morceaux de code avec lesquels vous voulez vous intégrer, ou peut-être un dossier entier. Voici un exemple de prompt :
Planning prompt
- créer un plan pour comment nous devrions créer une nouvelle fonctionnalité (exactement comme @existingfeature.ts)
- me poser des questions (max 3) si quelque chose n'est pas clair
- s'assurer de rechercher dans la base de code

@Past Chats (mes prompts d'exploration précédents)

voici plus de contexte de [outil de gestion de projet] :
[description du ticket collée]
Nous demandons au modèle de créer un plan et de rassembler le contexte en posant des questions à l’humain, en référençant tous les prompts d’exploration antérieurs ainsi que les descriptions de tickets. L’utilisation d’un modèle de réflexion comme claude-3.7-sonnet, gemini-2.5-pro, ou o3 est recommandée car ils peuvent comprendre l’intention du changement et mieux synthétiser un plan. À partir de cela, vous pouvez formuler itérativement le plan avec l’aide de Cursor avant de commencer l’implémentation.

Choisir le bon outil pour le travail

L’une des compétences les plus importantes pour utiliser Cursor efficacement est de choisir le bon outil pour le travail. Réfléchissez à ce que vous essayez d’accomplir et choisissez l’approche qui vous maintiendra dans le flux.
OutilCas d’usageForceLimitation
TabChangements rapides, manuelsContrôle total, rapideFichier unique
Inline EditChangements ciblés dans un fichierÉditions focaliséesFichier unique
ChatChangements plus importants, multi-fichiersCollecte automatique du contexte, éditions approfondiesPlus lent, lourd en contexte
Chaque outil a son point fort :
  • Tab est votre outil de référence pour les éditions rapides où vous voulez garder le contrôle
  • Inline Edit excelle quand vous devez faire des changements focalisés sur une section spécifique de code
  • Chat est parfait pour ces changements plus importants où vous avez besoin que Cursor comprenne le contexte plus large
Quand vous utilisez le mode Chat (qui peut sembler un peu plus lent mais est incroyablement puissant), aidez-le à vous aider en fournissant un bon contexte. Utilisez @files pour pointer vers du code similaire que vous voulez émuler, ou @folder pour lui donner une meilleure compréhension de la structure de votre projet. Et n’ayez pas peur de diviser les changements plus importants en petits morceaux - commencer de nouveaux chats aide à garder les choses focalisées et efficaces.

Points clés

  • Limitez la portée des modifications et n’essayez pas de faire trop de choses à la fois
  • Incluez le contexte pertinent quand vous le pouvez
  • Utilisez Chat, Inline Edit et Tab pour ce qu’ils font de mieux
  • Créez de nouveaux chats fréquemment
  • Planifiez avec le mode Ask, implémentez avec le mode Agent