Bir hafta önce, üç yıldır üzerinde çalıştığım bir servisin son commit'ine baktım. Toplam -2,847 satır. Hiçbir özelliği kaybetmemiştik; aksine üç yeni şey eklemiştik. Ama kod tabanı küçülmüştü. Bu uzun zamandır kendime hediye ettiğim en güzel histi.

Yazılım hakkında öğrendiğim her şey beni şu fikre götürdüyor: az kod, iyi koddur. Bu söz tek başına eksik kalıyor; çünkü amacın daha az yazmak değil, problemi daha iyi anlamak olduğunda az kod yazmak bir sonuç haline geliyor.

Erken soyutlamadan kaçınmak

Üç defa kullanmadan önce bir şeyi soyutlama. Bu kuralı ilk duyduğumda safça görmüştüm. Sonra her seferinde iki kez kullanılan ama dördüncüsünde tutmayan soyutlamaları silerken anladım: bir desen, ancak gerçekten tekrar ettiğinde desen olur. Geriye kalan, bizim onu desen olarak görme arzumuzdur.

Soyutlama bedavaya gelmez. Her soyutlama, anlaması gereken bir sonraki kişinin önüne bir okuma ödevi koyar.

Soyutlamanın bedeli sadece bilişsel değil. Hata izini sürerken iki kat dosya açmak gerekiyor; testler iki kat dolaylı oluyor; refactor etmek zorlaşıyor.

Bazen kopyala-yapıştır en iyi mimaridir

Junior'ken bunu duyduğumda inanmamıştım. Şimdi şöyle düşünüyorum: iki yerde benzer görünen ama tam olarak aynı olmayan kod, ileride birbirinden bağımsız değişmek isteyecek. Bunları erken birleştirdiğimde, sonra bağ kıvılcımlar çıkararak kopuyor.

Çerçeveden önce probleme bakmak

Yeni bir özellik için ilk soruyu artık şuradan başlatıyorum: bunu çözmenin en aptal hali ne olurdu? Cevap genelde işe yarayan ama gurur duyamayacağım bir şey oluyor.

Silmeye alışmak

Bir kod tabanında en sevdiğim commitler -451 / +12 şeklinde olanlar. Birinin oturup bir özelliği basitleştirdiğini, kullanılmayan bir dalı temizlediğini, iki haftadır kimsenin dokunmadığı bir yardımcıyı kaldırdığını gösteriyor.

Sonuç niyetine

Az kod yazmak demek tembel olmak demek değil. Aksine: problemi daha çok düşünmek, gerçekten ne yapmak istediğimizi daha açık ifade etmek, yeni bir özellik için cazip ama gereksiz olanı reddetmek demek.

Yazılım bir hizmet sektörü değil; bir bakım sektörü. Yazdığımız her şey bir gün yine bizim önümüze geri gelecek.