Ölçeği büyük projeler geliştirirken ,
Javascript, Html,Css,C#, Sql gibi bir çok teknololojiyi bir arada kullanmanız gerekebilir.Ancak bu teknolojilerin her birinin yapısı farklıdır.
Bu sebeple kullandığınız teknolojilerin sınırlarını belirlemeniz gerekir. Bu da bize daha okunaklı, bakıma ve geliştirmeye açık kod yazma imkanı sunar.
- > Readability (Okunabilirlik)
- > Changeability (Değiştirilebilirlik)
- > Extensibility (Genişletilebilirlik)
- > Maintainability (Sürdürülebilirlik)
Javascript Dosyası .js uzantılı,Css Dosyası .css uzantılı, Html Dosyası .html uzantılı,C# kodları .cs uzantılı dosyalarda ve Sql kodları da uygun bir yapıda olmalıdır.
Clean Code (Temiz Kod) Yazarken Nelere Dikkat Etmeliyiz?
-- İsimlendirme
- Class İsimlendirmeleri
- Method İsimlendirmeleri
Kötü bir method isimlendirmesi yaparsanız,metodun anlaşılması zaman alır.İyi isimlendirilmiş bir method hem anlaşılır hemde okunaklı olur.
Metotlar bir fonksiyonelliği yerine getirdiklerinden isimleri ‘fiil’ olmalıdır.
Metotlar da classlar gibi single responsibility prensibine uymalı ve sadece tek bir fonksiyonelliği yerine getirmelidir.Metot isimlendirmesinde And, If, Or, gibi bağlaçlar geçiyorsa,metot birden fazla işi içerisinde barındırıyor mu diye kontrol etmeniz gerekir.
Kısaltma kullanımı
İsimlendirmelerde kısaltma kullanımı kodlamada yapılan yanlışlardan biridir.
Yazdığınız kodu başka bir geliştirici okurken anlayabilmesi kolay olmalıdır.
Boolean isimlendirmeleri
İyi bir boolean isimlendirmesini,okuyucuya sanki cevabı “doğru” veya “yanlış” olan bir soru soruyormuş gibi yapmalısınız.
- Boolean değişkenlere true false atamalarında dikkat etmeniz gereken nokta, elinizdeki değişkene sonucu aşağıdaki gibi direkt olarak bu boolean üzerinden atayabilirsiniz.
- Böylece aşağıda olduğu gibi 8-9 satırlık kodu tek satırda yazabilirsiniz.
- Koşul cümlelerinde ters koşul kullanmak da kodu okuyanlar için kafa karışıklığı yaratmaktadır.Mümkün olduğunca pozitif anlamlı koşullar kullanmanız gerekir.
- Bir grup seçenek arasından seçim yapmak gerekirse, bunu static olarak vermektense enumlara bağlayıp kullanmak daha yerinde olacaktır.
- Böylece kodla ilgili bir kısmı değiştirmek istediğinizde,o kısmın kullanıldığı yerleri tek tek bulup değiştirmek yerine,ilgili enum opsiyonunu değiştirmeniz yeterli olacaktır.
- Elinizde,belli değerlere karşı belli sonuç döndüren bir yapı varsa bunu hard-coded olarak kod içerisinde tutmaktansa, database’de bir tabloda json formatında veya key value şeklinde tutup ilgili key’e ilgili value’yi dönen bir fonksiyon üzerinden devam etmeniz daha anlaşılır olur.
- Validasyonları iç içe if kullanarak yapmak çoğu yazılımcının düştüğü bir yazım yanlışıdır.Bu şekilde bir validasyon zincirinin okunması ve aynı zamanda hangi ifin hangi else denk geldiğinin anlaşılması zordur.
- Bunun yerine if'leri alt alta sıralayıp ilk yakalanan validasyondan itibaren kodu return etmek daha doğrudur.
-- Fonksiyonlar
Kod tekrarından kurtulmak
Dry(don't repeat yourself) bir kod prensibidir.
Bir fonksiyonelliği kodun birden fazla kısmında tekrar eden bir şekilde yazdıysanız ve daha da kullanmaya ihtiyaç duyabileceğiniz potansiyelde bir kod ise bu kod parçacığını metotlaştırmalısınız.
Olabildiğince Küçük..
Fonksiyon yazarken göz önünde bulundurmamız gereken en önemli kriterlerden birisi fonksiyonların olabildiğince küçük olmasıdır.
Bir fonksiyon 100’lerce satırdan oluşmamalıdır en fazla 20 satırda olmalıdır.
Yalnızca tek işlev
Her fonksiyon yalnızca bir işlevselliği gerçekleştirmeli ve bunu da en efektif şekilde gerçekleştirmelidir.
Fonksiyonu yazan yazılımcı da onu ileride çağıracak olan yazılımcı da o fonksiyonu tek bir amaç için çağırmalıdır.Bu da fonksiyonun isminden net bir şekilde anlaşılabilmelidir.
Aşağıdaki kod örneği ise koşul yapısının amacını net olarak belli eden ve geliştiricinin rahatlıkla okuyup anlayabileceği kod örneğidir.
- Clean kod yazarken,kullandığımız dilin bize verdiği artılardan da yararlanmalıyız.Örneğin aşağıdaki iki kod parçacığı da aynı işi yapmakta ancak ilk kodun 5 satırda yaptığını ikinci kod tek satırda yapmakta ve ne yapmak istediği de çok net bir şekilde anlaşılabilmektedir.
Exception Handling
- Tanımladığınız exceptionlar,hatanın yeri ve kaynağı hakkında detaylı bilgi içermelidir.Bunun için exceptionlarınıza ve loglarımıza açıklayıcı hata mesajları eklemelisiniz.
- Try-catch ile exception yönetirken eğer try blogunun içerisi çok fazla büyüdüyse ve tryın kapsadığı kod parçası ilk bakışta try ile beraber ele alınamıyorsa,kod parçacığını fonksiyon haline getirip fonksiyonu try içerisinden çağırın.
Classlar
Classlar'ınızı tasarlarken aynı fonksiyonlarda olduğu gibi olabildiğince küçük olması gerekmekte.
Fonksiyon yazarken bu küçüklüğü satır sayısıyla ölçebilirken classlarda ise sorumluluklar ile ölçebiliriz.Bir class sorumluluğunun dışında işler yapan fonksiyonları barındırmamalıdır ve bu sorumluluklar da olabildiğince daha ufak alt sorumluluk başlıklarına ayrılmalıdır.
Classınızı isimlendirirken kısa,sade ve anlaşılır bir isim bulun.
Commentler
- Gereksiz yorum
- Niyeti belli etmeye çalışan yorum
Settingler
Kod yazarken hiç bir setting Hard-Coded olarak kodun içerisinde yer almamalı.Kodun içerisinde yer alan settingler için her bir setting değişikliği istendiğinde yeni bir geliştirme,deploy ve live’a çıkış anlamına gelir.
Db’de tutulan settingler için ise istenen her değişiklik DB ye atılan bir sorgu ile halledilebilir kod dışarıdan yönetilebilir olur.
-----------------------------------------------------------
Kader ÖZEN
Computer Engineer
Yorumlar
Yorum Gönder