Author Archives: Özcan Acar

About Özcan Acar

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor. KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.

Loop Engineering ve Refactoring

Gelelim refactoring konusuna. Programci iken en sevdigim konulardan birisi idi. Refactoring ile kodun yeniden yapilandirilmasini kastediyorum. Refactoring her daim yapilabilecek bir aktivite degildir. Yapilabilmesi icin yerine getirilmesi gereken cok önemli bir sart bulunmaktadir. Test mevcudiyeti. Cevik olmanin temelini aslinda refactoring dedigimiz aktive sagliyor. Onun icin de testler lazim. Bu yazimda buna deginmistim. Simdi yeni bir […]

Yapay Zeka Çağı ve Kod Dökümentasyonu

Eskiden kod ve test kodu dokümentasyondu. Örnegin Java’da bunun icin @Javadoc isminde özel bir yapi bile var. Ben kodun icinde dokümentasyon yapmayi hic bir zaman tasvip etmedim, cünkü kod cok hizli degisebilen bir mevhum ve metotlar ve siniflar icinde birakilan yorumlar zaman icinde gecerlilklerini yitiriyorlar. Ben testlerin, özellikle onay/kabul testlerinin gercek dokümentasyon olduklari savini tasiyordum. […]

Yapay Zeka İle Çalışma Modellinin Evrimi

Loop engineering yapmaya kadar evrilen kendi yapay zeka serüvenimi prompt yazma üzerinden size adim adim aktarayim. Simdilerde gpt gereksinim analizlerini yapiyor ve loop planlarini otomatik olarak LOOP.md dosyasina yaziyor. Opus bu dosyayi alip, gerekli implementasyonu yapiyor. Bundan sonraki adim ne olacak sizce?

Döngü Planları

Bir derleyici ile interaksiyona girmek ne kadar mantikli? Kimse yapmiyor degil mi? Peki bir LLM le interaksiyona girmek ne kadar mantikli? Herkes yapiyor degil mi? Her ikisi icin de interaksiyon anlamli bir yaklasim degil. Bu isi sizin neden oldugunuz bir dag bogaza dönüstürür. Bizler yapay zeka ile calismayi ne sekilde ögrendik? Prompt yazarak. Cogu programci […]

Loop Engineering – 2. Bölüm

Loop engineering demistik en son, oradan devam edelim. Loop enginneering’in ne oldugu konusuna diger yazilarimda deginmistim. Ben bunu günlük hayatimda nasil uyguluyorum, bunlara örnekler vererek devam etmek istiyorum. Loop engineering yaptigim degisik senaryolar var. Ben “bugünden itibaren loop engineering yapacagim” demedim. Kendimi icinde buldum, cünkü kullandigim yeni arac, claude code buna yatkinmis. Ben loop engineering […]

Intent Based Programming ve Intent Specific Language (ISL)

Eskiden programci olarak nasil soruna cevap arardim. Bu durum tamamen degismis durumda. Artik ne sorusunun pesindeyim. Programlama tarihi de LLM’ler ile birlikte nasil sorusundan ne sorusuna dogru evrilen bir soyutlama tarihine dönüsüyor. Günümüzde programlama paradigmalarinin evrimine canli, canli sahit oluyoruz: Imperatif -> Deklaratif -> Niyet Tabanli (intent based) Programlama Niyet tabanli programlama ile ne kast […]

Yapay Zeka Araç Kullanımı Nasl Evrildi?

Yapay zeka araclari kullaniminin zaman icinde bende nasil degistigini kisaca paylasayim. – 2022 baslarinda IIntelliJ IDEA bünyesinde Github Copilot plugini kullanmaya basladim. O zamanlar hatirladigim kadariyla chat modu yoktu. Sadece autocomplete yapma özelligi ile ben kod yazarken bana destek oluyordu. Bunu ilk gördügümde, yolculugun nereye gidecegini anlamistim. – 2023 + 2024 de plugine chat özelligi […]

Hala Prompt Engineering mi Yapıyorsunuz?

Komple bir envanter yönetimi sistemini (dashboard, envanter kalemleru, depolar, hareketler, depo transferleri, sayimlar, receteler, siparis önerileri, satin alma siparisleri, mal kabulleri, tedarikciler, raporlar bölümleri; angular, spring boot backend, sayisiz yeni api, dto, mapper, service, entity siniflari, liquibase scriptleri, unit ve entegrasyon testleri ile) loop engineering ile 3 gün icinde tamamladim. Kendin kodu yazmaya kalsaydim, muhtemelen […]

Loop Engineering

Ok, time for the next mind shift. Artik prompt engineering degil, onun yerine loop enginering yapiyorum. Ikisinin arasindaki fark ne? Prompt engineering türünde yapay zeka ile sürekli interaksiyon halindesiniz. Prompt veriyorsunuz, o birseyler yapiyor, siz sonuca bakiyorsunuz, düzeltmek istedikleriniz icin yeniden bir prompt yaziyorsunuz ve bu döngü sürekli bu sekilde devam edip, gidiyor. Kisaca prompt […]

Fable 5 Masal Oldu

