Mobinova logo
AI Engineering

Git Bizim Hafızamız: Yapay Zeka Kodlama Ajanlarıyla Üretime Hazır Uygulamalar Geliştirmek

Mobinova
#ai#kodlama ajanları#codex#git#yazılım mühendisliği

Yazılım dünyasında yapay zeka kodlama ajanlarını, özellikle Codex gibi otonom araçları kullanırken sıkça düşülen bir tuzak vardır: Mimariyi, ürün gereksinimlerini ve bağlamı koca bir sohbet penceresine yığıp ajandan mucizevi bir şekilde baştan uca bir özellik çıkarmasını beklemek. Bu yaklaşım genellikle hayal kırıklığıyla sonuçlanır.

Gerçek dünyada, çoklu depo (multi-repo) mimarilerine sahip; mobil (iOS ve Android), arka uç (backend) ve web bileşenleri barındıran üretim ortamlarında yapay zekayı bir kod jeneratörü olarak değil, bir mühendislik ortağı olarak konumlandırmak gerekir.

Aylar süren ve binlerce yapay zeka oturumunu kapsayan süreçlerimizde temel bir felsefeyi benimsedik: Kalıcı bağlamı (context) kaynak kod deposuna (Git) koyun, diyaloğu odaklı tutun ve yapay zeka oturumlarının yalnızca kesin, küçük bir iş parçası üzerinde çalışmasına izin verin.

Peki bunu pratikte nasıl sağlıyoruz?

3 Katmanlı Yapay Zeka Geliştirme Mimarisi

Sistemin kalbinde, sohbet geçmişini bir hafıza olmaktan çıkarıp kaynak kod deposunu (repository) hafızanın kendisi hâline getiren üç katmanlı bir yapı yatıyor.

1. AGENTS.md: Mühendislik Kullanım Kılavuzu

Yapay zekaya her seferinde “iOS derlemesi al”, “şu kütüphaneyi kullan” veya “üretilmiş kodlara elle müdahale etme” gibi kuralları tekrar tekrar hatırlatmak yerine, bu kuralları stabil bir AGENTS.md dosyasında tutuyoruz.

Bu dosya projenin anayasasıdır. İyi bir AGENTS.md kuralı:

Örneğin, yapay zekanın yanlış JDK sürümü kullanması veya API sözleşmelerini bozması gibi hatalar bu dosyaya bir kural olarak eklenir ve o hata sınıfı bir daha tekrarlanmaz. Bu, bileşik faiz gibi sürekli büyüyen bir mühendislik belleğidir.

2. todo/ Klasörü: Yürütülebilir Ürün Spesifikasyonları

Burası sıradan bir not yığını değil, uygulamanın anlık durum (state) makinesidir. Geliştirilecek her büyük özellik (epic) için bu klasörde bir Markdown dosyası oluşturulur.

3. Kısa ve Kontrollü Ajan Oturumları

Bağlam Git depolarında, AGENTS.md ve todo/ içinde yaşadığı için Codex’e verilen komutlar şaşırtıcı derecede kısadır.

Kendi iç ölçümlerimizde, ayları kapsayan binlerce başarılı oturumun verileri şunu gösteriyor:

Çünkü ajana “Şu özelliği baştan yaz” demiyoruz. “Planı kontrol et, sıradaki uygulanmamış görev grubunu seç, sadece o kısmı kodla ve doğrula” diyoruz.

Depo bağlamı olmadan kısa komutlar belirsizdir. Uzun ömürlü bir depo bağlamının üzerinde ise son derece verimli çalışır.

Yapay Zeka Üretim Süreçlerinde Nasıl Çalışır?

Codex’i sadece kod yazmak için değil, mühendislik döngüsünün her adımında kullanıyoruz.

Kod Arkeolojisi ve Planlama

Kod yazmaya başlamadan önce Codex’ten mevcut yapıyı taramasını isteriz. UI bileşenlerini, görünüm modellerini, veri tabanı repository’lerini, background worker’ları ve Git geçmişini inceler. Bu, hayali bir mimariye karşı kod yazılmasını önler. Plan, var olan gerçeklik üzerine kurulur.

