Cursor ile kod yazma yöntemleri
(arguingwithalgorithms.com)Cursor nedir?
- Cursor, Visual Studio Code (VS Code) çatallanmasıdır ve çekirdek arayüzüne Large Language Model (LLM) tabanlı özellikler entegre edilmiştir
- Tescilli bir üründür; ücretsiz bir katmanı ve abonelik seçenekleri vardır
- Başlıca özellikler:
- Tab otomatik tamamlama: Yalnızca abonelere sunulan, kod otomatik tamamlama ve sonraki önerilen eyleme geçiş için kullanılan tescilli ince ayarlı model
- Satır içi düzenleme: Ücretsiz ve ücretli kullanıcıların kullanabildiği, diff görünümüyle seçili kodu düzenleyen sohbet tabanlı arayüz
- Sohbet kenar çubuğu: Ücretsiz ve ücretli kullanıcıların kullanabildiği, daha uzun tartışmalar için alan sağlayan sohbet tabanlı arayüz
- Composer: Birden fazla dosyaya yayılan büyük ölçekli refaktörler için tasarlanmış, ücretsiz ve ücretli kullanıcıların kullanabildiği sohbet tabanlı arayüz
Tab otomatik tamamlama
- Kod yazarken en doğal şekilde kullanılabilen ve en çok zaman kazandıran özellik
- Yalnızca tek satır, çok satır veya tüm fonksiyon için tamamlama önermekle kalmaz, sonraki düzenleme için gidilecek sonraki satırı da önerir
- Tab tuşuna art arda basarak dosya genelindeki ilgili değişiklikleri otomatik tamamlayabilirsiniz
- Kod refaktörleme aracı olarak kullanılabilir
- Bazen bağımsız olarak hataları bulup düzeltme önerebilir
- Dizeleri tırnak içine aldığınızda içeriği uygun şekilde escape eder
- Yalnızca fonksiyon imzası ve isteğe bağlı docstring ile tüm fonksiyonu yazabilir
- Tamamlama önerileri çok hızlıdır
- Dezavantajlar:
- Öneriyi zamanında görmeyip yazmaya devam ederseniz tamamlama önerisi kaybolur
- Yanlış bir tamamlamayı bilerek reddetmiş olsanız bile, daha sonra başka bir tamamlamayı kabul ettiğinizde daha önce reddedilen öneri bazen fark edilmeden uygulanabilir
Satır içi düzenleme, sohbet kenar çubuğu, Composer
- Temel modelle (çoğunlukla Claude 3.5 Sonnet kullanılır) etkileşim çok benzerdir; fark kullanıcı arayüzündedir
- Satır içi düzenleme Ctrl-K/Cmd-K ile çağrılır; istediğiniz değişikliği girdikten sonra kabul veya reddedebileceğiniz bir diff alırsınız
- Sohbet kenar çubuğu Ctrl+L/Cmd+L ile açılır ve çok turlu konuşmalar için daha fazla alan sağlar
- Composer, birden fazla dosyaya yayılan refaktörler için tasarlanmıştır ve dosya diff'lerini tek tek gözden geçirebileceğiniz daha iyi bir kullanıcı deneyimi sunar
.cursorrules dosyası
- Çalışma alanı kökünde bulunan
.cursorrulesdosyasının içeriği, ek bağlam sağlamak için çeşitli sohbet biçimlerine her zaman dahil edilir - Depodaki kodlama standartlarını, yaygın paketleri ve diğer belgeleri LLM'e bildirmek için kullanılır
- Cursor'un büyük engellerinden biri olan, düzenlenen dosyada zaten mevcut değilse kodlama stiline ve kalıplarına uymama sorununu hafifletmeye yardımcı olabilir
- Şu anda çalışma alanı başına yalnızca bir dosya bulunduğundan, birden fazla dilde kod içeren monorepo'ları yapılandırmak; küçük ve tutarlı stilli kod kümelerine sahip daha küçük depolara kıyasla daha zordur
.cursorrulesdosyası yalnızca sohbet biçimleri için kullanılır; Tab otomatik tamamlama için kullanılmaz
İş akışındaki değişim
- Daha hızlı kod yazabilmek en heyecan verici nokta değil
- Aslında darboğaz kod yazma eyleminin kendisi değil
- Asıl değer, kod yazma biçimini değiştirmesinde yatıyor
- Değişenler:
- Yeni kütüphane veya framework arama olasılığı çok daha düştü
- Küçük yardımcı araçlar için, genel amaçlı bir kütüphane eklemektense LLM'in bunu özel gereksinimlere göre yazdırmak daha kolay
- Birçok kütüphane yalnızca boilerplate'i azaltmak için var; LLM bunu yapabildiği için bunun maliyeti artık o kadar anlamlı görünmeyebilir
- Kendi kodunda DRY (Don't Repeat Yourself) ilkesine bağlı kalma konusunda daha az kaygı duyuluyor
- Soyutlamaları erken tanımlamak, ileride çok fazla teknik borç oluşturabilir
- Fonksiyon veya sınıf hâline getirmeye çalışmadan, başka kodları referans alarak çok miktarda kod üretilebildiği için daha fazla esneklik sağlanıyor
- Daha az aşina olunan dillere veya framework'lere yönelme isteği çok arttı
- Örneğin R kullanmakta zorlanılıyordu, ancak artık istenen görselleştirme tarif edilince doğru veri işleme ve ggplot görselleştirmesi elde edilebiliyor
- Daha büyük kod tabanına entegre etmeden önce küçük bileşenler hızla yineleniyor
- Bu, LLM'in sınırlamalarını aşmanın bir yolu olmasının yanı sıra, daha önce düşünülmeyen ilginç bir çalışma biçiminin de önünü açıyor
- Yeni kütüphane veya framework arama olasılığı çok daha düştü
Özet
- Şu an için Cursor, LLM kodlama asistanlarının potansiyelini gösteren en iyi örnek
- Bu tür araçların nasıl değer yaratabileceğini keşfetmek istiyorsanız Cursor'u denemek iyi bir fikir
GN⁺ görüşü
- Cursor, LLM tabanlı kodlama araçlarının potansiyelini gösteren iyi bir örnek gibi görünüyor
- Özellikle Tab otomatik tamamlama özelliği, kod yazarken doğal biçimde kullanılabildiği ve çok zaman kazandırdığı için çekici
- Sohbet tabanlı özellikler de refaktörleme veya kod dönüştürme gibi işlerde faydalı olabilir
- Ancak hâlâ erken aşamada olduğu için bazı sınırlamalar da var gibi görünüyor
- Tutarlı kodlama stilini uygulamanın zor olması
- Monorepo gibi karmaşık proje yapılarında kullanım sorunları
- Ücretsiz ve ücretli kullanıcılar arasındaki özellik farklarının net olmaması
- Benzer işlevler sunan diğer araçlar arasında GitHub Copilot, Tabnine ve Kite bulunuyor
- Her aracın kendi artıları ve eksileri olduğundan, proje özelliklerine veya kişisel tercihlere göre seçim yapmak mantıklı olabilir
- LLM tabanlı kodlama araçlarını devreye alırken şu noktalar dikkate alınabilir
- Geliştirme ekibinin benimsemesi: Yeni araçların kullanımına karşı bir direnç var mı?
- Öğrenme maliyeti: Aracın nasıl kullanılacağını öğrenmek ne kadar zaman alacak?
- Bakım kolaylığı: Araçla üretilen kodu anlamak ve bakımını yapmak kolay mı?
- Kod kalitesi: Gerçekten kod kalitesini iyileştirmeye yardımcı oluyor mu?
- Maliyet-etkinlik: Verimlilik artışı, devreye alma ve bakım maliyetlerini karşılayacak düzeyde mi?
6 yorum
Cursor chat işin anahtarı. docstring oluşturması gerçekten çok kullanışlı.
Cursor'u kullanınca Copilot'un otomatik tamamlaması bana aşırı yavaş gelmeye başladı. :(
Sekme otomatik tamamlama yalnızca ücretli aboneler için mi mümkün?
Yalnızca abonelere açık olduğu doğru, ancak ücretsiz bir abonelik var ve ayda 2000 otomatik tamamlama sunuyor. Ben de bu şekilde 3 aydır kullanıyorum.
https://www.cursor.com/pricing
Evet
Yazıda yazıyor haha