Şu an bir şirkette çalışıyorum, 30+ microservis, elastic search, mongo, sqlite, frontend için 2 farklı framework, en az 500 tane kütüphane, typescript, pug, sass, docker, kubernetes.... o kadar çok ve farklı teknoloji kullanıyoruz ki, çoğunun arkaplanda nasıl çalıştığından haberim bile yok, dökümantasyonu okuyup basacak kadar vaktim oluyor. dandik bir feature eklemek için 1 hafta uğraşıyorum, sonunda en basit iş bile o kadar komplike oluyor ki, kesin bug çıkıyor, benden sonra bakanın anlamak için uğraşması gerekiyor falan filan.
Tüm uygulamanın aynısını eski yöntem Python + herhangi bir templating dili ile iki ayda çıkarım ben normalde, ama niye bu kadar zahmete giriyoruz anlamıyorum. Log takibi için awk ile 10 saniyede işimi hallederdim, şimdi bi web arayüzü var, 20 mb css/js yüklensin de süslü püslü butonların arasından logları bulayım diye ter döküyorum.
Noldu da bu hale geldik? Mevcut durumun göremediğim ne faydası var? Web uygulaması aq bi yerden veri çekip html basıyorsun en fazla, bunun için bu kadar uğraşılır mı?
Verimsiz beyinlerin "ben yaptim yeni oldu" hareketinin sonucu. Kodlama verimlidir, verimli olmasi icin ortak programlama dili olusturulmalidir seklinde 2006 larda aktif sekilde atilim yapiyordu avrupalilar. Bizde kodlama kelimesi 2-3 senedir dillerde. Cok normal bunu yasamaniz.
açıkçası sektöre yeni giren her teknolojik eleman işleri daha basitleştireyim derken her yeni parçada karmaşıklaştırmasında sebep bence.
bu iş nasıl düzelir, kodları da yapay zekalara yazdırırlarsa o zaman insanın sadece metin şeklinde ne yapılması gerektiğini yazması yeterli olur, o zaman bu hengame insan işinden çıkar.
ayni sekilde dusunuyorum. once isleri otomatik yapalim diye dusunduler bircok teknoloji cikardilar. sonra bu teknolojiler her seye uyumlu olsun dediler ve bunlara bircok konfigurasyon eklediler. artik programlama dili ile uygulama yazmak yerine bu konfigurasyonlari yonetmek, ogrenmek, gerektiginde de bunlar icinde bug aramak durumunda kaliyoruz. konfigurasyon dosyasina bir satir eklemek icin bir suru dokumantasyon okumak gerekiyor, ustune bir de arka tarafta bircok olay gerceklesiyor bizim hic haberimiz yok.
onun icin bunun sonunda onumuze cikacak akim KISS yani "keep it simple, stupid" olacaktir en.wikipedia.org Minimalist araclar ve kodlar, sadece tek bir is yapan cok fazla konfigurasyon barindirmayan paketler, kullandigim programlama dilinin gucu ve kontrolun bizde oldugu hissini ariyorum cogu zaman. Ozellikle bircok corba olmus paketlerin icinde bir problemin nedenini aradigim zamanlar.
ben halen vb6'da yazıyorum.
ilk versiyonu 1987'de (32 sene önce).
web uygulaması yapmıyorum tabiki.
görüntü analizi, veritabanı, robotik kontrol işlerinde gayet başarılı ve basit.
türkiyede 5, yurtdışında 4 fabrikası olan bir holdingin kalite takip sisteminide vb6'da yazmaya devam ediyorum.
teknik açıdan hiçbir sıkıntısınıda hissetmiyorum.
iş artık kompleksleşiyor, kaynak oldukça önceden vakit ayrılmayan işlere bile çok fazla vakit ayrılıyor. bundan 10- 15 sene once UI/UX için harcanan efor büyük şirketler hariç sıfıra yakınsarken artık çok ufak yazılım evleri bile bunu önemser hale geldi.
işin çığırından çıkan ise biraz teknolojinin gazına gelme kısmı. adamlar max 10 kullanıcılı, 2-3 kişiyle geliştirilen inhouse projeyi microservice ile geliştirmek istiyor, işte o zaman anlamsız oluyor.
iş yüzbinlerde kullanıcı concurrent olsun, hızlı deploy yapabileyim vb. ihtiyaçlar varsa microservice doğru tercih oluyor.
16 byte'da yazılmış paint kodunu da ekliyeyim şuraya da işin nereden nereye geldiği ile ilgili referans olsun :)
www.sizecoding.org
+1 alembic,
musterilerin talepleri ve rekabet daha komplike urunler gerektiriyor. bunun icin de bir cok tool, framework.
zaten arkaplanda ne yaptigini anlamaniza da gerek yok, api yi tam kavrarsaniz.
django kullanacaksiniz diyelim, onun da arkaplanda ne yaptigini bilmeyeceksiniz; kendi yazdiginiz backend django dan daha az buga sahip olabilir mi?
@alembic bir keresinde 25 milyon kullanıcısı olan bir projede çalışmıştım, o büyüklükte normal evet çünkü tek sunucuda o yükü kaldıramıyorsun. Ama en fazla 5k kullanıcısı olan proje de onu kullanıyor, o acayip geliyor bana. Böyle modayı takip etcem diye saçma sapan kıyafetler giyen insanlar gibiyiz şu aralar.
@plutongezegendegilmi ihtiyacı olmayan yerlerde kullanımının iki nedeni var gördüğüm.
1- ürünü pazarlama
2- developer'ın yeni teknolojiler ile çalışarak piyasada daha çok tercih edilme ihtiyacı
çoğu teknoloji, framework'u kullanmanın negatif etkisi bulunmuyor ama iş microsevices e geldiğinde getirdiği karmaşıklık inanılmaz olabiliyor.
martin fowler'ın bir yazısı var bunula ilgili.. adam kısaca "you must be this tall to use microservices" diyor. @emrahday'in dediği gibi KISS gibi akımlar var bunun tersini savunan ama Türkiye'de kime anlatabilirsin :)
martinfowler.com