Kontrat-Öncelikli (Contract-First) Geliştirme

Farklı repoları ilgilendiren büyük özelliklerde çalışma sırası belirlidir: Önce Protobuf veya GraphQL gibi paylaşılan API sözleşmeleri, sonra backend, en son istemciler (clients). Codex; Go, Swift, Kotlin ve TypeScript gibi farklı diller arasında aynı alan adlarını, durum makinelerini, hata standartlarını ve idempotency kurallarını koruma konusunda son derece başarılıdır.

Çapraz Platform Eşitliği (Parity)

Mobil geliştirmede en sık kullandığımız komutlardan biri “parity prompt”tur:

iOS uygulamasını incele ve UI ile yönlendirme için doğru kaynak (source of truth) kabul et. Android uygulamasındaki eksikleri bul ve bu eşitliği sağla.

Bu sayede yalnızca UI değil; metinler, navigasyon, analitik rotaları, hata yönetimi, veri yükleme aşamaları ve backend kabulleri tek bir referans noktası üzerinden diğer platforma aktarılır. Hangi platformun referans olduğu kararı ise mühendiste kalır.

PR, Kod İnceleme ve Sürüm Operasyonları

Codex; çalışma ağacının durumunu kontrol edebilir, dal (branch) oluşturabilir, bilinçli bir commit atabilir ve taslak Pull Request açabilir. Gelen PR yorumlarını okutarak eksikleri tamamlamasını, kodu tekrar göndermesini ve yorumları çözmesini sağlayabilirsiniz:

Çözülmemiş inceleme yorumlarını kontrol et, düzelt, gönder ve yorumları çöz.

Mühendis karar verici koltuğunda kalırken Git operasyonlarının mekanik yükünü yapay zeka üstlenir.

Zorluklar ve Öğrenilen Dersler

Her sistemin kör noktaları vardır. Bu süreçte karşılaştığımız temel zorluklar ve çözümlerimiz şunlar oldu.

Plan Enflasyonu

todo/ dosyaları zamanla yüzlerce satırlık iş listelerine dönüşebilir. Bu durum planın hızla eskimesine yol açar.

Çözüm: Büyük görevleri kontrat veya sürüm bazında bölmek, yalnızca yakın teslimat dilimini yürütülebilir tutmak ve tamamlananları hızla arşivleyip docs/ klasörüne kaldırmak.

Doğrulama Maliyeti

Mobil uygulamalarda iOS veya Android için her onay kutusundan sonra derleme almak süreci tıkar.

Çözüm: Uygulamayı birlikte derlenebilen kilometre taşlarına bölmek, ajandan yalnızca bu aşamalarda doğrulama istemek ve tam test matrisini son geçişe bırakmak.

Üretim Güvenliği

Ajanların logları inceleyip canlı sistemler üzerinde teşhis koyması çok güçlüdür ancak risklidir.

Çözüm: Önce salt okunur (read-only) teşhis koymak, hedefleri doğrulamak, logları sansürlemek, kişisel verileri asla açığa çıkarmamak ve geri alınabilir değişiklikleri tercih etmek. Açık insan onayı olmadan yapay zekanın veri tabanı veya konfigürasyon değişikliği yapmasına asla izin vermemek.

Sonuç

Yapay zeka ile yazılım geliştirmede en büyük üretkenlik artışı, sihirli bir komut bulmaktan geçmez. Bağlamın nerede yaşadığını yeniden tasarlamaktan geçer.

Stabil kurallar kodun yanında yaşar. Mimari kararlar versiyonlanmış epic dosyalarında yaşar. İlerleme ise onay kutularında, Git commit’lerinde ve Pull Request’lerde yaşar. Ajan, sisteme yalnızca iki dakikalığına girer; sınırları çok iyi tanımlanmış bir işi yapar, kanıtlarını bırakır ve çıkar.

Yapay zeka oturumları ne kadar kısa olursa olsun, mühendislik hafızanız kalıcıdır.

← Back to Blog