Trie / Önek Ağaçları

Verilerin belirli bir düzen içerisinde saklandığı veri yapılarına bilgisayar bilimcileri, mühendisleri ve programcıları olarak aşinayızdır. Bu veri yapılarından olan ikili arama ağaçları (binary search trees), dengesi bozulmayacak şekilde (herhangi bir sol alt ağaç ile sağ alt ağacın yüksekliği arasındaki farkın bire eşit veya birden az olacağı şekilde) doldurulması koşuluyla, içerisinde herhangi bir verinin bulunup bulunmadığını bizlere O(logN) (N = ağaç içerisindeki eleman sayısı) çalışma zamanı içerisinde bildirebilir. Bu ağacın saklayacağı verinin türünü belirlemek de bizlerin elindedir; karakter katarlarını (string) depolayabileceğimiz gibi, sayıları da bu veri yapısı içerisinde saklayabiliriz. Read more...

Ev mi, Ofis mi?

Belki, bugüne kadar bu soruyu sormaya gerek duymadınız; çünkü o zamanlar evden çalışma düzeni, çok beklendik ve yaygın bir çalışma düzeni haline gelmemişti. COVID-19 salgınının patlak vermesi ve SARS-CoV-2 virüsüyle biyolojik kapsamda mücadele edebilmek için halihazırda geliştirilen bir aşı veya ilacın olmaması, sosyal mesafe ve dolayısıyla evden çalışma kavramının önem kazanmasına neden oldu. Her ne kadar mavi yakalı çalışanlar için bu çalışma düzeni uygulanabilir olmamış olsa da (umarız bu da en yakın zamanda mümkün hale gelir), bir çok beyaz yakalının çalışma ortamının İnternet ve dizüstü bilgisayarlar sayesinde taşınabilir olması, onların salgın sonrası evlerinden çalışabilmelerini mümkün hale getirdi. Read more...

Open API Istemci Kod Üretimini Spring Boot ve Gradle'da Otomatikleştirmek

Web tabanlı yazılım sistemlerinde görev almış yazılım mühendislerinden istemci/sunucu (client/server) iletişim desenine aşina olmayanına rastlamamışızdır. Bu iletişim deseninde, bir web servisi, -HTTP protokolünde olmak üzere- çağrılabilecek birtakım bitim noktalarını (endpoint) diğer servislerin kullanımına açmaktadır. Diğer servisler, sunucu olarak isimlendirilen bu servisle, bu bitim noktalarını kullanarak iletişime geçebilmekte olup, istemci olarak isimlendirilmektedir. İstemciler tarafından yapılan HTTP çağrıları, isteğe göre değiştirilebilen parametre girdileriyle çalışan fonksiyonlar ve/veya metodlar olarak tasarlanmaktadır. Read more...

How to Automate OpenAPI Client Code Generation in Spring Boot using Gradle

I believe that all web application developers are familiar with the client/server communication pattern. In this pattern, a service (named as a server) exposes a set of HTTP endpoints that can be consumed by others (which are named as clients) to make itself communicable by them. Clients usually contain parameterised code segments (namely function and/or methods) to make HTTP calls to those endpoints. Read more...

Spring Boot ve Resilience4j /2

Mikroservislerin hata dayanıklılığını (fault tolerance) tesis etmenin birinci yolu olan sigortalardan (circuit breaker) serimizin ilk yazısında bahsetmiştik. Serinin ikinci yazısı olan bu yazımızda ise, gemi bölmesi (bulkhead) tasarım desenine değineceğim. Read more...