Slf4j: MDC Kullanarak Log Takibini Kolaylaştırma
Slf4j: MDC Kullanarak Log Takibini Kolaylaştırma

Bu yazıda birden fazla sınıfın log yazdığı bir log dosyasında spesifik bir HTTP isteğine ait logları nasıl buluruz sorusuna kolay uygulanabilir bir cevap paylaşacağım.

User Threads vs Daemon Threads
User Threads vs Daemon Threads

Java’da birden fazla görevi eş zamanlı gerçekleştirmek istediğimizde Thread‘lerden faydalanırız. Yeni bir Thread nesnesi oluşturur, constructor argümanı olarak bir Runnable geçeriz veya Thread sınıfını extend eder, void run() methodunu override ederiz. Bunları daha önce yaptıysanız belki Thread sınıfının üzerindeki setDaemon(boolean on) methodunu da farketmişsinizdir. Peki kimdir bu daemon?

Bootstrap 4 - Grid Sistemi
Bootstrap 4 - Grid Sistemi

Çoğunlukla yazılımcılar için ön yüz geliştirmek bir baş belası haline gelir. Asıl işimiz bu olmadığı için bir türlü derinlemesine öğrenmeyiz.

Eğer üzerinde çalışmakta olduğumuz proje geniş bir kitleye hitap etmiyorsa, arayüzünün başkalarından farklı ve daha şık olmaya ihtiyacı yoksa, önemli olan kullanılabilirlikse; ben genellikle Bootstrap üzerine geliştirilmiş ücretsiz bir tema bulup özelliklerimizi onun üzerine entegre ediyorum. Böylece ön yüz geliştirmedeki zamandan ettiğimiz tasarruf ile daha sağlam bir backend geliştirebiliyoruz.

Docker ile WordPress Kurulumu ve Https
Docker ile WordPress Kurulumu ve Https

Yakın zamanda blogumda bir takım radikal değişiklikler yaptım. Bunlardan en önemlisi wordpress altyapısına geçmem oldu. Yaklaşık 12-13 yıldır kullandığım Blogger hizmetinden ayrılmanın burukluğu ile bu kadar özgür olduğum bir platformda blog yazmanın sevinci birbirine karıştı. Hem wordpress ile yazı yazmaya elim alışsın hem de wordpress’e geçiş tecrübelerimi paylaşayım amacıyla bu yazıyı yazıyorum.

Data Abstraction Nedir, Nerede Bulunur?
Data Abstraction Nedir, Nerede Bulunur?

Yazılım geliştirme prensiplerinin en önemlilerinden birisi olan abstraction, yani soyutlama, kendi içinde iki çeşide ayrılıyor. Bunlar procedural abstraction ve data abstraction. Bu yazıda kısaca data abstraction‘ın ne olduğundan bahsetmeye çalışacağım.

Öncelikle abstraction ve encapsulation terimleri ne anlama geliyor ondan bahsetmek istiyorum çünkü bu terimler tanımları çok yakın olduğundan genellikle birbiri ile karıştırılıyorlar.

Visitor Design Pattern
Visitor Design Pattern

Bu gece de çirkin kod yazmaktan bıkmış haldeyken kendime bir süredir temiz kod yazmak ile ilgili ahkam kesmediğimi hatırlattım. Hepimiz inheritance, polymorphism, abstraction, encapsulation gibi nesne tabanlı programlama konseptlerini geliştirdiğimiz projelerde bolca kullanıyoruz. Belki bir iş mülakatında sorsalar bunlar ne diye bülbül gibi anlatırız da. Peki yazılımın kalite çıtasını Allahuekber dağlarına kadar çıkartabilecek olan bu güçlü araçları yeterince doğru kullanabiliyor muyuz?

Adapter Pattern: Farklı Sistemler, Aynı Arayüz
Adapter Pattern: Farklı Sistemler, Aynı Arayüz

Bir sistem geliştirirsiniz ve bu sistemin işlevini görebilmesi için başka sistemlere entegre olması gerekir. Bazen o kadar eski teknolojiler ile geliştirilmiş sistemlere entegre olmak zorundasınızdır ki, bu amaç için yazdığınız kod geliştirmekte olduğunuz projeye hiç yakışmaz, sürekli gözünüzü tırmalar. Özetle, elinizde başka bir sisteme ait bir interface vardır ve bu interface’in yapısı sizin projenizin yapısına uygun değildir.

Builder Pattern Kullanarak Daha Temiz Kod Yazmak
Builder Pattern Kullanarak Daha Temiz Kod Yazmak

Yazılım geliştirirken sık sık onlarca parametre alan metodlar geliştirmek zorunda kalmışsınızdır. Eğer temiz kod yazma konusunda özen sahibiyseniz bu tarz metodlar yazmak sizi oldukça rahatsız etmiş ve zamanla çeşitli alternatif çözüm yolları edinmişsinizdir.

Bu yazıda bu soruna “Builder Pattern” kullanarak bir çözüm bulmaya çalışacağız. Bu yazıyı yazarken Uzi Landsmann‘ın blogunda yazdığı “Builder pattern with a twist” yazısından esinlendim. İngilizce ile aranız iyiyse o yazıyı da okumanızı tavsiye ederim.

Shell Scripts: Case Komutu
Shell Scripts: Case Komutu

Linux Shell Script Geliştirmek diye başladığım yazı dizisinin bir diğer yazısında daha birlikteyiz. if/elif/else komutlarını sık sık kullanmaya başladığınızda farkedeceksiniz ki, bir çok zaman tek bir değişkenin değerini kontrol ediyoruz. Örneğin komut satırından gelen parametrenin değeri 1 ise şunu yap, 2 ise bunu yap, 3 ise başka birşey yap. Böyle tek bir değişkeni kontrol etmemiz gerektiğinde if/elif/else yazmak çok sıkıcı bir hale dönüşebiliyor. Peki değişkenin ismini sadece bir kere yazsak ve alabileceği her değer için sadece çalışacak kodları söylesek?

Bellek ve Disk İstatistiklerini Gösteren Shell Script Geliştirelim
Bellek ve Disk İstatistiklerini Gösteren Shell Script Geliştirelim

Merhaba arkadaşlar. Bu yazıda, shell script yazma konusunda geliştirdiğimiz becerileri, bir takım linux komutlarını ve özelliklerini kullanarak basit bir program yazacağız. Bu program, format edilmiş bir şekilde bellekteki ve sabit disklerimizdeki boş alanı gösterecek. Bu yazıyı bazı komutların üzerinde durmak istediğim için adım adım yazacağım. Öncelikle kemerlerimizi bağlıyoruz.