Kodunu Temizle, Gölgeni Gör: Refaktörün Gizli Felsefesi

Kodunu Temizle, Gölgeni Gör: Refaktörün Gizli Felsefesi

Kod düzenlemek çoğu zaman teknik bir iş sanılır: Fazla satırları sil, değişken adlarını iyileştir, fonksiyonları küçült, testleri düzelt. Dışarıdan bakınca hiçbir şey değişmemiş gibidir. Uygulama aynı ekranı açar, aynı butona basılır, aynı veri kaydedilir. Kullanıcı fark etmez bile. Fakat garip olan tam da budur: Dış dünya yerinde dururken, iç dünyada küçük bir devrim yaşanır. Kodun daha okunur hale gelmesi, yalnızca makineye değil, zihne de nefes aldırır.

Bir programcı eski bir dosyayı açtığında aslında kendi geçmişiyle karşılaşır. Aceleyle yazılmış koşullar, korkuyla çoğaltılmış kontroller, adını kimsenin anlamadığı değişkenler… Bunlar yalnızca teknik borç değildir; zihinsel tortudur. Bir çeşit dijital bilinçaltı. Jung bunu görse muhtemelen şöyle derdi: Gölgen, production ortamında çalışıyor. Çünkü kötü kod çoğu zaman bilgisizlikten değil, kaçınmadan doğar. Düşünmekten kaçınırız, isim vermekten kaçınırız, sorumluluğu bir sonraki geliştiriciye devretmekten utanmayız. Sonra o bir sonraki geliştirici, çoğu zaman biz oluruz.

Refaktör: Küçük Bir Ahlak Egzersizi

Refaktör yapmak, dışarıdan bakıldığında davranışı değiştirmeden yapıyı iyileştirmektir. Felsefi açıdan bakıldığında ise tam bir erdem pratiğidir. Stoacıların sevdiği türden bir alıştırma: Kontrol edebildiğin alana dön, orayı sadeleştir, orada dürüst ol. Müşterinin kararlarını, piyasanın aceleciliğini, yöneticinin son dakika taleplerini hemen değiştiremezsin. Fakat bir fonksiyona doğru ad verebilirsin. Aynı işi yapan üç parçayı birleştirebilirsin. Kendi zihninin karmaşasını başkasına miras bırakmamayı seçebilirsin.

Bu seçim küçümsenmemeli. Çünkü ahlak çoğu zaman büyük nutuklarda değil, kimsenin bakmadığı yerde yapılan küçük düzenlemelerde ortaya çıkar. Silinmiş bir gereksiz yorum, sadeleştirilmiş bir koşul, anlaşılır hale getirilmiş bir sınıf; bunlar karakterin izleridir. Temiz kod yalnızca estetik değildir, başkasının zamanına saygıdır. Gelecekteki kendine bırakılmış bir bardak sudur. Henüz tanımadığın bir meslektaşın zihninde yakılmamış bir yangındır.

Kod düzenleme eylemi bu yüzden meditasyona benzer ama pasif değildir. Bir savaşçının kılıcını bilemesi gibi, geliştirici de zihninin aracını biler. Burada amaç mükemmellik fetişi değildir. Kusursuz kod diye bir put inşa etmek, en az dağınıklık kadar tehlikelidir. Mesele, karmaşayı inkâr etmeden onunla daha olgun bir ilişki kurmaktır. Her sistem zamanla kirlenir; her zihin de öyle. Temizlik bir kez yapılan kahramanlık değil, ritimdir. Nefes almak gibi, masayı toplamak gibi, içindeki gürültüye ad koymak gibi.

Dış Dünya Aynı, İç Dünya Başka

Bir yazılımın dış davranışını değiştirmeden iç yapısını iyileştirmek, insanın kendi karakterini eğitmesine şaşırtıcı biçimde benzer. Dışarıdan aynı kişi gibi görünürsün: aynı kahve, aynı klavye, aynı toplantı. Fakat artık biraz daha az acelecisin. Bir satırı silmeden önce neden orada olduğunu soruyorsun. Bir fonksiyonu bölmeden önce sorumluluğun sınırını düşünüyorsun. Bu teknik dikkat, zamanla etik dikkate dönüşüyor. Çünkü iyi düşünülmüş kod, iyi düşünülmüş hayatın küçük bir modelidir.

Modern dünya bizi sürekli görünür değişimlere çağırıyor: yeni özellik, yeni arayüz, yeni ürün, yeni duyuru. Oysa bazen en derin ilerleme görünmezdir. Bir modülün bağımlılıklarını azaltmak gibi, insan da kendi gereksiz bağımlılıklarını fark eder. Onay ihtiyacı, acele etme refleksi, hatayı saklama arzusu, karmaşayı zeka sanma kibri… Kodun içindeki düğümleri çözerken, kendi düğümlerimizi de görmeye başlarız.

Bu yüzden kod düzenlemek felsefi bir eylemdir. Çünkü varlığın şu sorusuna küçük ama somut bir cevap verir: Daha iyi olmak için dünyayı değiştirmem şart mı? Hayır. Bazen bir satırı daha dürüst yazmak yeter. Bazen gereksiz bir soyutlamayı silmek, egonun bir kıvrımını da siler. Bazen bir değişkene doğru isim vermek, zihindeki sisin dağılmasıdır.

Sonunda temiz kod, yalnızca çalışan kod değildir. Temiz kod, arkasında daha temiz bir niyet bırakan koddur. Dış dünya aynı kalabilir; ekran aynı açılır, kullanıcı aynı işlemi yapar. Fakat geliştiricinin içinde küçük bir oda havalanmıştır. Ve insan dediğin şey, belki de tam olarak budur: Kimse görmese bile içindeki odayı toplamaya devam eden varlık.

Bir yorum “Kodunu Temizle, Gölgeni Gör: Refaktörün Gizli Felsefesi”

  1. Kodu açınca geçmişteki panik halimle karşılaşmak çok tanıdık geldi, o yorumları okuyunca kendime gülümsüyorum. Temizlik iyi geliyor gerçekten, hem koda hem de zihne.
    -YorumCanavarı

    Reply link does not work in your browser because JavaScript is disabled.

Bir yanıt yazın

Ad ve E-posta zorunlu değildir.