23 puan yazan GN⁺ 2024-10-30 | 6 yorum | WhatsApp'ta paylaş

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 .cursorrules dosyası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
  • .cursorrules dosyası 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:
    1. 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
    2. 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
    3. 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
    4. 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

Ö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

 
yangeok 2024-11-08

Cursor chat işin anahtarı. docstring oluşturması gerçekten çok kullanışlı.

 
roxie 2024-11-04

Cursor'u kullanınca Copilot'un otomatik tamamlaması bana aşırı yavaş gelmeye başladı. :(

 
yangeok 2024-10-30

Sekme otomatik tamamlama yalnızca ücretli aboneler için mi mümkün?

 
angelkum 2024-10-31

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

 
savvykang 2024-10-31

Tab otomatik tamamlama: yalnızca abonelere sunulan kod otomatik tamamlama

Evet

 
rlahfl 2024-10-31

Yazıda yazıyor haha