Yapay Zeka İle Çalışırken Dikkat Edilmesi Gereken İndikatörler

Yapay zeka ile çalışırken dikkat edilmesi gereken üç indikatör var. 1. Test kapsama alanı (test coverage) 2. Prompt sadelliği (prompt simplicity) 3. Bağlam zenginliği (context maturity) Yapay zeka destekli yazılım geliştirmede sistemin olgunluğunu yalnızca üretilen kod miktarıyla değil, test kapsamının artması ve promptların sadeleşmesiyle de ölçebiliriz. İlk iki indikatör birbirini tamamlar. Birincisi sistemin güvenilirliğini, ikincisi ise […]

Yapay Zeka İle Api Tasarımında Dikkat Edilmesi Gerekenler

Yapay zeka ile api tasarımı yaparken ya da kör bir şekilde yapay zekanın api tasarımı yapmasına izin verirken dikkat edilmesi gereken iki önemli bir husus var. Öncelikle hangi rollerin hangi haklar ile bu apilere erişilebileceğinin tayin edilmesi gerekiyor. Herkesin herşeyi yapabildiği apiler sistem için çok tehlikeli apilerdir. Apiye girişlerin mutlaka öncelikle api ismi, daha sonra […]

Tam Otonom Yazılım Nasıl Yapılır?

En basit hali ile loop engineering nasıl yapılır? Aşağıdaki örnekte Gpt Sol analiz ve review, Opus ise implementasyonu üstleniyor. Sadece Opus ya da Sol kullanarak çalışılabilir, ama ortaya çıkacak sonuç çok sağlıklı ya da beklenir tipte olmayabilir. Atılması gereken adımlar: 1. Gpt ile domain (alan) analizi yap ve iş paketlerini oluştur. İş paketleri ile uygulama […]

Asıl Mevzu

Benim yazilima bakis ve yazilimi uygulayis tarzimi tamamen extreme programming (https://lnkd.in/d-EdTKsU) sekillendirdi. Extreme Programming ile test güdümlü yazilimin ve refactoring yapma kabiliyetinin bir yazilim icin ve onu sekillendirme sürecinde ne anlama geldiklerini bu sekilde ögrendim. Yazilimda cevik olmanin temelinde uygulamayi bir hamur gibi yogurabilme yetisi yatiyor (https://lnkd.in/eh53s4Kr). Her yeni müsteri gereksinimi ile uygulanin hamur gibi […]

Yapay Zeka Destekl Adım Adım Proje Nasıl Geliştirlir?

Nasil ki tribünden futbol maci seyrederek iyi bir futbolcu olunamiyorsa, uzaktan yapay zeka gelismelerini takip ederek de bu konuda iyi bir yazilimci olunamaz. Bu konuda ciddi iseniz, icine girmeniz yani oyunu oynamak icin sahaya inmeniz gerekiyor. Sahaya nasil inersiniz? Hemen bugün yapay zeka destegi ile bir proje yapmaya baslayarak. Adim adim yapilmasi gerekenleri anlatiyorum. 1.) […]

Clean Prompt

Benim yazilima bakis ve yazilimi uygulayis tarzimi tamamen extreme programming (https://pratikprogramci.com/wp-content/downloads/pratik-agile-ozcan-acar.pdf) sekillendirdi. Extreme Programming ile test güdümlü yazilimin ve refactoring yapma kabiliyetinin bir yazilim icin ve onu sekillendirme sürecinde ne anlama geldiklerini bu sekilde ögrendim. Yazilimda cevik olmanin temelinde uygulamayi bir hamur gibi yogurabilme yetisi yatiyor (https://kurumsaljava.com/2012/04/05/cevikligin-boylesi/). Her yeni müsteri gereksinimi ile uygulanin hamur gibi […]

Neden Gpt Modelleri ile Yazılım Yapılamaz

OpenAI modellerinde haftalık limitler var ve yeni modeller Sol ve Astra ile birkaç gün içinde harcanacak token kalmıyor. Bu sorunu aşmak için ben 3 pro hesabı ile çalışıyorum. Bunun yanı sıra görev tipine göre değişik model türleri kullanmaya başladım. Buradaki amaç fazla token yakmadan basit işleri ucuz modellere yaptırabilmek. Buna rağmen her zaman Codex ile […]

Yapay Zeka ve Trunk Başed Calışma

Yapay zeka ile çalışırken feature branch bazlı mı yoksa trunk based mi yani sadece develop ya da main branch içinde mi çalışılmalı? Önce ben nasıl çalışıyorum, ona değineyim. Ben trunk based calışıyorum. Birden fazla opus develop branch üzerinde değişik feature setleri üzerinde çalışıyorlar. Arada bir test ve derleme problemleri çıksada, birbirlerini bekleyip, devam edebiliyorlar. Buna karşıllık […]

Müşteri Ne İstiyor Sorusu

Bir dashboard uı uygulaması geliştiriyorum uzun zamandır. Bilgisayar ekranında geliştirdiğim için responsive olup, olmadığı ile çok ilgilenmemiştim. UI tamamlanınca cep telefonumdan bir bakayım dedim. Bakmaz olaydım ;-) Yüzlerce arayüzün olduğu bir projeden bahsediyorum. Hepsinde diagramlar, tablolar, sıralı veriler vs. Sadece üç prompt ile hepsinin responsive hale dönüşmesini sağladım. Yüzlerce dosya değişikliğe uğramış. Ben şimdi bunları […]

