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

Sunucular İçin Güvenlik Önlemleri

Gitea üzerinden bir sunucuyu kaybettikten sonra, git repolari icin spring boot tabanli yeni bir uygulama olusturdum. Bu benim bir günümü bile almadi. Https üzerinden git repository islemlerini yapabiliyorum. Bunun yaninda github actions özelligini de implemente ettirdim. Her commit ile istedigim bir repo icindeki uygulamayi test sunucularina deploy ettirebiliyorum, yani bir nevi CI / CD pipeline. […]

Fıkra

Syntax check, autocomplete, type inference, refactoring, debugger, Stack Overflow, framework, compiler olmadan üretkenliği dramatik biçimde düşecek bir yazılımcı, yapay zekâ tarafından üretilmiş çalışan kodu “gerçek yazılım geliştirme değil” diye küçümsüyor. Fikra bu kadar! Yazılım geliştirme hiçbir zaman çıplak insan zekâsıyla yapılan bir faaliyet olmadı. Hep araçlarla genişletilmiş bir zihinsel faaliyet oldu. Yapay zekâ sadece bu […]

Programcı Mesleği Değer Üretmiyor

Kıymetli olan kodun kendisi mi yoksa canlıda onun çalışan hali mi? Günün sonunda kimse yazılmış kodla ilgilenmez. Önemli olan tek şey, onun çalışıyor ve görevini yerine getiriyor olmasıdır. Bu sebeple kodun çalışacağı ortamı hazırlamak ve onu çalışır hale getirmek çok daha önemli bir iştir. Yapay zeka öncesi kod yazmak çok maliyetli ve zahmetli bir işti. […]

Merak

Siradan bir Java yazilimcisi JVM icinde ne dolaplar döndügünü pek bilmez. Sadece merakli olanlar bunu bilirler ve bu merak onlari daha iyi bir yazilimci yapar. Ama bilmeseler de iyi kod yazabilirlerdi. Hicbir yazilimci bir derleyicinin nasil calistigini umursamaz bile. Sadece merakli olanlar bunu bilir ve bu merak onlari daha iyi bir yazilimci yapar. Ama bilmeseler […]