Daha Tatlı Bir Git Log
Daha Tatlı Bir Git Log
Git

git log, Git versiyon kontrol sisteminde oluşturulmuş commit geçmişini tarihsel olarak sondan başa doğru sırasıyla konsola yazan bir Git komutudur. Tek başına kullanıldığında oldukça sıkıcı bir görünüme sahip olan git log komutunu birkaç parametre ile daha tatlı bir hale getirebiliyoruz.

Git Commit Mesajı Nasıl Yazılmalı
Git Commit Mesajı Nasıl Yazılmalı
Git

Kaynak kodda yaptığımız bir değişikliği versiyon kontrol sistemine kaydederken yapmamız gereken en önemli maddelerden bir tanesi bu değişikliği iyi yazılmış bir mesaj ile açıklamaktır. Peki iyi bir commit mesajını diğerlerinden ayıran özellikler nelerdir? Bu yazıda dünya genelinde kabul görmüş bazı standartları göreceğiz.

Thread Local Nedir?
Thread Local Nedir?

Bu yazıda Java dünyasında sıkça kullanıldığına veya bahsedildiğine şahit olduğumuz ThreadLocal sınıfını inceleyeceğiz. ThreadLocal sınıfı belirlediğimiz nesnelerin sadece aynı thread tarafından erişilebilir olmasını sağlar. Bu sayede thread safe olmayan nesneleri thread safe kullanmış oluruz. Bir ThreadLocal nesnesi içerisine yazdığımız nesne, ThreadLocal‘e yazan thread tarafından çalıştırılan tüm methodlar tarafından okunabilir olacaktır. Gelin bu güçlü aracı avantajları ve dezavantajları ile inceleyelim.

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.