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ı ...