Category Archives: Yazılım Hakkında Genel Düşünceler

Yazılım Hakkında Genel Düşünceler

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

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

Alan Bilgisi

Belli bir piyasa icin bir ürün gelistiriyorsunuz. Domain yani alan bilginiz yoksa, ürünün müsteri gereksinimlerini tatmin etme sansi neredeyse sifirdir. Alan bilgisine hakimiyet cok büyük bir önem tasimaktadir. Ne kadar iyi bir yazilimci olursaniz olun, eger alana uzaksaniz ve oradaki sürecleri anlamiyorsaniz, bunlari implemente edecek kodu yazamazsiniz. Ben ürün gelistirken alan konusundaki eksiklerimi su sekilde […]

Frontend First

Yapay zeka destekli calisirken uctan uca bir uygulamayi gelistiriyor olmak cok önemli. Kesinlikle frontend icin ayri, backend icin ayri analiz ve implementasyon yapilmamasi gerekiyor. Zaten klasik calisma yöntemlerinde ekipleri en cok mesgul eden durum da bu olmustur; kendi baslarina, koordine etmeden is yapmalari ya da backendin arayüzleri istedigi sekilde yönlendirmeye calismasi. Örnegin backend tarafinda gerekli […]

Çevik Yazılımın Rönesansı

Yazilim dünyasinda tas üzerinde tas kalmiyor :) Dogru bilinenler ve uygulamalar artik kendiliginden ortadan kalkmaya yüz tutuyor. Bunlarin basinda garip toplantilar var. Digerlerine diger yazilarimda deginecegim. Düsünsenize ortada yazilim ekibi bile kalmamis, tek bir yazilimci kocaman bir ajan ordusunu orkestre ediyor ve toplanmaya gönüllü olanlar sadece yönetici tayfasi, cünkü yapacak baska isleri yok. Gözünüzde canlandirin […]

Hangisi Daha Verimli

Hangisi daha verimli? 1. Frontend programcisi api gereksinimlerini backend programcisina delege ediyor ve IO veri yapilari üzerinde uzlasma saglamalari gerekiyor. Test, entegrasyon vs derken aradan uzun bir zaman geciyor ve api tam istenildigi sekilde calismayabiliyor. Bu beraberinde uzlasma seanslari getiriyor. Frontend programcisi backend ve api development konularinda kendisini tamamen saliyor ve UI harici bir is […]

Konuyu Bilmiyorlar

Yapay zeka ile gelinen son nokta… 1. En radikal yazilimcilar yazilimi tam anlamiyla birakti ve sadece gereksinimlere ve testlere odaklaniyolar. 2. Is yerinde yapay zeka kullanmasi yasak olanlar gizli gizli kendi bilgisayarlarinda kodu yazdirip, google drive ya da baska bir storage üzerinden bu kodu alip, kopyala, yapistir yapiyorlar. Bunlar aslinda birinci grupta olan yazilimcilar. 3. […]

Takım Olayı Bitmiştir

Bilyorum bunlar cok radikal söylemler, ama ben daha önceki yazilimci tecrübelerimi güncel tecrübelerimle kiyasladigim zaman ortaya ckan görüsler bunlar. Gülüp gecebilisiniz. Nasil olsa kisa bir zaman sonra kendiniz deneyimleyeceksiniz. Ben size hizlandirilmis halini anlatiyorum, yani spoiler :) Simdi söyle bir sürecten geciyorum. Eskiden promptlarimin cok detayli, düsük cümlesiz, net ve acik olmasina dikkat ederdim. Zaman […]

Test Edenler Kazandı

Ben sahsen “ben programciyim, test yazmam” diyen cok programci gördüm. Bunlardan hala cokca var. Simdilerde ise bu programcilarin yapay zekanin ürettigi kodu test etmekten baska ellerinde hicbir secenek kalmamis olmasi ne kadar ironik degil mi :) Test bilgisi, yetisi ve isteklilgi yazilimda her daim iyi yazilimciyi kötüsünden ayiran bir faktör olmustur. Yapay zekanin yazilimdaki hakimiye […]

Güven İyidir Ama Kontrol Daha Iyidir

Güven iyidir, ama kontrol daha iyidir der almanlar. Ben yapay zekanin yazdigi koda bakmiyorum, dogru yaptigina güveniyorum. Lakin kontrolü de elden birakmiyorum, ama bunu kodu okuyarak yapmiyorum. Kod okuyarak zaten hatalarin cok kücük bir kismi bulunabilir. Ben yazilan kodu dolayli olarak kontrol ediyorum. Burada her uygulama özelligi icin onay / kabul kriterleri tanimliyorum. Daha sonra […]

