Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Clean Code'da Fonksiyonlar: Küçük Method, Tek Soyutlama Seviyesi ve Guard Clause
Bir method tek bir iş yapmalı ve tek bir soyutlama seviyesinde kalmalı: legacy OrderService'teki 136 satırlık ProcessData guard clause, step-down rule, parameter object ve CQS (Command-Query Separation) ile bölününce Cognitive Complexity 92'den en yüksek 5'e iniyor ve dokuz senaryoda davranış aynı kalıyor. Yazı flag argument'ları, out yerine record dönmeyi, ThrowIfNull gibi guard helper'ları ve aşırı bölmenin bedelini (Ousterhout'un shallow method eleştirisi) gerçek çıktılarla anlatıyor.
Daha Az Bilinen Prensipler: Separation of Concerns, Least Astonishment, Fail Fast, CQS ve GRASP
SOLID dışındaki prensipler günlük kararların çoğunu verir: Fail Fast hatayı açılışta yakalar, CQS sorunun cevabı değiştirmesini engeller, GRASP de bir sorumluluğun hangi class'a ait olduğunu sorar. Options validation ile yazım hatasını yakalamak, Math.Round sürprizi, getter'da yan etki, Explicit Dependencies, Persistence Ignorance ve prensipler çatışınca karar vermek.