logologo
Ai badge logo

Bu madde yapay zeka desteği ile üretilmiştir.

Temiz Kod (Clean Code)

fav gif
Kaydet
viki star outline
1630835720516.png
Clean Code : Daha Okunabilir ve Bakımı Kolay Kod Yazma Teknikleri

Yazılım geliştirme sürecinde kodun sadece çalışır olması yeterli değildir; okunabilir, anlaşılır ve sürdürülebilir olması da büyük önem taşır. Temiz Kod (Clean Code) kavramı, yazılım geliştirme dünyasında kodun iyi tasarlanmış, anlaşılır ve hatalara karşı dayanıklı olmasını ifade eder. Bu yaklaşım, hem bireysel geliştiriciler hem de ekip çalışmaları için büyük avantajlar sağlar. Robert C. Martin'in "Clean Code: A Handbook of Agile Software Craftsmanship" kitabında detaylandırdığı bu yaklaşım, yazılım mühendisliği dünyasında önemli bir yere sahiptir.

Temiz Kod

Temiz kod, kolay okunabilen, bakımı yapılabilen ve genişletilebilir kod anlamına gelir. Temiz kod, gereksiz tekrarları ortadan kaldırır ve anlaşılır bir mantık akışı sunar. Robert C. Martin'in "Clean Code" kitabında belirttiği üzere düzenli, sade ve işlevsel olmalıdır.

Temiz Kod Yazma İlkeleri

Anlamlı ve Açık İsimlendirme

Kodun okunabilirliği açısından değişken, fonksiyon ve sınıf isimleri açık ve anlamlı olmalıdır. Rastgele harf ve sayılar yerine, değişkenin veya fonksiyonun amacını anlatan isimler kullanılmalıdır.


Örnek:

//Kötü örnek
  def clc(a, b):
  return a * b / 100

//İyi örnek
  def calculate_discount(price, discount_rate):
  return price * discount_rate / 100

Kısa ve Amaç Odaklı Fonksiyonlar

Bir fonksiyon tek bir işlevi yerine getirmeli ve mümkün olduğunca kısa olmalıdır. Uzun ve karmaşık fonksiyonlar, kodun anlaşılmasını zorlaştırır ve hata ayıklamayı güçleştirir.


Örnek:

//Kötü örnek: Birden fazla işi yapan fonksiyon

  def process_order(order):
  validate_order(order)
  calculate_total(order)
  apply_discount(order)
  generate_invoice(order)
  send_email(order)

//İyi örnek: Tek sorumluluk prensibine uygun

def validate_order(order):
  pass

def calculate_total(order):
  pass

def apply_discount(order):
  pass

def generate_invoice(order):
  pass

def send_email(order):
  pass

Kodun Anlaşılabilirliği İçin Yorum Satırlarını Azaltmak

Clean code, kendini açıklayan bir yapıya sahip olmalıdır. Gereksiz yorum satırları yerine, kodun açık ve net olması tercih edilmelidir.


Örnek:

//Kötü örnek
//Kullanıcının yaşını kontrol edip reşit olup olmadığını döndürüyor

def check_age(age):
   if age >= 18:
       return True
   return False

//İyi örnek: Fonksiyon adı açıklayıcı
def is_adult(age):
   return age >= 18

Kod Tekrarından Kaçınma (DRY - Don't Repeat Yourself)

Kod tekrarını önlemek ve kodu modüler hale getirmek, yazılımın sürdürülebilirliğini ve okunabilirliğini artırır. Aynı kod bloklarını tekrar tekrar yazmak yerine, ortak bir fonksiyon haline getirmek daha iyi bir yaklaşımdır.


Örnek:

//Kötü örnek

final_price1 = price1 - (price1 * discount_rate / 100)
final_price2 = price2 - (price2 * discount_rate / 100)

//İyi örnek
def calculate_final_price(price, discount_rate):
  return price - (price * discount_rate / 100)

final_price1 = calculate_final_price(price1, discount_rate)
final_price2 = calculate_final_price(price2, discount_rate)

Tek Sorumluluk Prensibi (SRP - Single Responsibility Principle)

Her fonksiyon ve sınıf tek bir sorumluluğa sahip olmalı ve modüler bir yapıda düzenlenmelidir. Modülerlik, kodun parçalar halinde bağımsız olarak geliştirilmesine ve bakımının daha kolay yapılmasına yardımcı olur. Birden fazla görevi yerine getiren sınıflar ve fonksiyonlar, kodun yönetimini zorlaştırır.


Örnek:

//Kötü örnek: Kullanıcı bilgilerini yöneten ve aynı zamanda veritabanına kaydeden sınıf

class User:
  def __init__(self, name, email):
    self.name = name
    self.email = email

  def save_to_db(self): //Veritabanına kaydetme işlemi
    pass  


//İyi örnek: Ayrılmış sınıflar
class User:
  def __init__(self, name, email):
    self.name = name
    self.email = email


class UserRepository:
  def save(self, user): // Veritabanına kaydetme işlemi
    pass  

Kodun Test Edilebilir Olması

Temiz kod, birim testlere uygun olacak şekilde yazılmalıdır. Kodun farklı bölümleri bağımsız olarak test edilebilir olmalıdır.


Örnek:

import unittest

def add(a, b):
  return a + b

class TestMathOperations(unittest.TestCase):
  def test_add(self):
    self.assertEqual(add(2, 3), 5)

if __name__ == "__main__":
  unittest.main()

Kodu Formatlamak ve Standartları Kullanmak

Kodun belirli bir standartta yazılması, okunabilirliği artırır. Örneğin Python'da PEP8 gibi standartlar kullanılmalıdır.


Örnek:

//Kötü Örnek
def myFunction(): print("Hello")

//İyi Örnek
def my_function():
  print("Hello")


Temiz Kodun Avantajları

  • Okunabilirlik: Kod daha anlaşılır ve ekip içinde daha kolay paylaşılabilir hale gelir.
  • Bakım Kolaylığı: Hatalar daha hızlı bulunur ve düzeltilir.
  • Geliştirme Sürecinde Verimlilik: Kod tekrar yazılmak zorunda kalınmaz, bu da zamandan tasarruf sağlar.
  • Hata Oranının Azalması: Daha az hata içeren kod, daha sağlam ve güvenilir olur.

Kaynakça

Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008.

Kent Beck, Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999.

Python Software Foundation, PEP 8 – Style Guide for Python Code, 2001.

TechCareer, Clean Code Sözlük. Erişim adresi: https://www.techcareer.net/dictionary/clean-code

CoderSpace, "Clean Code Nedir?". Erişim adresi: https://coderspace.io/sozluk/clean-code/

TechCareer, Temiz Kod Nedir?, 2024. Erişim adresi: https://www.techcareer.net/blog/temiz-kod-clean-code-nedir

GeeksforGeeks, Characteristics of a Clean Code, 2022. Erişim adresi: https://www.geeksforgeeks.org/characteristics-of-a-clean-code/

GeeksforGeeks, Tips to Write Clean and Better Code, 2024. Erişim adresi: https://www.geeksforgeeks.org/tips-to-write-clean-and-better-code/

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarBaşak Karaman13 Şubat 2025 12:36
KÜRE'ye Sor