Clean Code [ Temiz Kodlama ] Prensipleri – Method Function

Clean Code Refactor prensipleri

0 3.634

Merhaba ,

Eğer okumadıysanız bu serinin ilk yazısı olan Clean Code [ Temiz Kodlama ] Prensipleri – Giriş ile başlamanızı tavsiye ederim.

Önceki yazımızda Temiz Kodlama prensipleri üzerinde genel hatlarıyla tecrübeler edinmiştik , şimdi biraz daha spesifik bir konu özelinde değerlendirme yapacağız.  “METHODS – FUNCTIONS”

Rule Of 7


       İnsanlar kısa süreli bellekte sadece 7 maddeyi tutabilirler.Temiz kod yazarken bu kuralı unutmayalım.

Değişkenler

Methodlarda değişken tanımlamalarımızı Just-in-time yani ilk değer atamasından hemen önce yapılmalı.

 

Parametreler

Methodlarımızın parametre sayılarından bir şeylerin doğru veya yanlış gittiğini anlayabiliriz.  Fazla parametre alan methodlarımız parçalanmalı veya parametre olarak Model almalıdır.

Aşağıdaki örnekte kullanıcı kaydetme işlemi içinde sendEmail , sendBill gibi parametrelerin olması aslında bu method’un doğru kurgulanmadığına işaret. Method hem kullanıcı kaydedip hem de mail gönderme işlemini yapıyorsa Single Reponsible değildir. Birden fazla sorumluluğu olan methodlar parçalanmalıdır.

 

Methodlara kısa bir gitiş yaptıktan sonra İlk önce bir method oluşturmakdaki amaçlarımızı sıralayalım. Aslında bu yazdıklarımız Temiz Kod yazımındaki prensiplerimiz yerine de geçebilir. Bu maddeler ile method refactor için doğru bakış açısını yakalayabiliriz.

  • Tekrarlamayı azaltmak
    • Kendini tekrar etme (DRY – Don’t Repeat Yourself ) prensibini düşünürsek , methodlar birbirini tekrar eden kod parçacıklarını tekilleştirmek için kullanılır.
  • Karmaşıklık ve Girintiler azaltmak
    • Kod bloğu ilk bakışta size karmaşık geliyorsa  ve iç içe bir den fazla if blogu varsa.  Tam beklediğimiz method refactor blokları.
  • Belirsiz niyetlerden kurtul
    • Bazı kod bloklarında yazılımcı için en önemli ipucu method isimleri olur. Niyetin belli olmadığı yerlerde kod method üzerinden işlenebilir.
  • 1 den fazla işlem varsa bölümlendir
    • Tek sorumluluk ( Single Responsibility ) prensibiyle method tek işlem özelinde değerlendirilmelidir. Bu nedenle birden fazla işlemin olduğu methodlar ve kod bloklarını düzeltilmelidir.

 

Method oluşturmak için elimizde 4 farklı madde var, bu maddelerden elde ettiğimiz çıkarımları Temiz kodlama ile birleştirmeye çalışalım. Detaylandırdığımız maddeleri aşağıda inceleyebilirsiniz.

Tekrarlamayı azaltmak 


Bu maddede DRY prensibinden bahsetmiştik. Kod tekrarlamanın yanına kod kopyalamayı da eklemek istiyorum. Copy – Paste sizi tembelliğe itecektir. Bir problemi birden fazla çözüm yolu vardır.  Copy – Paste ile kod tekrarlamak farklı düşünme alternatiflerinizi çöpe atmak demektir.
Genel anlamda kod tekrarlarınızın projemide etkisi ;

  • Okunabilirliği azaltır
  • Kodunuzu daha kompleks hale getirir
  • Hata yapma olasılığınızı arttırır ve bugFix maliyetiniz artar.
  • Bakım (maintance) maliyetiniz artar

 

Karmaşıklık ve Girintiler

 

Yukarıda başlığımızı kısaca açıklamıştık. Şimdi de karmaşıklık ve girinlilere neden olabilecek kod bloklarını Clean-Code prensibiyle çözümleyeceğiz. Ana hedefimiz girintiyi azaltmak

  1.  Exctract Method

    Bu yöntemde önceliğimiz kod bloğunu anlaşılabilir hale getirene kadar methodlara bölmek.

     

  2. Fail Fast

    Kodumuzda hata fırlatıcaksak bunu ana kod bloğundan önce yapmalıyız.  Önce hataları handle et daha sonra iş yapacak kodu yaz.

    Yukarıdaki kodlarda Fail Fast yöntemiyle girintileri minimuma indirdik, okunabilirliği arttırmış olduk.

  3. Return Early

    Fail Fast mantığıyla aynı düşünebiliriz. Fail Fast kazanımlarının hepsi geçerlidir. Methodun işleyişine göre return edilebilecek değerlerin öncelikli olarak geri dönülmesi ile uygulanır.

     

 

 

 

Email adresiniz yayınlanmayacaktır.