Yazılımcıların Altın Kuralları #2

Erdem Köşk
Kodcular
Published in
3 min readApr 27, 2020

Herkese merhaba :) Yeni başladığım serimin ikinci bölümü ile karşınızdayım.

İlk bölümü merak edenler için Yazılımcıların Altın Kuralları #1

Bugün ele alacağımız konular yine yazılım yaklaşımları ve paradigmaları üzerine olacak. Temel olarak yazılım ve developerlık ezbere kod yazan insanlardan daha çok bir içinde felsefe ve sorunlara yaklaşım şekilleri barındıran bir disiplin gibi olmalı diye düşünüyorum.

Warning Warning Houston?

Projelerimizde genel olarak atladığımız ve belkide bizi rahatsız eden bir durum üzerine biraz konuşmak istiyorum. Warningler 😵

Sizde yazdığınız kodu compile ederken uzunca uyarı mesajları gördünüz ve kendinize “Zamanım olduğunda bunu düzeltiyim” dediniz mi ? Yada sizle sürekli konuşan ama umursamadığınız yazılardan hoşnutsuz olduğunuz oldu mu?

O zaman doğru yerdesiniz. Biz yazılımcıların asla boş zamanı olmaz bunu hepimiz çok iyi biliyoruz. Her iş acil her iş yetişmesi gereklidir. Ancak comple kısmındaki bu warningler aslında bizi rahatsız etmek için konuşmuş şeyler değiller .

Sıfırdan yeni bir projeye başladığımızda uyarı yok, karmaşa yok, sorun yok. Ancak kod tabanı büyüdükçe, dikkat etmezsek sorunlar birikmeye başlayabilir. Çok fazla gürültü olduğunda, umursamadığım yüzlerce uyarı arasında gerçekten okumak istediğim uyarıyı bulmak aslında çok daha zor hale geliyor.

Gelelim aslında olması gerekene ve neden önemli olduğuna. Çünkü gemi yandıktan sonra söndürmenin pek bir anlamı olmaz değil mi? Bazı hatalar sizce şuan önemli olmayabilir. Ancak daha sonra büyük problemlere yol açabilirler. Bu sorun asla olmaz demek aslında görece yanıltıcıdır.

Çünkü yazdığımız her kodu sadece kendimiz için yazıyormuş gibi davranmamamız önemlidir.

Derlemenizden gelen uyarılar yararlıdır. Onları fark etmeye başlamak için gürültüden kurtulmanız yeterlidir. Büyük bir temizlik için beklemeyin. Görmek istemediğiniz bir şey göründüğünde, hemen ilgilenin. Uyarının kaynağını düzeltin

Yapıyı temiz tutmak sadece derleme hataları veya test hatalarından uzak tutmakla ilgili değildir: Uyarılar ayrıca kod kalitesini önemli ve kritik bir parçasıdır.

DRY ?

Bazılarımız için alışılmış bir yazılım paradigması olsa da bazılarımız için bu kelime yeni gelebilir yada bir anlam ifade etmeyebilir. Oysa belkide en önemli yazılım yaklaşımlarından biri olan DRY(don’t repeat yourself) her an aklımızda ve yanımızda olmalıdır.

Peki nedir bu dry? Yenir mi içilir mi?

Bu prensip ilk olarak Andy Hunt ve Dave Thomas tarafından formülüze edilmiştir. Temel yaklaşımı adı üzerinde olduğu gibi kendimizi tekrar etmemizle alakalıdır.

Zaman kavramı ve hız bizim sektörün belki en büyük zorluklarından biridir. Amatör bir programcı ile uzmanını ayıran kavram ise belki buna dayanıyor diyebiliriz. Nasıl mı?

Amatör bir programcı kodun temizliğine dikkat etmez. Bir çözüm her yer için uygulanabilir olup olmadığını yada yazılan kodun genellemesine dikkat etmeden, o kod parçasını işine yarayan her yere kopyala yapıştır yapar.

Program görünüşte çalışıyordur ve sorun yoktur. Kopyala yapıştır ile kimsenin eli ağrımaz değil mi?

Aslında burada yapılan hata öyle büyüktür ki birçok yazılım probleminin temeli olabilir. Gelin biraz daha derine inelim 😎.

Kopyalamak Kötüdür

Bir uygulamaya giren her kod satırı aslen gelecekteki hataların potansiyel kaynağıdır. Kodu kopyalama, kod tabanını gereksiz yere şişirir, bu da hatalar için daha fazla fırsat sağlar ve sisteme karmaşıklık ekler. Kopya kod sisteme eklediği şişkinlik, sistemle çalışan geliştiricilerin tüm sistemi tam olarak anlamasını zorlaştırırken, bir konumda yapılan değişikliklerin her yerde ve nerelerde de değiştirilmesi gerektiğinde alakalı bir sorunluluk ekler. DRY, “her bilgi parçasının bir sistem içinde tek, açık, güvenilir bir temsile sahip olması gerektiğini” anlatır.

Genel yazılım prensibini düşünürsek sorumlulukları bölmek aslında bir yazılımcının temel görevidir. Kodları tekrar etmemek bir lüks değil bir zorunluluktur.

Eğer kodu tekrar ediyorsak alsında birçok yazılım prensibine ters gelmiş durumda oluyoruz. Sorumlulukları iyi yönetememiş ve yeteri kadar iyi soyutlama yapamamışız demektir.

Gelecek yazıda görüşmek üzere !

--

--