Sobes.tech
Junior

Sence, kaliteli kod yazmak ne anlama geliyor?

sobes.tech yapay zeka

AI'dan gelen yanıt

Temizlik, okunabilirlik, sürdürülebilirlik, ölçeklenebilirlik ve gereksinimlere uygunluk.

Ana unsurlar:

  • Temizlik ve okunabilirlik:

    • Anlamlı, açıklayıcı değişken, fonksiyon ve sınıf isimleri kullanımı.
    • Tek tip kodlama stili kılavuzuna uyum.
    • Uygun biçimlendirme (girintiler, boşluklar).
    • Kod tekrarlarının önlenmesi (DRY - Don't Repeat Yourself).
    • Anlaşılması güç olmayan kod bölümleri için net yorumlar.
  • Sürdürülebilirlik:

    • Değişiklik yapma ve hata düzeltme kolaylığı.
    • Modülerlik: fonksiyonların küçük ve bağımsız bloklara ayrılması.
    • Düşük bağlılık ve yüksek kohezyon.
    • Otomatik testlerin bulunması (birim, entegrasyon, uçtan uca).
  • Ölçeklenebilirlik:

    • Sistemin artan veri hacmi veya yükü altında performans kaybı olmadan çalışabilme yeteneği.
    • Kaynakların verimli kullanımı.
  • Gereksinimlere uygunluk:

    • Kod, iş mantığını ve fonksiyonel gereksinimleri doğru şekilde uygular.
    • Kritik hatalar ve güvenlik açıkları bulunmaz.

Python'da kaliteli test yapısına örnek:

# filename: test_user_creation.py

import pytest
from my_application.models import User
from my_application.services import create_user

def test_user_creation_successful():
    # Başarılı kullanıcı oluşturma durumu
    username = "test_user"
    email = "test@example.com"

    # İşlem: Kullanıcı oluşturma
    new_user = create_user(username, email)

    # Doğrulama 1: Kullanıcı nesnesinin oluşturulduğunu kontrol et
    assert isinstance(new_user, User)

    # Doğrulama 2: Kullanıcı adının doğru olduğunu kontrol et
    assert new_user.username == username

    # Doğrulama 3: E-postanın doğru olduğunu kontrol et
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Çakışan kullanıcı adıyla başarısızlık durumu
    username = "existing_user"
    email = "another@example.com"

    # Önkoşul: Mevcut bir kullanıcı oluştur
    create_user(username, "existing@example.com")

    # İşlem ve doğrulama: Çakışan kullanıcı adıyla kullanıcı oluşturmaya çalış ve istisna bekle
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... diğer test durumları ...