İyi bir programcı olmak için temiz kod (clean kod) yazmak çok önemlidir. Clean Code kavramı Robert C. Martin’in Clean Code kitabıyla özdeşleşmiş durumdadır. Kitapta temiz kod yazmak, doktorun ameliyattan önce uzun süre el yıkamasına benzetilmektedir.
Peki temiz kod nedir?
Clean Code (Temiz Kod), bir kodun diğer yazılımcılar tarafından da kolay okunup anlaşılması, üzerinde rahatlıkla geliştirme yapılabilmesi olarak tanımlanabilir.
Anlaşılabilir kod yazmak, kodun geliştiricisi ya da başka bir geliştirici tarafından kolayca anlaşılabileceği anlamına gelir. Tüm kodlar mantıklı ve açık bir şekilde yazılır. Kodun farklı bölümleri arasındaki bağlantılar açık ve nettir. Herhangi bir geliştirici tarafından her işlevin, yöntemin ve değişkenin görevi kolayca anlaşılır.
Bir kod nasıl kolay ve anlaşılır olur?
Aşağıdaki koşullar sağlandıkça kodun anlaşılması kolaylaşır:
- Okunabilirlik (Readability) > Kod basit bir şekilde yazılıp kolayca anlaşılabilir.
- Değiştirilebilirlik (Changeability) > Kod hızlı bir şekilde yeni ihtiyaçları karşılayabilir.
- Genişletilebilirlik (Extensibility) > Yeni gereksinimler kolayca geliştirilebilir.
- Sürdürülebilirlik (Maintainability) > Gelecekte koda bakım yapılabilir olmasıdır.
Neden kötü kod yazarız?
Kötü kod yazmamızın birçok sebebi olabilir. Bu nedenler; işi yetiştirmek için acelemizin olması, zamanımızın yetişmemesi, aynı işte çalışmaktan bıkmış olmamız, çalışan bir kod parçasını değiştirmek istemememiz, çok fazla işimizin olmasıdır. Herkes bu sebeplerle kötü kod yazmış olabilir ve sonra temizleyeceğini düşünmüştür fakat Leblanc yasasına göre “daha sonra eşittir asla” dır. 😊
Bir projenin başında çok hızlı ilerlerken zaman geçtikçe çok yavaşlamış olunuyor çünkü programa eklenen her yeni özellik karmaşıklığa sebep oluyor ve bu karmaşıklık bir süre sonra üretkenliği sıfıra kadar düşürüyor. Bu noktada sistemi yeniden tasarlamak gerekiyor fakat çok fazla kaynağa ve zamana ihtiyaç duyuluyor. Bu durumda temiz kod yazmak aslında profesyonel hayatta kalma meselesidir.
Temiz kod yazma sanatı nedir?
Temiz kod yazmak resim yapmaya benzer. İyi resim ile kötü resim arasındaki farkı anlayabiliriz fakat bu bizim iyi kod yazdığımız anlamına gelmez. Temiz kod yazmak küçük teknikleri belirli bir disiplin ile uygulamaktır. Bazı yazılımcıların doğasında vardır, bazıları bunun için emek harcaması gerekir. Kod algısı olan bir programcı kötü kodu görüp onu temiz koda nasıl çevireceğini bilir.
Bazı programcıların temiz koda bakış açısı nasıldır?
Clean Code Prensipleri
Clean code serimizin bu yazısında bazı prensipler ele alınmıştır. Bu ilkelerin ayrıntılarını ve diğer prensipleri ikinci yazımızda detaylı olarak anlatacağız.
1. Anlaşılır ve örneği olan tanımlamalar kullanmak
Bir parametre, fonksiyon veya sınıf ismi tanımlarken bunu herkesin rahatça anlayabileceği, örneğin sınıfın içeriğine bakmadan sadece bu sınıfın ismi ile neler yaptığını bilmesini sağlayacak bir isim kullanılmalıdır.
2. Bir fonksiyon birden fazla iş yapmamalı
Yazdığımız her fonksiyonun yalnızca bir işi yapması gerekir. Böylelikle bu fonksiyonu hem tekrar tekrar kullanılabilir (reusable) olmasını sağlarız hem de karmaşıklığı en aza indirmiş oluruz.
Yanlış tanımlama:
Doğru tanımlama:
3. Hiçbir fonksiyon tekrar etmemeli
Yazdığımız fonksiyonlar ve sınıflar tekrar etmemeli. OOP prensipleri uygulanmalıdır.
Yanlış tanımlama:
Doğru tanımlama:
4. Değişkenler en üstte tanımlanmalı
Yazdığımız bir sınıfta değişkenlerin hepsi en üstte olmalıdır. Tüm değişkenlerin bir arada görülmesi kodun okunabilirliğini kolaylaştırmaktadır.
5. Bir sınıf çok fazla fonksiyon içermemeli
Eğer yazdığınız sınıftaki fonksiyon sayısı aşırı derecede fazla ise (max: 9–10 olmalı) sınıf parçalanarak daha modüler ve anlaşılır bir yapı oluşturulmalıdır.
Biz yazarız ve okuyucularımız vardır. Yazarlar okuyucuları ile iyi iletişim kurmakla yükümlüdür. Bu yüzden kod yazarken okuyucularımız olduğunu unutmamalıyız. Kodun okunmadığını ve asıl önemli olanın yazmak olduğunu düşünebilirsiniz fakat bu şekilde olmadığını yeni kod yazmaya başladığımızda daha önce yazılan kodları okumaya başladığımızda anlarız. Yani kodu kolay okumak yazmayı da kolaylaştırır.
KAYNAKÇA
- Clean Code By Robert Cecil Martin
- Clean Code (Temiz Kod) Nedir ?. Clean Code (Temiz Kod) nedir ? Nasıl… | by Onur Dayıbaşı | Architectural Patterns | Medium 01.08.2023
- Clean Code (Temiz Kod) Nedir? Nasıl Yazılır? (linkedin.com) 01.08.2023
- Clean Code (Temiz Kod) Nedir? – Onur Özden Web Çözümleri (onurozden.com.tr) 02.03.2023