robotAI Coding Survival Notes — 6 Ay Claude Code Deneyimimden

8 yıl kisisel yazilimlarimi gelistirdim (backend odakli), son 6-7 ay yoğun Claude Code kullandim. Iste yasadigim deneyimlerim

1. Dil Seçimi: Popüler + Strict

LLM'ler training data'sı çok olan dillerde iyi. Ama aynı zamanda compiler'ı sert olan dili seç.

Neden? Hata runtime'da değil, compile time'da patlasın. Agent hata yaptı → compiler bağırdı → agent düzeltti. Dynamic dillerde hatalar gizleniyor, birikip patlıyor.

Swift 6, TypeScript (strict mode) — bunlar iyi çalışıyor.

2. Feedback Loop Her Şey

Her değişikliği anında test ediyorum. Compiler geçmeden ilerleyemiyorum.

"Çalışıyor gibi görünüyor" tuzak.

Gerçek ilerleme: Çalışıyor + compiler geçiyor + test geçiyor.

Swift 6'nın concurrency kontrolü burada çok işe yarıyor — hataları otomatik yakalıyor. Runtime'da gizlenen hata = production'da crash demek. O yüzden mümkün olduğunca compile time'a çekiyorum.

Önemli: Olay sadece type kontrolü değil, uygulamanın çalışması. Misal, TypeScript'te çok fazla type hatası gelince süreç yavaşlıyor. Önce çalıştır, sonra type'ları düzelt.

3. Discriminated Union > Optional

Optional koyunca "null olabilir" diyorsun, ama sistem patlamıyor. Sonra yeni feature ekliyorsun, optional olduğu için eski yerler güncellenmeden devam ediyor. Unutuluyor.

Discriminated union + switch kullanınca yeni case eklediğinde compiler her yerde patlatıyor. "Coupling kötü" derler ama compiler-level coupling iyi gorebildigin iliski iyidir.

4. Shared Helper Tuzağı

Ortak helper değiştirince 5 feature patlıyor. Maintenance kabusuna dönüyor.

Benim yaklaşım: feature-isolated. Her feature kendi helper'larını taşısın. Tekrar var mı? Evet. Ama bir yeri değiştirince sadece o yer etkileniyor.

Sembol amaca odaklı olsun. Her sembolün net bir amacı olsun — aracı şeyler, buffer'lar değil. Bazen gerekiyor, ama force etmiyorum.

5. Workflow: Ses + Referans + Protocol-Firstå

  • Feature'ı sesli anlatıyorum (kendi yaptığım dictation aracı — AI + SPM Swift ile, Xcode kullanmadan, Swift bilmeden)

  • "Alfred gibi olsun, Raycast'ın şu kısmı gibi" diyorum

  • Önce protocol/interface yazıyorum, implementation sonra

  • AI'a bütün context'i tek seferde veriyorum

  • AI'a diagram çizdiriyorum — koddan görsel çıkarıyor, ben oradan anlıyorum "tamam anladı beni"

Kendi context'imi saklıyorum. Neden? Sonra "bak ben şunu söylemiştim, nasıl yapmamız lazımdı?" diye sorabilmek için. Düşünce sürecimi aktarıyorum ki sonra geri dönebilmek kolay olsun.

Kendi yaptığım tracking aracı — burst döngülerimi takip ediyorum

6. UI: Tasarlamıyorum, Tarif Ediyorum

Figma yok. "Şunun gibi, bunun gibi, birleştir" diyorum. Güzel çıkarsa devam, çıkmazsa yeni deneme.

Fixing'e saatler harcamak tuzak. Eskiden çok denerdim, çok vakit kaybettim.

UI'ı birine (ya da AI'a) bağlamak bana rahatsız edici geliyor. Elimle çizeyim tarzı değilim — daha çok sesli tarif ediyorum, referans gösteriyorum.

Bu şekilde konuşarak tarif ediyorum, AI brief çıkarıyor, ben bakıyorum "anladı mı?". Anladıysa devam.

Sesli konuşmamı AI'a verince çıkardığı brief — anladı mı anlamadı mı hemen görüyorum
Kendi yaptığım clipboard aracı — bu postu da konuşarak + resimleri birleştirerek yazdırdım

Mesela sesli anlattığımda AI bana şöyle bir brief çıkarıyor:

Sonra AI dosya yapısını çıkarıyor — ben buna placement diyorum:

Tek atışta yazıyor. Placement onaylandıktan sonra AI 3-4 dosyayı paralel yazıyor. Her biri ~900 satır. Tek seferde. Context window hızla doluyor ama iş bitiyor.

Yukarıdaki brief'den çıkan gerçek UI — sesli tarif → brief → çalışan ürün

7. Hooks/Slash Commands: Tarzına Bağlı

Ben sürekli mimari değiştiriyorum, deneme yanılma yapıyorum. Hooks benim için maintenance yükü.

Ama mimarin sabit, "çalışıyorsa dokunma" kafasındaysan → hooks mükemmel.

Olay teknolojinin gücü değil, senin tarzınla eşleşmesi.

Ben burst çalışıyorum — bir anda hype'lanıyorum, ilk 2-3 saat inanılmaz yüksek verimli flow döngüsü. O yüzden o anlarda ses kaydı açıp bütün feature'ı anlatıyorum, resme noktalar koyuyorum, detayları topluyorum. Hepsini tek seferde AI'a veriyorum.

8. İçgüdü ve Taste

8 yıldır yazılım geliştiriyorum. Architecture'da judgment, taste, içgüdü — bunlar valid.

Görünce hissediyorum artık: "ha burada bir şey uyumsuz." İçgüdüme belli kısmı salıyorum. Keskin kurallar olmaması lazım.

AI çıktısına bakınca da aynı şey — kötü çıktı, kötü kullanıldı anlamına gelmiyor. Ama içgüdü sana "dur bir dakika" diyorsa, dur.

Son Söz

Burst çalışan için farklı, methodical için farklı. Kendi rhythm'ini tanı, tool'u ona göre kullan.

Bu post benim deneyimim. Senin için farklı çalışabilir. Ama umarım bir şeyler işe yarar.

6-7 ay, günde ortalama 8-10 saat Claude Code. Dictation, hooks, slash commands, hepsini denedim. Bu çıktı.

Last updated