OpenAI, Codex’i nasıl kullanıyor?
Codex; Güvenlik, OpenAI’da Ürün Mühendisliği, Ön Uç, API, Altyapı ve Performans Mühendisliği gibi çok sayıda teknik ekip tarafından her gün kullanılır. Ekipler, karmaşık sistemleri anlamaktan büyük kod tabanlarını yeniden düzenlemeye, yeni özellikleri kullanıma sunmaktan dar zaman çizelgeleri altında olayları çözmeye kadar uzanan çeşitli mühendislik görevlerini hızlandırmak için Codex'i kullanıyor.
OpenAI mühendisleriyle yapılan görüşmelerden ve kurum içi kullanım verilerinden yararlanarak, Codex'in ekiplerimizin daha hızlı ilerlemesine, iş kalitesini artırmasına ve karmaşıklığı geniş ölçekte yönetmesine nasıl yardımcı olduğunu gösteren kullanım örnekleri ve en iyi uygulamaları derledik.
Codex; oryantasyon, hata ayıklama veya bir olayı inceleme esnasında ekiplerimizin kod tabanının aşina olmadıkları bölümlerine hızla hâkim olmasına yardımcı olur.
Codex'i genellikle bir özelliğin temel mantığını bulmak, servisler veya modüller arasındaki ilişkileri haritalandırmak ve bir sistemdeki veri akışını izlemek için kullanırlar. Ayrıca, normalde önemli ölçüde manuel çalışma gerektirecek mimari kalıpları veya dokümantasyondaki eksik bölümleri ortaya çıkarmaya da yardımcı olur.
Olay yanıtı sırasında Codex, bileşenler arasındaki etkileşimleri ortaya çıkarıp hata durumlarının sistemler arasında nasıl yayıldığını izleyerek mühendislerin yeni alanlara hızla hâkim olmasına yardımcı olur.
Ekiplerimizden hikâyeler
“Bir hatayı düzelttiğimde, aynı sorunun kod tabanında ortaya çıkabileceği diğer yerleri görmek için Soru modunu kullanıyorum.”
Bu kod deposunda kimlik doğrulama mantığı nerede uygulanmış?
İsteklerin bu hizmette giriş noktasından yanıta kadar nasıl aktığını özetle.
[Modül adını ekle] ile hangi modüller etkileşim kurar, hatalar nasıl ele alınır?
Codex, birden fazla dosya veya pakete yayılan değişiklikleri yapmak için sıkça kullanılır. Örneğin, mühendisler bir API’yi güncellerken, bir örüntünün uygulanışını değiştirirken veya yeni bir bağımlılığa geçerken Codex, değişiklikleri tutarlı bir şekilde uygulamayı kolaylaştırır.
Bu işlev, aynı güncellemenin onlarca dosyada yapılması gerektiğinde veya güncellemenin, regex ya da bul ve değiştir işlemiyle kolayca tespit edilemeyen yapı ve bağımlılıkları dikkate almayı gerektirdiği durumlarda özellikle faydalıdır.
Ayrıca bu, aşırı büyük modülleri bölerek, eski kalıpları modern olanlarıyla değiştirerek veya kodu daha iyi test edilebilir hâle getirerek kod temizliği için de kullanılır.
Ekiplerimizden hikâyeler
"Codex, tüm eski getUserById( ) kullanımlarını yeni servis düzenimize göre değiştirdi ve PR'yi açtı." Saatler sürecek işi dakikalar içinde yaptı."
Bu dosyayı sorumluluk alanlarına göre ayrı modüllere ayırıp her biri için testler oluştur.
Geri çağrı tabanlı tüm veri tabanı erişimlerini async/await yapısına dönüştür.
Codex, performansla ilgili darboğazları belirlemek ve gidermek için kullanılır.
Ayarlama veya güvenilirlik çalışmaları sırasında mühendisler verimsiz döngüler, gereksiz işlemler veya maliyetli sorgular gibi yavaş ya da bellek yoğun kod yollarını analiz etmesi için Codex’e prompt verir ve optimize edilmiş alternatifler önermesini sağlar; bu da çoğu zaman verimlilik ve güvenilirlik açısından anlamlı kazanımlar sunar.
Codex, hâlâ aktif olarak kullanılan riskli veya kullanımdan kaldırılmış kalıpları belirleyerek kod sağlığını desteklemek için de kullanılır. Ekiplerimiz, uzun vadeli teknik borcu azaltmak ve regresyonları proaktif olarak önlemek için ona güvenir.
Ekiplerimizden hikâyeler
“Yinelenen maliyetli veri tabanı çağrılarını taramak için Codex kullanıyorum. Kritik yolları tespit etme ve daha sonra ince ayar yapabileceğim toplu sorguları taslak hâlinde hazırlama konusunda çok iyi.”
Bu döngüyü bellek verimliliği için optimize et ve senin sürümünün neden daha hızlı olduğunu açıkla.
Bu istek işleyicisinde tekrarlanan maliyetli işlemleri belirleyip önbelleğe alma fırsatları öner.
Bu işlevde veri tabanı sorgularını toplu olarak daha hızlı çalıştırmanın bir yolunu öner.
Codex, özellikle kapsamanın yetersiz olduğu veya tamamen eksik kaldığı yerlerde mühendislerin testleri daha hızlı yazmasına yardımcı olur.
Mühendisler bir hata düzeltmesi veya yeniden düzenleme üzerinde çalışırken Codex’ten genellikle uç durumları ve olası hata yollarını kapsayan testler önermesini ister. Yeni kod için fonksiyon imzasına ve çevresindeki mantığa dayalı olarak birim veya entegrasyon testleri oluşturabilir.
Codex; boş girdiler, maksimum uzunluk veya alışılmadık ancak karşılaşılabilir durumlar gibi, ilk testlerde sıklıkla gözden kaçan sınır koşullarını belirlemede özellikle faydalıdır.
Ekiplerimizden hikâyeler
“Codex’i gece boyunca test kapsamı düşük modüllere yönlendiriyorum; sabah uyandığımda çalıştırılabilir birim testi PR'leri hazırlanmış oluyor.”
Uç durumlar ve hata yolları dâhil olmak üzere bu işlev için birim testleri yaz.
Bu sıralama aracı için özellik tabanlı bir test oluştur.
Bu test dosyasını, null girdiler ve geçersiz durumlarla ilgili eksik senaryoları kapsayacak şekilde genişlet.
Codex, geliştirme döngüsünün hem başlangıcını hem de sonunu hızlandırarak ekiplerin daha hızlı ilerlemesine yardımcı olur.
Yeni bir özelliğe başlarken mühendisler, şablon kodun ana yapısını oluşturmak için bunu kullanır; klasörler, modüller ve API taslakları üreterek her parçayı tek tek manuel olarak bağlamak zorunda kalmadan çalıştırılabilir kodu hızla oluştururlar.
Projeler yayınlanma aşamasına yaklaşırken Codex; hataları sınıflandırmak, uygulamadaki son eksikleri gidermek ve yayına alma betikleri, telemetri kancaları veya yapılandırma dosyaları oluşturmak gibi küçük ama kritik görevleri üstlenerek sıkışık teslim tarihlerine yetişmeye yardımcı olur.
Ayrıca ürün geri bildirimini başlangıç koduna dönüştürmek için de kullanılır. Mühendisler, Codex'in daha sonra dönüp iyileştirebilecekleri kaba bir ilk taslak üretmesini sağlamak için çoğu zaman bir kullanıcı isteğini veya teknik şartnameyi yapıştırır.
“Bütün gün toplantılarım vardı ama Codex arka planda çalışarak 4 PR'yi birleştirmemi sağladı.”
Temel doğrulama ve günlük kaydı ile POST /events için yeni bir API rotası oluştur.
Yeni oryantasyon akışının başarı veya başarısızlığını izlemek için bu şablonu [telemetri kodunun bir örneğini ekleyin] kullanarak bir telemetri kancası oluştur.
Şu spesifikasyona göre bir iskelet uygulama oluştur: [spesifikasyon veya ürün geri bildirimi ekleyin].
Codex, mühendislerimizin programları bölündüğünde ve sık sık kesintiye uğradığında üretken kalmalarına yardımcı olur.
Yarım kalan işleri kaydetmek, notları çalışan prototiplere dönüştürmek veya daha sonra yeniden ele alınabilecek keşif görevleri oluşturmak için kullanılır. Bu, özellikle nöbette olduklarında veya çok sayıda toplantıya katıldıklarında bağlamı kaybetmeden çalışmaya ara vermeyi ve yeniden başlamayı kolaylaştırır.
“Hızlı bir düzeltme fark edersem kod dalları arasında geçiş yapmak yerine bir Codex görevi başlatır ve müsait olduğumda PR'ını gözden geçiririm.”
Codex, alternatif çözümler bulmak veya tasarım kararlarını doğrulamak gibi açık uçlu işlerde de kullanışlıdır. Bir problemi çözmenin farklı yollarını istemek için prompt yazabilir, aşina olmadığınız örüntüleri keşfedebilir veya varsayımlarınızı zorlayıcı testlere tabi tutabilirsiniz. Bu; artıları ve eksileri ortaya koymaya, tasarım seçeneklerini genişletmeye ve uygulama kararlarını netleştirmeye yardımcı olur.
Bu işlev, ilgili hataları tespit etmek için de kullanılır. Bilinen bir sorun veya kullanımdan kaldırılmış bir yöntem verildiğinde, Codex kodun başka yerlerindeki benzer örüntüleri belirleyerek regresyonları yakalamayı ve temizlik çalışmalarını tamamlamayı kolaylaştırır.
Codex, yeterli veri olmadan başlama (cold‑start) sorununu çözmeme yardımcı oluyor. Bir spesifikasyon ile beraber dokümanları yapıştırıyorum, bunun üzerine bana bir kod iskeleti oluşturuyor veya unuttuğum noktaları gösteriyor.
Sistem istek/yanıt yerine olay güdümlü olsaydı nasıl çalışırdı?
Sorgu oluşturma aracımızı kullanmak yerine SQL dizelerini manuel olarak oluşturan tüm modülleri bul.
Bunu daha fonksiyonel bir stilde yeniden yaz; mutasyon ve yan etkilerden kaçın.
Codex kendisine yapı, bağlam ve yineleme alanı verildiğinde en iyi performansı gösterir. OpenAI ekiplerinin günlük işlerinde düzenli olarak fayda sağlamak için edinmeye başladığı alışkanlıklardan bazılarını burada bulabilirsiniz.
Büyük değişiklikler için önce Soru modunu kullanarak Codex'e bir uygulama planı prompt'u verin; bu plan, Kod moduna geçtiğinizde sonraki istemler için girdi görevi görür. Bu iki adımlı süreç, Codex'in sağlam bir zeminde kalmasını sağlar ve çıktısındaki hataları önlemeye yardımcı olur. Codex, sizin veya bir ekip arkadaşınızın yaklaşık bir saatte tamamlayabileceği veya birkaç yüz satır kodla uygulanabilecek iyi tanımlanmış görevlerde en iyi sonucu verir. Model geliştikçe üstlenebileceği görevlerin kapsamı artacaktır.
Bir başlangıç komut dosyası, ortam değişkenleri ve internet erişimi ayarlamak, Codex’in hata oranını önemli ölçüde azaltır. Görevleri çalıştırırken Codex’in ortam yapılandırmasında düzeltilebilecek derleme hatalarını arayın. Bu, birkaç yineleme gerektirebilir, ancak uzun vadede önemli verimlilik kazanımları sağlar.
Prompt PR veya sorun kaydında bir değişikliği açıklar gibi bir tarzda olduğunda Codex daha iyi yanıt verir. Bu, uygun olduğunda dosya yollarını, bileşen adlarını, diff'leri ve belge kod parçacıklarını eklemek anlamına gelir. “Bunu [X modülünde] yapıldığı şekilde uygula” gibi kalıplarla prompt vermek sonuçları iyileştirir.
Yan fikirleri, yarım kalmış işleri veya ufak düzeltmeleri yakalamak amacıyla görevler başlatın. Tek seferde eksiksiz bir PR oluşturmanız gerekmiyor. Codex, yeniden odaklandığınızda geri dönebileceğiniz bir hazırlık alanı tanıyan faydalı bir araçtır.
Codex'in deponuzdaki prompt'lar genelinde daha etkili çalışmasını sağlamak için bir AGENTS.md dosyası tutun. Bu dosyalar genellikle adlandırma kuralları, iş mantığı, bilinen özel durumlar veya Codex'in tek başına koda bakarak çıkaramayacağı bağımlılıklar içerir. AGENTS.md dosyanızı nasıl yapılandıracağınız hakkında daha fazla bilgi için belgelere bakın.
Best-of-N özelliği, tek bir görev için aynı anda birden fazla yanıt oluşturmanıza olanak tanır; böylece birden fazla çözümü hızlıca değerlendirip en iyisini seçebilirsiniz. Daha karmaşık görevlerde, birkaç yinelemeyi gözden geçirip farklı yanıtların bölümlerini birleştirerek daha güçlü bir sonuç elde edebilirsiniz.
Codex hâlâ araştırma ön izlemesinde, ancak geliştirme biçimimiz üzerinde şimdiden gerçek bir etki yaratıyor; daha hızlı ilerlememizi, daha iyi kod yazmamızı ve normalde asla öncelik verilmeyecek işleri üstlenmemizi sağlıyor.
Modellerimiz iyileştikçe ve Codex iş akışlarımıza daha derinlemesine entegre oldukça, onunla yazılım geliştirmek için daha güçlü yolları keşfetmeyi heyecanla bekliyoruz. Bu süreçte öğrendiklerimizi paylaşmaya devam edeceğiz.