İpek Böceğinden Güzel bir Kelebeğe

Gelen bir soru: Hocam selam bende bir yazılım geliştiricisiyim ve yapay zekayla kod yazma alanında uzmanlaşmak istiyorum bu konuda bana yardımcı olur musunuz? Ne yapmalıyım nasıl bir yol izlemeyim.hangi aracı kullanmalıyım gibi.suanda codex cli kullaniyorum. Şimdiden teşekkürler Cevabim: 1. Kendine cok ama cok zor bir proje sec hemen, aylarini ya da yillarini alacak bir sey […]

Bakış Perspektifimizi Temelden Değiştirme Vakti

Artik yapay zeka destegi ile yapilan yazilimlari tam anlamiyla blackbox olarak görebiliriz. Eskinden birim testleri yazarak uygulamayi whitebox iceriden test etme egilimi vardi. Bu cok anlamli sonuclar veren bir aktivite degildi, cünkü fake entegrasyonlar yapilarak test etmeye calismak bir hayal dünyasi kurmak ve beklentileri kontrol etmek gibi birseydi. Bunun yerine onay/kabul testleri ile blackbox olan […]

Hiçbir Şey Artık Eskisi Gibi Olamaz!

Artik yazdigi koda bakmiyorum bile, cünkü benim stilimi ve olusturdugum mimariyi kopyaliyor. Onun yazdigi kodu benim yazdigim koddan ayirt etmek bile zor. Iyi bir is ayrimi yaptik: ben gereksinimlere odaklaniyorum, o gerisini hallediyor. Bu benim icin kötü mü ya da yazilimci yeteneklerimin körelmesine mi neden oluyor? Evet :) Atin ölümü arpadan olsun. Buraya kadarmis! Bundan […]

Yapay Yeka Neden Daha İyi Programcı Ya da Mevcut Programcılar Neden Yetersiz?

Ikisini kiyaslayarak ilerleyelim.. Yapay zeka milyarlaca parametrelik islem kapasitesi ile daha kolay bir mental model olusturabilir. Bir progracinin konuyu algilamasi ve buradan yola cikarak mental model olusturmasi cok zaman alir. Bu model cok eksiktir ve problemin her yönünü dikkat almis degildir. Bircok programci mental model olusturmak icin gerekli soyutlama yetisini tam olarak gelistirememislerdir. Yapay zeka […]

Neden Okumalıyız!

Günümüz yazilimcisinin hayatta kalma mücadelesini destekleyecek tek aktivite, soft skillerini gelistirmesidir. Bunun basinda iletisim geliyor. Iletisim icin de genis bir kelime hazinesi ve ifade gücü gerekli. Kelime hazinesi nasil genisletilir ve iletisim becerisi nasil kazanilir? Öncelikle sunu bilmek gerekiyor; düsünce ve hayal dünyasi kelime hazinesinin büyüklügü ile dogrudan orantili. Sadece yeni kelime ögrenerek, iletisimi güclendirmek […]

Kod Yazmak Hamalllıkmış

Yillarca kod yazarak hamallik yapmisiz. Bu yüzden yazilim teknikleri, metotlari vs gelisememis, ayni seyleri tekrar tekrar pisirip, önümüze koymuslar, biz yazilimcilar da hype dan hype a kosup, durmusuz, buna da yazilim demisiz. Ben teknik nedenlerle problem yasamayan bir yazilim projesi görmedim. Her zaman sorun yazilimcinin kendisi olmustur. Verdigi yanlis kararlar, bilgi yetersizligi, over-engineering yapmasi vs […]

Yeni Dönemin Programcilari

Yazilimda esas olan kurgu ve akistir. Genel hatlari ile verileri bagimliliklari ile birlikte kurgulayamazsaniz ve birbirleri ile olan iliskilerde veri akisini düzenleyemezseniz, uygulama ya istenileni yapamaz ya da sig bir sekilde yapabilir. Bu temel prensipleri yapay zeka araclarini kullaniyor olsaniz bile degistiremezsiniz. Kisaca neyin nasil yapilmasi gerektigi hakkinda detayli bilginiz ya da fikriniz yoksa, sizi […]