Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
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.
Coupling ve Cohesion: İyi Tasarımın İki Ölçüsü, Connascence ve Law of Demeter
İyi tasarım, parçalar arası bağın (coupling) zayıf, parçanın içindeki bütünlüğün (cohesion) yüksek olmasıdır; connascence bu bağı türüne göre derecelendirir, Law of Demeter ise object'lerin birbirinin içine uzanmasını sınırlar. Coupling türleri ve cohesion seviyeleri, altı parametreli constructor'da connascence of position, TimeSpan(10) tuzağı ve Tell, Don't Ask ile cüzdan bakiyesini korumak.