Bekerja dengan codebase besar memperkenalkan serangkaian tantangan baru dibandingkan bekerja pada proyek yang lebih kecil. Berdasarkan pengalaman kami dalam mengembangkan codebase Cursor sendiri dan wawasan dari pelanggan yang mengelola codebase yang sangat besar, kami telah menemukan beberapa pola yang berguna untuk menangani kompleksitas yang meningkat. Dalam panduan ini, kami akan membahas beberapa teknik yang kami temukan berguna untuk codebase besar.

Gunakan Chat untuk dengan cepat memahami kode yang tidak familiar

Menavigasi codebase yang besar, terutama jika itu baru bagi Anda, bisa menjadi tantangan. Anda sering melakukan grep, pencarian, dan mengklik di sekitar untuk menemukan bagian spesifik dari codebase yang Anda cari. Dengan Chat, Anda dapat mulai mengajukan pertanyaan untuk menemukan apa yang Anda cari dan mendapatkan penjelasan detail tentang cara kerjanya. Di sini kami mendapatkan bantuan untuk menemukan detail implementasi pengindeksan codebase di Cursor, dan bahkan meminta beberapa contoh untuk membuatnya lebih mudah dipahami.
Untuk memberikan Cursor pemahaman yang lebih mendalam tentang struktur codebase Anda, pastikan untuk mengaktifkan Include Project Structure dari Settings untuk performa yang lebih baik.

Tulis aturan untuk pengetahuan domain-spesifik

Jika Anda sedang memperkenalkan kolaborator baru ke dalam codebase Anda, konteks apa yang akan Anda berikan kepada mereka untuk memastikan mereka dapat mulai memberikan kontribusi yang bermakna? Jawaban Anda untuk pertanyaan ini kemungkinan merupakan informasi berharga bagi Cursor untuk dipahami juga. Untuk setiap organisasi atau proyek, ada pengetahuan laten yang mungkin tidak sepenuhnya tercakup dalam dokumentasi Anda. Menggunakan aturan secara efektif adalah cara terbaik untuk memastikan Cursor mendapatkan gambaran lengkap. Sebagai contoh, jika Anda menulis instruksi tentang cara mengimplementasikan fitur atau layanan baru, pertimbangkan untuk menulis aturan singkat untuk mendokumentasikannya untuk keperluan masa depan.
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.
Jika ada pola formatting umum yang ingin Anda pastikan dipatuhi oleh Cursor, pertimbangkan untuk melampirkan aturan secara otomatis berdasarkan pola 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 `)

Tetap dekat dengan proses pembuatan rencana

Untuk perubahan yang lebih besar, meluangkan waktu lebih dari biasanya untuk membuat rencana yang tepat dan terdefinisi dengan baik dapat secara signifikan meningkatkan output Cursor. Jika Anda merasa tidak mendapatkan hasil yang diinginkan setelah beberapa variasi berbeda dari prompt yang sama, pertimbangkan untuk mundur sejenak dan membuat rencana yang lebih detail dari awal, seolah-olah Anda sedang membuat PRD untuk rekan kerja. Seringkali bagian yang sulit adalah mengetahui perubahan apa yang harus dibuat, tugas yang cocok untuk manusia. Dengan instruksi yang tepat, kita dapat mendelegasikan beberapa bagian implementasi kepada Cursor. Salah satu cara menggunakan AI untuk memperkuat proses pembuatan rencana adalah dengan menggunakan mode Ask. Untuk membuat rencana, aktifkan mode Ask di Cursor dan masukkan konteks apa pun yang Anda miliki dari sistem manajemen proyek, dokumentasi internal, atau pemikiran lepas. Pikirkan tentang file dan dependensi apa yang Anda miliki dalam codebase yang sudah Anda ketahui ingin disertakan. Ini bisa berupa file yang berisi potongan kode yang ingin Anda integrasikan, atau mungkin seluruh folder. Berikut adalah contoh prompt:
Planning prompt
- buat rencana bagaimana kita harus membuat fitur baru (seperti @existingfeature.ts)
- tanyakan pertanyaan kepada saya (maksimal 3) jika ada yang tidak jelas
- pastikan untuk mencari di codebase

@Past Chats (prompt eksplorasi saya sebelumnya)

berikut beberapa konteks tambahan dari [alat manajemen proyek]:
[deskripsi tiket yang ditempel]
Kami meminta model untuk membuat rencana dan mengumpulkan konteks dengan mengajukan pertanyaan kepada manusia, mereferensikan prompt eksplorasi sebelumnya dan juga deskripsi tiket. Menggunakan model pemikiran seperti claude-3.7-sonnet, gemini-2.5-pro, atau o3 direkomendasikan karena mereka dapat memahami maksud perubahan dan lebih baik dalam mensintesis rencana. Dari ini, Anda dapat secara iteratif merumuskan rencana dengan bantuan Cursor sebelum memulai implementasi.

Pilih alat yang tepat untuk pekerjaan

Salah satu keterampilan paling penting dalam menggunakan Cursor secara efektif adalah memilih alat yang tepat untuk pekerjaan. Pikirkan tentang apa yang ingin Anda capai dan pilih pendekatan yang akan membuat Anda tetap dalam alur kerja.
AlatKasus penggunaanKekuatanKeterbatasan
TabPerubahan cepat, manualKontrol penuh, cepatFile tunggal
Inline EditPerubahan terbatas dalam satu fileEdit yang terfokusFile tunggal
ChatPerubahan besar, multi-fileAuto-mengumpulkan konteks, edit mendalamLebih lambat, berat konteks
Setiap alat memiliki titik manisnya:
  • Tab adalah pilihan utama Anda untuk edit cepat di mana Anda ingin memegang kendali
  • Inline Edit unggul ketika Anda perlu membuat perubahan terfokus pada bagian kode tertentu
  • Chat sempurna untuk perubahan yang lebih besar di mana Anda perlu Cursor memahami konteks yang lebih luas
Ketika Anda menggunakan mode Chat (yang mungkin terasa sedikit lebih lambat tetapi sangat powerful), bantu Chat membantu Anda dengan memberikan konteks yang baik. Gunakan @files untuk menunjuk ke kode serupa yang ingin Anda tiru, atau @folder untuk memberikan pemahaman yang lebih baik tentang struktur proyek Anda. Dan jangan takut untuk memecah perubahan besar menjadi bagian-bagian kecil - memulai chat baru membantu menjaga hal-hal tetap terfokus dan efisien.

Poin Penting

  • Batasi ruang lingkup perubahan dan jangan mencoba melakukan terlalu banyak sekaligus
  • Sertakan konteks yang relevan bila memungkinkan
  • Gunakan Chat, Inline Edit & Tab untuk hal-hal yang paling mereka kuasai
  • Buat chat baru secara berkala
  • Rencanakan dengan mode Ask, implementasikan dengan mode Agent