Daha Tatlı Bir Git Log
Apr 26, 2020
02:40
Daha Tatlı Bir Git Log

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
Git Commit Mesajı Nasıl Yazılmalı
Apr 19, 2020
13:25
Git Commit Mesajı Nasıl Yazılmalı

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.

Git
Thread Local Nedir?
Apr 12, 2020
21:50
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
Feb 13, 2019
22:49
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
Feb 11, 2019
23:37
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
Feb 10, 2019
18:03
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
Feb 4, 2019
22:42
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?
Jun 5, 2017
07:59
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
May 28, 2017
02:12
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
May 13, 2017
01:03
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
May 6, 2017
20:18
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
Jul 7, 2015
23:41
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?