Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
4 yazı bulundu #refactoring
Clean Code Nedir? Okunabilirlik, Değişim Maliyeti ve 2025'teki İkinci Baskı
Yazılım Tasarımı SERİ 01

Clean Code Nedir? Okunabilirlik, Değişim Maliyeti ve 2025'teki İkinci Baskı

Clean Code, çalışan kodun ucuza değiştirilebilir ve okunabilir olmasıdır: Bookstore'un legacy OrderService'inde aynı sepet Türkçe I tuzağı, kopyalanıp ayrışmış fiyat hesabı ve DateTime.Now yüzünden dört farklı tutar üretiyor. 2025'te çıkan ikinci baskı kitabı Code, Design, Architecture ve Craftsmanship kısımlarıyla yeniden yazdı; seri bu 609 satırlık dosyayı adım adım temizleyecek.

7 Kas 2026 16 dk 5
Clean Code'da Class'lar: Küçük Class, Cohesion ve Değişime Göre Düzenlemek
Yazılım Tasarımı SERİ 09

Clean Code'da Class'lar: Küçük Class, Cohesion ve Değişime Göre Düzenlemek

Class'ın büyüklüğü satırla değil, değişikliğini isteyen actor sayısıyla ölçülür; method'ların field paylaşmaması ve CA1822'nin "static yap" uyarıları düşük cohesion'ın işaretidir. Legacy OrderService'te aynı class'taki iki fiyat hesabı ayrışıp 731,50 TRY teklif edip 690,52 TRY çekiyordu; fiyatı tek bir OrderPricing class'ına toplayıp primary constructor, sealed ve required ile modern C# class'ları kuruyoruz.

7 Kas 2026 13 dk 5
Code Smell Kataloğu: C# Kodunda Kokuyu Tanımak
Yazılım Tasarımı SERİ 12

Code Smell Kataloğu: C# Kodunda Kokuyu Tanımak

Code smell, genellikle daha derin bir tasarım problemine işaret eden yüzeysel bir belirtidir; teşhis değil, bakılacak yeri gösterir. Yazı Fowler'ın 2. baskıdaki 24 smell'ini Mäntylä'nın beş grubuyla haritalıyor, her birini legacy OrderService.cs'te arıyor ve SonarAnalyzer'ın hangilerini yakalayıp hangilerini kaçırdığını gerçek çıktıyla gösteriyor.

7 Kas 2026 12 dk 5
Uygulamalı Clean Code: Legacy OrderService'i Adım Adım Temizlemek
Yazılım Tasarımı SERİ 14

Uygulamalı Clean Code: Legacy OrderService'i Adım Adım Temizlemek

Legacy kodu temizlemenin güvenli yolu önce küçük bir seam ve characterization test'lerle mevcut davranışı sabitlemek, sonra her adımı ayrı commit'te yapmak ve davranış değişikliklerini ayrı fix commit'lerine ayırmaktır. Yazıda 609 satırlık OrderService 16 commit'te, her commit'te testler yeşilken temizleniyor; en yüksek Cognitive Complexity 92'den 10'a iniyor, bilinçli bırakılan smell'ler de gerekçesiyle listeleniyor.

7 Kas 2026 14 dk 3
Blog Haritası