Temiz Kod Yazma Sanatı: Anlaşılabilir, Sürdürülebilir ve Etkili Kod İçin İlkeler - TEKNOLOJİ - BİLGİ MERKEZİ | Bilginin Merkezi

Temiz Kod Yazma Sanatı: Anlaşılabilir, Sürdürülebilir ve Etkili Kod İçin İlkeler - TEKNOLOJİ - BİLGİ MERKEZİ | Bilginin Merkezi

Temiz Kod Yazma Sanatı: Anlaşılabilir, Sürdürülebilir ve Etkili Kod İçin İlkeler


25 Eylül 2025

Yazılım geliştirme dünyasında, yalnızca çalışan bir kod yazmak yeterli değildir. Kodun okunabilir, anlaşılabilir ve sürdürülebilir olması da kritik öneme sahiptir. Temiz kod, geliştirme sürecini hızlandırır, hataları azaltır ve ekip çalışmasını kolaylaştırır. Bu makalede, temiz ve okunaklı kod yazma ilkelerini adım adım inceleyeceğiz.

Neden Temiz Kod Yazmalıyız?

Temiz kod yazmanın birçok faydası vardır:

  • Okunabilirlik: Kodun kolayca anlaşılmasını sağlar, böylece diğer geliştiriciler (ve gelecekte siz) kodu daha hızlı kavrayabilir ve değiştirebilir.
  • Sürdürülebilirlik: Kodun bakımı ve güncellenmesi kolaylaşır. Yeni özellikler eklemek veya hataları düzeltmek daha az zaman alır ve daha az risk taşır.
  • Test Edilebilirlik: Temiz kod, birim testleri yazmayı kolaylaştırır. Bu da kodun kalitesini artırır ve hataları erken tespit etmenizi sağlar.
  • Ekip Çalışması: Temiz kod, ekip üyelerinin birbirlerinin kodunu anlamasını ve işbirliği yapmasını kolaylaştırır.
  • Maliyet Tasarrufu: Uzun vadede, temiz kod yazmak geliştirme maliyetlerini düşürür. Hataları düzeltmek ve kodu değiştirmek daha az zaman alır, bu da daha az kaynak harcaması anlamına gelir.

Temiz Kod Yazma İlkeleri

Şimdi, temiz kod yazmak için uygulayabileceğiniz temel ilkelere bir göz atalım:

1. Anlamlı İsimler Kullanın

Değişkenler, fonksiyonlar ve sınıflar için seçtiğiniz isimler, ne yaptıklarını açıkça belirtmelidir. Kısaltmalardan ve belirsiz isimlerden kaçının. Örneğin:

Kötü Örnek:

int d; // Geçen günler

İyi Örnek:

int gecenGunSayisi;

2. Fonksiyonları Kısa ve Öz Tutun

Her fonksiyon tek bir işlevi yerine getirmelidir. Fonksiyonlar ne kadar kısa olursa, o kadar kolay anlaşılır ve test edilebilirler. İdeal olarak, bir fonksiyon 20 satırdan daha uzun olmamalıdır. Fonksiyonunuz çok uzunsa, onu daha küçük, daha spesifik fonksiyonlara ayırmayı düşünün.

Kötü Örnek:

void hesaplaVeYazdir(int sayi1, int sayi2) { int toplam = sayi1 + sayi2; int fark = sayi1 - sayi2; System.out.println("Toplam: " + toplam); System.out.println("Fark: " + fark);}

İyi Örnek:

int hesaplaToplam(int sayi1, int sayi2) { return sayi1 + sayi2;}int hesaplaFark(int sayi1, int sayi2) { return sayi1 - sayi2;}void yazdirSonuc(String mesaj, int sonuc) { System.out.println(mesaj + ": " + sonuc);}void hesaplaVeYazdir(int sayi1, int sayi2) { yazdirSonuc("Toplam", hesaplaToplam(sayi1, sayi2)); yazdirSonuc("Fark", hesaplaFark(sayi1, sayi2));}

3. Yorumları Doğru Kullanın

Kodunuzu açıklamak için yorumları kullanın, ancak aşırıya kaçmayın. Kodun kendisi zaten açıklayıcı olmalıdır. Yorumlar, kodun neden böyle yazıldığını veya karmaşık mantığı açıklamak için kullanılabilir. Yorumlarınız güncel kalmalıdır. Kodu değiştirdiğinizde, yorumları da güncellemeniz gerekir.

Kötü Örnek: (Açık olanı tekrar açıklayan yorum)

int x = 5; // x'e 5 değerini ata

İyi Örnek: (Kodun amacını açıklayan yorum)

// Kullanıcının girdiği verileri doğrula.if (kullaniciVerisiGecerli(veri)) { // ...}

