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 […]

Bir Taşla İki Kuş

Bir zihin düşünün. Sayısal düşünmeye yatkın ve mantık güdümlü. Matematik ve benzeri alanlarda oldukça iyi. Mühendislik eğitimi alıyor ve yıllarca yazılım geliştiriyor. Böyle bir beyin, dünyaya teknik bir perspektiften bakmaya; her şeyi ölçmeye, karşılaştırmaya ve sınıflandırmaya koşullandırılmıştır. Şimdi bu beynin yapay bir beyinle karşılaştığını düşünelim. Bu yapay beyin, sözünü ettiğimiz gerçek beyinden bazı işleri daha […]

Vibecoder ve Yazılım Mühendisi Arasındaki Fark

Tipik bir vibecoder şu şekilde çalışır: Problem → AI → Çözüm Yapay zeka her problemi doğru çözme potansiyeline sahip değil. Bazen bir sorunun etrafında döndüğünü ve doğru çözümü üretemediğini görmek mümkün. Bu sebeple basit işler için vibecoder belki istediği çözüme ulaşabilir, ama teknik anlamda çözüm geliştirme odaklı çalışmadığı ve bu konuyu tamamen yapay zekaya bıraktığı […]

Programcılıktan Geriye Ne Kalacak?

Yazılımda ilk döngüler goto ile yazıldı. Daha sonra while, for, do-while gibi terimlerle bu işlem tamamen derleyicilere bırakıldı. Fonksiyonel programlama ile gelen map-reduce ile döngülerin üstü tamamen örtüldü. Şimdi artık onu bile kullanmıyoruz. goto kullanmayan ama gotoyu anlayanlar iyi programcı oldular. Yarın kod yazmayan ama kodun altında ne döndüğünü anlayanlar da iyi programcı olmaya devam […]