Ayarlar

Dil

30 Günde Claude Code ile Production AI Platformu İnşa Etmek: Dürüst Bir Hikaye

L
LemonData
·27 Şubat 2026·2974 görüntüleme
#Claude Code#Yapay Zeka Geliştirme#Geliştirici Deneyimi#Girişim Hikayesi#Yapay Zeka Kodlama Asistanı
30 Günde Claude Code ile Production AI Platformu İnşa Etmek: Dürüst Bir Hikaye

30 Günde Claude Code ile Prodüksiyon Hazır Bir AI Platformu İnşa Etmek: Gerçek Hikaye

Salı günü saat gece 2'ydi ve faturalandırma sisteminin kullanıcılardan iki kat ücret aldığını fark ettim. Hata altı saattir prodüksiyondaydı. Claude Code o öğleden sonra ödeme mutabakat mantığını oluşturmuştu; ben de incelemiş, test etmiş ve yayına almıştım. Kod mükemmel görünüyordu. Her testi geçmişti. Ve temelden bozuktu.

Bu, bir AI kodlama asistanıyla inşa edilen LemonData'nın — 274 API rotası, 46 database modelleri, 100.000'den fazla kod satırı — hikayesidir. Cilalanmış "AI sizi ne kadar üretken kılıyor" hikayesi değil. Başarısızlıkları, gece saat 3'teki debugging seanslarını ve AI destekli geliştirmenin gerçekten iyi bir fikir olup olmadığını sorguladığım anları içeren gerçek hikaye.

AI Destekli Geliştirmenin Vaadi vs. Gerçekliği

AI kodlama asistanlarının vaadi baştan çıkarıcıdır: ne istediğinizi tarif edersiniz, AI yazar, siz inceler ve yayınlarsınız. Teoride, tek bir geliştirici artık koca bir ekibin işini yapabilir.

Pratikte mi? İlk iki hafta inanılmazdı. Claude Code kod tabanımı anlıyor, eksiksiz özellikler oluşturuyor, dosyalar arasında refactor yapıyordu. Kariyerim boyunca hiç olmadığı kadar hızlı yayın yapıyordum. Sorunları bu kadar çabuk kapatmanın verdiği dopamin etkisi sarhoş ediciydi.

Sonra çatlaklar belirmeye başladı.

Aynı fonksiyon, biraz farklı uygulamalarla üç farklı dosyada belirdi. Konfigürasyon değerleri rastgele yerlere hardcoded olarak yazılmıştı. Type tanımları paketler arasında birbiriyle çelişiyordu. Kod tabanı hızla büyüyordu ama aynı zamanda "çalışıyor ama neden emin değilim" kodlarından oluşan bir labirente dönüşüyordu.

And o faturalandırma hatası? Claude, mükemmel görünen bir mutabakat fonksiyonu oluşturmuştu. Ancak asenkron ödeme onay akışımızdaki bir race condition ihtimalini hesaba katmamıştı. AI'ın bu edge case durumunu bilmesinin bir yolu yoktu çünkü ona açıkça söylememiştim ve yine kısmen AI tarafından oluşturulan test paketi de bunu kapsamamıştı.

Sürekli Bozulan Yedi Patern

Claude Code ile bir ay süren geliştirme sürecinden sonra bir liste tutmaya başladım. Tam olarak bug listesi değil, patern listesi. Aynı türden başarısızlıklar tekrarlanıp duruyordu ve bunlar Claude'un suçu değildi — ya da en azından tamamen değil. Bunlar, "yarın çalışacak kod" yerine "şimdi çalışan kod" için optimize eden bir AI'ın öngörülebilir sonucuydu.

1. Tutarlılık Problemi

Claude, hangi dosyada çalıştığına, son zamanlarda hangi örnekleri gördüğüne veya görünüşe göre sadece rastgele varyasyonlara bağlı olarak aynı mantığı farklı şekilde uyguluyordu. Bir API endpoint'i { data: users } döndürürken, diğeri { users } döndürürdü. İkisi de çalışıyordu. Hiçbiri diğeriyle eşleşmiyordu. Debugging bir arkeoloji çalışmasına dönüştü.

2. Kopyala-Yapıştır Problemi

Kod kopyalamak daha hızlıyken ve mevcut işlevselliği bozma riski taşımazken, bir AI neden paylaşılan bir utility oluştursun ki? Mevcut bir özelliğe benzeyen yeni bir özellik istediğim her seferinde, refactor edilmiş paylaşılan bir çözüm yerine taze bir uygulama alıyordum. Üç hafta sonra, kod tabanına dağılmış beş farklı "para birimi formatlama" fonksiyonum vardı.

3. Type Drift Problemi