4. Tekrar Eden Koddan Kaçının (DRY - Don't Repeat Yourself)

Aynı kodu birden fazla yerde yazmaktan kaçının. Tekrar eden kodu bir fonksiyona veya sınıfa taşıyın ve bu fonksiyonu veya sınıfı tekrar tekrar kullanın. Bu, kodun bakımını kolaylaştırır ve hataları azaltır.

Kötü Örnek:

// Veritabanı bağlantısı 1Connection conn1 = DriverManager.getConnection(url, user, password);Statement stmt1 = conn1.createStatement();ResultSet rs1 = stmt1.executeQuery(query);// Veritabanı bağlantısı 2 (Aynı kod tekrar ediyor)Connection conn2 = DriverManager.getConnection(url, user, password);Statement stmt2 = conn2.createStatement();ResultSet rs2 = stmt2.executeQuery(query);

İyi Örnek:

Connection getVeritabaniBaglantisi() throws SQLException { return DriverManager.getConnection(url, user, password);}// ...Connection conn1 = getVeritabaniBaglantisi();Statement stmt1 = conn1.createStatement();ResultSet rs1 = stmt1.executeQuery(query);Connection conn2 = getVeritabaniBaglantisi();Statement stmt2 = conn2.createStatement();ResultSet rs2 = stmt2.executeQuery(query);

5. Kodunuzu Düzenli Tutun

Kodunuzu düzenli tutmak için boşlukları, girintileri ve satır sonlarını tutarlı bir şekilde kullanın. Bu, kodun okunabilirliğini artırır ve hataları bulmayı kolaylaştırır. Bir stil kılavuzu kullanmak (örneğin, Google Java Style Guide) veya bir kod biçimlendirici (örneğin, Prettier) kullanmak, kodunuzun tutarlı bir şekilde biçimlendirilmesini sağlar.

6. Hata Yönetimine Özen Gösterin

Hataları düzgün bir şekilde ele alın. try-catch bloklarını kullanarak olası hataları yakalayın ve kullanıcıya anlamlı mesajlar gösterin. Hata günlüklerini kullanarak hataları takip edin ve düzeltin.

7. Test Yazın

Kodunuzun doğru çalıştığından emin olmak için birim testleri yazın. Testler, kodunuzu otomatik olarak doğrulamanıza ve gelecekteki değişikliklerin hatalara yol açmadığından emin olmanıza yardımcı olur.

8. SOLID Prensiplerine Uyun (Nesne Yönelimli Programlama için)

SOLID prensipleri, nesne yönelimli programlamada temiz ve sürdürülebilir kod yazmak için bir dizi kılavuzdur:

  • Tek Sorumluluk Prensibi (SRP): Bir sınıfın yalnızca bir sorumluluğu olmalıdır.
  • Açık/Kapalı Prensibi (OCP): Sınıflar, genişletmeye açık, değiştirmeye kapalı olmalıdır.
  • Liskov Yerine Geçme Prensibi (LSP): Bir alt sınıf, üst sınıfının yerine geçebilmelidir.
  • Arayüz Ayrımı Prensibi (ISP): Bir sınıf, kullanmadığı arayüzleri uygulamaya zorlanmamalıdır.
  • Bağımlılık Evirme Prensibi (DIP): Üst düzey modüller, alt düzey modüllere bağımlı olmamalıdır. Her ikisi de soyutlamalara bağımlı olmalıdır.

9. Sürekli Öğrenin ve Gelişin

Yazılım geliştirme sürekli değişen bir alandır. Yeni teknolojileri, araçları ve teknikleri öğrenmek için sürekli çaba gösterin. Kod incelemelerine katılın ve başkalarının kodunu inceleyin. Bu, hem kendi kodunuzu geliştirmenize hem de farklı yaklaşımlar öğrenmenize yardımcı olacaktır.

Örnek: Temiz ve Kirli Kod Karşılaştırması

Aşağıda, aynı işi yapan ancak farklı şekillerde yazılmış iki kod örneği bulunmaktadır. İlk örnek "kirli" kod, ikincisi ise "temiz" koddur:

Kirli Kod:

int a;String b;void abc(int x, String y) { a = x * 2; b = y + "!"; System.out.println(b + " " + a);}

Temiz Kod:

int sonuc;String mesaj;void hesaplaVeYazdir(int sayi, String girdi) { sonuc = sayi * 2; mesaj = girdi + "!"; System.out.println(mesaj + " " + sonuc);}

Temiz kod örneğinde, değişken isimleri ve fonksiyon adı daha açıklayıcıdır. Bu, kodun ne yaptığını anlamayı çok daha kolay hale getirir.

Sonuç

Temiz kod yazmak, bir alışkanlık haline getirilmesi gereken bir beceridir. Yukarıda bahsedilen ilkeleri uygulayarak, daha okunabilir, sürdürülebilir ve etkili kod yazabilirsiniz. Unutmayın, temiz kod sadece sizin için değil, aynı zamanda ekibiniz ve projenizin başarısı için de önemlidir. Sürekli pratik yaparak ve öğrenerek, temiz kod yazma becerilerinizi geliştirebilirsiniz.


Facebook X