Birisi Fable 5 i hacklemis ve Mythos özelliklerini ortaya cikarmis. Claude 1000 saat test ettik, hersey güvenli diyordu :) https://lnkd.in/eHpgzN2K Bende su an Fable 5 calisiyor ama icerde Opus 4.8 e routing yapiyor olabilir. Zaten güvenlik söz konusu olunca default Opus 4.8 e yönlendiriyordu promptlari. Kac gün oldu Fable 5 cikali? 4 gün, 5 gün? […]

Fable ile Chatgpt Nasıl Beraber Çalışırlar?

Bilgisayarimda claude code fable ve chatgpt desktop sürümünü birbirleri ile birlikte calisacak sekilde kullaniyorum. Chatgpt analiz konusunda, fable ile teknik implementasyon tarafinda daha iyi. Aklima gelen ilk sey dogal olarak, benim aradan cekilerek, birbirleri ile sohbet halinde benim taleplerimi yerine getirebilip, getiremeyecekleri oluyor. Bu dogrudan mümkün degil, ama dolayli olarak yapilabiliyor. Birlikte calisabilmeleri icin sagladiklarim: […]

Gereksinim Analizi

Bir ürün gelistirmek icin muhattap alinmasi gereken tek sahis müsteridir. En ideal sartlarda müsteri SIKlikla yazilim ekibi ile bir araya gelir ve sorulari cevaplar. Cogu zaman aslinda müsterinin de ne istedigini bilmedigi ortaya cikar, ama yine de ürüne dair bir vizyon gelistirmek ve gerekli ürünü ortaya koymak bu sekilde kolaylasir. Müsterinin yazilim ekibi ile bir […]

Tcp İle Udp Arasındaki Farkı Bilmek

Bilgisayar mühendisi udp ile tcp farkını bilmek zorunda değil. Neden bilmek zorunda oldugunu abstraction leak üzerinden anlatayim. Evet, cogu zaman bilmek zorunda degil. Ama bilmesi gerektigi an geldiginde ve bu farki bilmediginde, gerekeni yapamaz ya da cözüm üretemez ya da sorunu cözemez. OSI (Open Systems Interconnection) modeli ag iletisimi 7 katmana ayirir. En tepede uygulamanin […]

Yapay Zeka İle Nasıl Çalışıyorum

Yapay zeka ile degisen calisma tarzimi örnek olabilmesi acisindan sizinle paylasmak istiyorum. Artik IntelliJ / Android Studio uygulamalarini yapay zekanin yaptigi degisiklikleri takip etmek icin kullaniyorum. Cogu zaman commit penceresindeyim ve üzerinde degisiklik yapilan ya da yeni eklenen dosyalari, ne yapildigini anlamak icin editörde acarak, inceliyorum. Bir prompt ile aldigim netice tatmin edici ise, hemen […]

Yeni Soyutluk Seviyesi

Soru net olarak şu:  LLM’ler programlamanın özünü mü değiştiyor yoksa bir sonraki soyutluk katmanına hazırlık mı? Enformatik tarihine baktığınızda, bu sorunun cevabını net olarak görüyoruz.  Bugünkü çalışma modeli: Müşteri -> Gereksinim -> Programcı -> Prompt -> LLM -> Kod Bir üstteki soyutluk seviyesi Müşteri -> AI -> Ürün Yanı ne olacak? Yeni soyutlama ya da […]

İşin Özü

Şimdi kısa bir yazılım tarihine göz atalım. Bit ve bytelar ile başlayan şey daha sonra makina kodu, assembly, c, java, çatılar, dsl, no-code ve llm olarak devam etti. Biz şu anda bu zincirin en tepesinde duruyoruz. Yani programcılığa en soyut seviyeden bakıyoruz. Her seviye bizim program yazış tarzımız üzerinde etkili oldu. Çalışma tarzımız değişti, ama […]

Yazılım Artık Epistemolojidir

Yazlilm bir ontoloji olmaktan cikip, yapay zeka ile epistemoloji olma yoluna girdi. Teknoloji ve varligini konusurken (nasil programlanir, nasil calisir, framework nedir vs), onun yerine birdenbire bilinc nedir (skynet), LLM caginda bilmek nedir, uzmanlik nedir gibi konulari konusuyoruz artik. Bu gecis artik ne yazik ki kolay degil. Bu yazimda teknolojik fay hatlarindan bahsetmistim: Bu artik […]

Teknoloji Ötesi

Kusuruma bakmayin arkadaslar, ama büyük bir degisim icindeyiz yazilim camiasi olarak ve topyekün teknolojinin arkadasindaki epistemolojik sorulara yönelmemiz gerekiyor, cünkü mevzu artik teknoloji, onun kullanimi ve bu konuda ne kadar iyi oldugunuz degil. Cevap bulmamiz gereken sorular var. Bunlar: – Uzmanlik nedir? – Ben artik bir programci olarak kalabilir miyim? – Rolüm ne olacak? – […]

Artık Kod Yazmaya Gerek yok

Artik kod yazmamiza gerek yok. Son 10 paylasimima bakarsaniz, yazdiklarimin ana temasi bu noktaya isaret etmektedir. Örnek olarak derleyicileri verdim. Bu konuyu biraz daha irdelemek istiyorum. Bir derleyici ve bir LLM ayni seyler degiller, ama prensiplte cok benzer calisiyorlar. Ortak özellikleri ve farkliliklarina programci perspektifinden inceleyelim. Programcinin yazilim konusundaki rolünün baska bir alana kaydigi konusunda […]