Büyük kod tabanları ile çalışmak, küçük projelerle çalışmaktan farklı bir dizi zorluk getirir. Hem Cursor’un kendi kod tabanını ölçeklendirme deneyimimizden hem de büyük kod tabanlarını yöneten müşterilerimizden aldığımız içgörülerden yola çıkarak, artan karmaşıklığı ele almak için bazı yararlı kalıplar keşfettik. Bu kılavuzda, büyük kod tabanları için yararlı bulduğumuz bu tekniklerden bazılarını ele alacağız.

Tanımadığınız kodları hızlıca anlamak için Chat kullanın

Büyük bir kod tabanında gezinmek, özellikle de sizin için yeniyse, zorlu olabilir. Genellikle aradığınız kod tabanının belirli bölümlerini bulmak için grep, arama ve tıklama işlemleri yaparsınız. Chat ile aradığınızı bulmak için sorular sormaya başlayabilir ve nasıl çalıştığına dair detaylı açıklamalar alabilirsiniz. Burada Cursor’da kod tabanı indeksleme işleminin uygulama detaylarını bulmak için yardım alıyoruz ve hatta anlaşılmasını kolaylaştırmak için bazı örnekler istiyoruz.
Cursor’a kod tabanınızın yapısı hakkında daha iyi bir anlayış kazandırmak için, gelişmiş performans için Ayarlar’dan Proje Yapısını Dahil Et seçeneğini etkinleştirdiğinizden emin olun.

Alana özgü bilgi için kurallar yazın

Kod tabanınıza yeni bir işbirlikçi dahil ediyorsanız, anlamlı katkılarda bulunmaya başlayabilmeleri için onlara hangi bağlamı verirdiniz? Bu soruya verdiğiniz yanıt, Cursor’un da anlaması için değerli bilgi olabilir. Her organizasyon veya proje için, belgelerinizde tam olarak yakalanmamış olabilecek gizli bilgiler vardır. Kuralları etkili bir şekilde kullanmak, Cursor’un tam resmi görmesini sağlamanın en iyi yoludur. Örneğin, yeni bir özellik veya servisin nasıl uygulanacağına dair talimatlar yazıyorsanız, bunu gelecek nesiller için belgelemek üzere kısa bir kural yazmayı düşünün.
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.
Cursor’un uymasını istediğiniz yaygın biçimlendirme kalıpları varsa, glob desenlerine dayalı olarak kuralları otomatik olarak eklemeyi düşünün.
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 `)

Plan oluşturma sürecine yakın kalın

Daha büyük değişiklikler için, kesin ve iyi kapsamlı bir plan oluşturmak üzere ortalamanın üzerinde düşünce harcamak, Cursor’ın çıktısını önemli ölçüde iyileştirebilir. Aynı prompt’un birkaç farklı varyasyonundan sonra istediğiniz sonucu alamadığınızı fark ederseniz, uzaklaşıp sıfırdan daha detaylı bir plan oluşturmayı düşünün, sanki bir iş arkadaşınız için PRD oluşturuyormuş gibi. Çoğu zaman zor olan kısım hangi değişikliğin yapılması gerektiğini anlamaktır, bu da insanlar için uygun bir görevdir. Doğru talimatlarla, uygulamanın bazı kısımlarını Cursor’a devredebiliriz. Plan oluşturma sürecini güçlendirmek için AI kullanmanın bir yolu Ask modunu kullanmaktır. Bir plan oluşturmak için Cursor’da Ask modunu açın ve proje yönetim sistemlerinizden, dahili dokümanlardan veya dağınık düşüncelerden sahip olduğunuz bağlamı aktarın. Kod tabanında dahil etmek istediğinizi bildiğiniz dosyalar ve bağımlılıklar hakkında düşünün. Bu, entegre etmek istediğiniz kod parçalarını içeren bir dosya veya belki de bütün bir klasör olabilir. İşte örnek bir prompt:
Planning prompt
- yeni bir özelliği nasıl oluşturmamız gerektiği için bir plan oluştur (@existingfeature.ts gibi)
- herhangi bir şey belirsizse bana sorular sor (maksimum 3)
- kod tabanını aramayı unutma

@Past Chats (önceki keşif prompt'larım)

[proje yönetim aracından] daha fazla bağlam:
[yapıştırılan bilet açıklaması]
Modelden bir plan oluşturmasını ve insana sorular sorarak bağlam toplamasını, önceki keşif prompt’larına ve bilet açıklamalarına referans vermesini istiyoruz. claude-3.7-sonnet, gemini-2.5-pro veya o3 gibi düşünen bir model kullanmak önerilir çünkü değişikliğin amacını anlayabilir ve daha iyi bir plan sentezleyebilirler. Bundan hareketle, uygulamaya başlamadan önce Cursor’ın yardımıyla planı yinelemeli olarak formüle edebilirsiniz.

İş için doğru aracı seçin

Cursor’u etkili bir şekilde kullanmanın en önemli becerilerinden biri, iş için doğru aracı seçmektir. Neyi başarmaya çalıştığınızı düşünün ve sizi akış halinde tutacak yaklaşımı seçin.
AraçKullanım durumuGüçlü yanıSınırlılığı
TabHızlı, manuel değişikliklerTam kontrol, hızlıTek dosya
Inline EditBir dosyada kapsamlı değişikliklerOdaklanmış düzenlemelerTek dosya
ChatDaha büyük, çok dosyalı değişikliklerOtomatik bağlam toplama, derin düzenlemelerDaha yavaş, bağlam ağırlıklı
Her aracın kendine özgü avantajlı alanı vardır:
  • Tab, kontrolü elinizde tutmak istediğiniz hızlı düzenlemeler için vazgeçilmezinizdir
  • Inline Edit, kodun belirli bir bölümünde odaklanmış değişiklikler yapmanız gerektiğinde parlar
  • Chat, Cursor’un daha geniş bağlamı anlaması gereken büyük değişiklikler için mükemmeldir
Chat modunu kullanırken (biraz daha yavaş hissedebilir ama inanılmaz derecede güçlüdür), size yardım etmesi için ona iyi bağlam sağlayarak yardımcı olun. Taklit etmek istediğiniz benzer koda işaret etmek için @files kullanın veya proje yapınızı daha iyi anlaması için @folder kullanın. Ve büyük değişiklikleri daha küçük parçalara bölmekten çekinmeyin - yeni sohbetler başlatmak işleri odaklanmış ve verimli tutmaya yardımcı olur.

Çıkarımlar

  • Değişikliklerin kapsamını daraltın ve aynı anda çok fazla şey yapmaya çalışmayın
  • Mümkün olduğunda ilgili bağlamı dahil edin
  • Chat, Inline Edit ve Tab’i en iyi oldukları alanlar için kullanın
  • Sık sık yeni sohbetler oluşturun
  • Ask modu ile planlayın, Agent modu ile uygulayın