Bir dosyaya yeni bir status değeri ekleniyor ama enum tanımına eklenmiyordu. Bir alan API yanıtında opsiyonelken, frontend type tanımında zorunlu olabiliyordu. TypeScript bunlardan bazılarını yakaladı, ancak anlamsal uyumsuzlukları — tiplerin teknik olarak doğru ama mantıksal olarak tutarsız olduğu durumları — yakalayamadı.

4. Konfigürasyon Dağılma Problemi

Database URL'leri, API anahtarları, feature flag'ler, rate limit'ler — Claude bunları o anki görev için neresi uygunsa oraya koyuyordu. Bazen environment variables içinde, bazen bir config dosyasında, bazen hardcoded olarak. Bir değerin tanımlandığı tüm yerleri bulmak bir define avına dönüştü.

5. Test Kapsamı İllüzyonu

AI tarafından oluşturulan testler, happy path senaryolarını derinlemesine test etme ve edge case durumlarını tamamen kaçırma eğilimindedir. Faturalandırma hatası mükemmel bir örnekti: test paketi normal ödeme akışlarını harika bir şekilde kapsıyordu. İki ödeme onayının aynı milisaniye içinde gelmesi durumunda ne olacağını asla test etmemişti.

6. Sessiz Hata Problemi

Claude, exception'ları yutan catch (error) { console.log(error) } blokları ekliyordu. Geliştirme aşamasında bu iyi görünüyordu — hatalar konsolda beliriyordu. Prodüksiyonda ise kritik hatalar sessizce loglanıyor ve unutuluyordu.

7. Dokümantasyon Boşluğu

Claude mükemmel kod yorumları yazar. Berbat mimari dokümantasyon yazar. Bir fonksiyonun ne yaptığını açıklayabilir, ancak sistemin neden bu şekilde yapılandırıldığını veya belirli bir tasarım kararına hangi kısıtlamaların yol açtığını açıklayamaz.

CLAUDE.md Çözümü

Dönüm noktası, üçüncü haftada projenin kök dizininde yaşayan ve Claude'un bilmesi gereken her kuralı, kısıtlamayı ve mimari kararı içeren CLAUDE.md dosyasını oluşturduğumda geldi.

İnsanlar için dokümantasyon değil. AI için dokümantasyon.

## API Response Format
Always use: { success: true, data: T } or { success: false, error: string }
Never return raw data without the wrapper.

## Currency
Internal storage: USD. Display: formatCurrency(amount, currency, rate).
Never hardcode exchange rates. Never store CNY directly.

## Error Handling
Never use catch(e) { console.log(e) }.
Always use the logger: logger.error('context', { error }).

Etkisi anındaydı. Claude kuralları tutarlı bir şekilde takip etmeye başladı. Bir kuralı ihlal eden kod oluşturduğunda, CLAUDE.md içindeki ilgili satırı işaret edebiliyordum ve o da kendini düzeltiyordu.

Ancak CLAUDE.md tek başına yeterli değildi. Otomatik denetime ihtiyacım vardı.

Güvenlik Ağını İnşa Etmek: AI Tarafından Üretilen Kod İçin CI Gate'leri