Kod Yazma ve Okuma Devrinin Sonu

İki şey biz yazılımcılar için bitti: 1. Kod yazmak2. Kod review yapmak Birincisini deterministik olmayan ama yine de kod üretme konusunda deterministik olarak sınıflandırabileceğimiz yapay zeka araçları ile çözdük. İkincisi için de deterministik olan araçlar oluşturmamız ve kullanmamız gerekiyor, çünkü yazılımcıların yapay zeka tarafından oluşturulan kodu ne okumaya zamanları var ne de herşeyi anlama kapasiteleri. […]

Okunabilir Kod Gerekiyor mu?

Clean code, KİSS, YAGNI, SRP vb gibi kod yazma teknik ve prensiplerine son tutunmalar devam ediyor. Artık kodun reusable olması gerekmediği konusunda yaptığım paylaşıma gelen yorumlardan bunu anlıyorum. Kod hakkında benim takip ettiğim tek bir teknik yöntem var: uygulamanın kendisi ya da onu oluşturan uygulama özellikleri istediğim davranışı sergiliyorlar mı? Yani ben sadece uygulama davranışlarını […]

Kod Artık Reusable Olmak Zorunda Değil

Yazılım dünyasına en büyük zararı veren şeylerden birisi reuse yani tekrar kullanım ilkesidir. Her zaman “aman bir kere yazın, her yerde kullanın” dendi. SRP – Single Responsibility Principle ın en büyük düşmanıdır. Her projede mutlaka bir commons, core ya da sharedlibs isminde bir dizin vardır. Bir yerlerden bir commons-lib import edersiniz, çünkü içinde her şey vardır.  Ufak […]

Yapay Zeka ve Farklı Disiplinler

Çok uzun bir süredir yapay zekâ desteğiyle bir proje üzerinde çalışıyorum. Düne kadar dünyam Codex, Claude Code, Opus/Fable, GPT Sol ve Astra’dan oluşuyordu. Sadece gereksinimler ve onların çalışır hâle gelmeleri benim için önemliydi. Dün bu dünyayı bırakıp uygulamaların canlıya alınması için gerekli ortamı oluşturmaya başladım. Orası bambaşka bir dünya. Birden kullandığım araçlar ve problemlere yaklaşma […]

Yazılım Yaptırmak İçin Sadece Antropic Modelleri Yeterli mi?

En güçlü Anthropic modelleri bile kendi başlarına bırakıldıklarında vibe coding yapmaktan öteye gidemiyorlar. Yalnızca bu modellerle yazılım geliştiren deneyimli yazılımcılar bile vibe coding yapıyor olabilirler. Çünkü bu modeller kod yazmaya odaklanmış durumdalar ve gereksinimleri derinlemesine analiz ederek eksiksiz bir şekilde koda dönüştürme konusunda yeterli değiller. Bunu dengelemenin benim açımdan tek bir yolu var: Gerekli analiz […]

Yapay Zekâ Çağında Tek Kişilik Startup

Artık tek bir kişi kendi başına startup kurup, gerekli tüm altyapı, üstyapı, pazarlama, seo ve benzeri işleri yapabiliyor. Kendimden örnek vereyim. Bir ürün geliştirmek için önce bir yazılım ekibi kurmanız gerekir. Daha önceki girişimlerimde mobil, uı ve backend, devops kısımlarında çalışacak yazılımcıları bir araya getirerek işe başlardım. Ürün geliştirilirken ya bir grafik tasarımcısına ihtiyacını vardır ya […]

Alet işler, el övünür.

Yapay zekâ, içinde her türlü aracın bulunduğu büyük bir alet kutusu gibidir. Tecrübeli bir yazılımcı, yapmak istediği iş için doğru aracı seçer ve kullanır. Buna karşılık yapay zekâyı bir çekiç olarak görenler, karşılaştıkları her problemi çivi sanmaya başlarlar. Asıl mesele, aleti kullanabilmekten önce hangi problemin hangi araçla çözülebileceğini bilmektir. Ustayla normal ölümlüyü birbirinden ayıran da […]

Prompt Enginering ve Yapay Zekanın Sınırı

Prompt engineering ile bir yazılımcının aynı anda sağlıklı biçimde yönetebileceği feature sayısı çoğu zaman üçü (3) geçmez. Bunun üzerine çıkıldığında context switch yazılımcının zihnini felç etmeye başlar. Üstelik sorun yalnızca feature sayısı değildir. Yapay zekâ dakikalar içinde yüzlerce dosyayı değiştirebilir. Bu hız karşısında yazılımcının bütün kodu incelemesi, testleri değerlendirmesi ve her değişikliğin yan etkisini takip […]

Darboğaz

Eskiden kod yazarken en büyük bottleneck neydi? Yazılımcı. Şimdilerde yapay zekâ kod yazarken en büyük bottleneck ne? Yine yazılımcı. Çünkü bir yazılımcı onlarca ajanı aynı anda orkestre edemez. İki farklı feature üzerinde çalışan iki ajanı takip etmek bile ciddi bir context switch maliyeti oluşturur. Her ajanın ne yaptığını anlamak, verdiği kararları kontrol etmek, ürettiği kodu […]