Geleneksel bir kod tabanında paranoyakça görünecek gate'lere sahip bir CI pipeline'ı kurduk — çünkü bunlar AI tarafından oluşturulan hataları kullanıcılar fark etmeden yakalamak için varlar:

  • Tüm monorepo genelinde Type checking (type drift'i yakalar)
  • Mükerrer uygulamaların olmadığını doğrulayan SSOT audit
  • Database enum'larının TypeScript enum'larıyla eşleşmesini sağlayan Enum sync check
  • API response format validation (tutarlılık sorununu yakalar)
  • Faturalandırma, izinler ve authentication kodu için Security gates

Temel içgörü: Claude bir yükselticidir, bir ikame değil. Üretkenliğinizi artırır ama hatalarınızı da artırır. Güçlü kurallarınız yoksa, Claude kendi kurallarını icat eder — ve bunlar tutarlı olmaz. Otomatik kontrolleriniz yoksa, Claude'un bug'ları prodüksiyona insan bug'larından çok daha hızlı ulaşır.

Faturalandırma hatası artık gerçekleşemezdi. Claude daha akıllı hale geldiği için değil, pipeline artık asenkron race condition durumlarının açıkça ele alınmasını gerektirdiği ve ödeme akışlarında düzgün locking yapılıp yapılmadığını kontrol eden bir gate tarafından doğrulandığı için.

"AI Native Development" Gerçekte Ne Anlama Geliyor?

LemonData'nın "AI Native Infrastructure" olduğunu söylediğimde, mevcut bir ürüne AI özellikleri eklediğimizi kastetmiyorum. Tüm geliştirme sürecinin bir AI kodlama ortağıyla çalışmanın gerçekliğine göre şekillendiğini kastediyorum.

Dokümantasyonumuz normalde olacağından daha detaylı — çünkü Claude, bir insan ekip arkadaşının çıkarım yapabileceği açık bağlama ihtiyaç duyuyor. Type sistemimiz gereğinden daha katı — çünkü Claude her türlü belirsizliği kullanacaktır. CI pipeline'ımız, geleneksel bir kod tabanında paranoyakça görünecek gate'lere sahip — çünkü bunlar AI tarafından oluşturulan hataları kullanıcılar fark etmeden yakalamak için varlar.

Sonuç, üzerinde çalıştığım çoğu kod tabanından aslında daha sürdürülebilir bir yapı. AI insanlardan daha iyi kod yazdığı için değil, AI destekli geliştirme için inşa etmek beni normalde sadece kıdemli geliştiricilerin kafasında yaşayan tüm kuralları ve kontrolleri açık hale getirmeye zorladığı için.

AI Native'in bir felsefe olarak ne anlama geldiği hakkında daha fazla bilgi için bkz. What Is AI Native?

AI Kodlama Asistanlarıyla Geliştirme Yapanlar İçin Dersler

Eğer Claude Code, Cursor veya herhangi bir AI kodlama asistanıyla bir projeye başlıyorsanız:

  1. CLAUDE.md dosyanızı birinci günde oluşturun — benim yaptığım gibi üçüncü haftada değil
  2. Kural denetimini otomatize edin — AI'ın kuralları hatırlayacağına güvenmeyin
  3. AI kodunu bir junior developer yazmış gibi inceleyin — hızlı ve yeteneklidir ama bağlamdan yoksundur
  4. Edge case durumlarını manuel olarak test edin — AI tarafından oluşturulan testler happy path'leri kapsar, race condition'ları değil
  5. Konfigürasyonu baştan merkezileştirin — dağılma sorunu hızla katlanır
  6. Strict TypeScript kullanın — type drift'e karşı en iyi savunmanız budur
  7. CI gate'lerini erkenden kurun — ilk hafta içinde kendilerini amorti ederler

Yine Yapar mıydım?

Kesinlikle. Ancak üçüncü hafta yerine birinci günde CLAUDE.md ile başlardım. Ve 10 kat üretkenlik çarpanının, hataların sonuçları üzerinde de 10 kat çarpan etkisi yarattığını unutmazdım.

İnşa ettiğimiz platform — 300+ AI modeli, birleşik API, çok para birimli faturalandırma, 13 dilde yerelleştirme — geleneksel bir ekibin aylarını alırdı. Biz 30 günde yayına aldık. Hatalar gerçekti ama hız da öyleydi.

AI destekli geliştirme sihir değildir. Yeni bir mühendislik disiplinidir. Ve tüm disiplinler gibi, kısıtlamalarına saygı duyanları ödüllendirir.

SSS

Tek bir geliştirici gerçekten Claude Code ile prodüksiyon hazır bir platform inşa edebilir mi?

Evet, ama bazı uyarılarla. AI, kod üretimi ve refactoring işlemlerini inanılmaz bir hızla halleder, ancak yine de güçlü bir mimari muhakemeye, otomatik kalite gate'lerine ve her şeyi dikkatlice inceleme disiplinine ihtiyacınız vardır. 10 kat hız, dikkatli olmazsanız 10 kat daha hızlı bug anlamına gelir.

CLAUDE.md nedir?

CLAUDE.md, AI kodlama asistanlarının bağlam için okuduğu proje düzeyinde bir talimat dosyasıdır. AI'ın uyması gereken kodlama kurallarını, mimari kararları ve kısıtlamaları içerir. Bunu AI ekip arkadaşınız için bir onboarding dokümantasyonu olarak düşünebilirsiniz.

Prodüksiyonda AI kaynaklı hataları nasıl önlersiniz?

Otomatik CI gate'leri esastır: type checking, SSOT denetimleri, enum sync doğrulaması ve alana özgü güvenlik gate'leri. Temel içgörü, AI'ın hem üretkenliği hem de hataları artırdığıdır — artan hataları yakalamak için otomatik kontrollere ihtiyacınız vardır.

AI destekli geliştirme faturalandırma ve ödeme sistemleri için uygun mu?

Evet, ancak ekstra dikkatle. Ödeme kodu; açık race condition yönetimi, düzgün locking ve kapsamlı edge case testi gerektirir. AI tarafından oluşturulan testler happy path'leri kapsama eğilimindedir — başarısızlık senaryolarını ve eşzamanlı işlemleri manuel olarak test etmelisiniz.


LemonData, tek bir API üzerinden 300'den fazla AI modeline erişmenizi sağlar. Onu AI'a hizmet etmek için AI ile inşa ettik. Ücretsiz başlayın — yeni kullanıcılar 1$ kredi kazanır.

Share: