Junior
Sənin fikrincə, keyfiyyətli kod yazmaq nə deməkdir?
sobes.tech Süni İntellekt
AI-dan cavab
Təmizlik, oxunaqlılıq, saxlanma, miqyaslandırma və tələblərə uyğunluq.
Əsas aspektlər:
-
Təmizlik və oxunaqlılıq:
- Dəyişənlər, funksiyalar və sinflər üçün başa düşülən, təsviri adlar istifadə etmək.
- Bir standart kodlama tərzi rəhbərliyinə riayət etmək.
- Kodun düzgün formatlaşdırılması (tabaq, boşluqlar).
- Kod təkrarlamasını aradan qaldırmaq (DRY - Don't Repeat Yourself).
- Kodun qeyri-aydın hissələri üçün aydın şərhlər.
-
Saxlanma:
- Dəyişikliklər etmək və səhvləri düzəltmək asanlığı.
- Modullarlıq: funksionallığın kiçik, müstəqil bloklara bölünməsi.
- Aşağı əlaqəlilik və yüksək kohesiya.
- Avtomatlaşdırılmış testlər (birlik, inteqrasiya, son-əldə testlər).
-
Miqyaslandırma:
- Sistem artan məlumat həcmi və ya yükü ilə işləmək qabiliyyətinə malikdir və performansda əhəmiyyətli azalma olmadan.
- Resursların səmərəli istifadəsi.
-
Tələblərə uyğunluq:
- Kod biznes məntiqini və funksional tələbləri düzgün həyata keçirir.
- Kritik səhvlər və zəifliklər yoxdur.
Python-da keyfiyyətli test strukturu nümunəsi:
# 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():
# Uğurlu istifadəçi yaradılması üçün test halı
username = "test_user"
email = "test@example.com"
# Əməliyyat: İstifadəçi yaratmaq
new_user = create_user(username, email)
# Təsdiqləmə 1: İstifadəçi obyektinin yaradıldığını yoxlamaq
assert isinstance(new_user, User)
# Təsdiqləmə 2: İstifadəçi adının düzgün olduğunu yoxlamaq
assert new_user.username == username
# Təsdiqləmə 3: E-poçtun düzgün olduğunu yoxlamaq
assert new_user.email == email
def test_user_creation_duplicate_username():
# Dublikat istifadəçi adı ilə uğursuzluq halı
username = "existing_user"
email = "another@example.com"
# Şərt: Mövcud istifadəçi yaratmaq
create_user(username, "existing@example.com")
# Əməliyyat və təsdiqləmə: Dublikat istifadəçi adı ilə istifadəçi yaratmağa cəhd və istisna gözləmə
with pytest.raises(ValueError, match="Username already exists"):
create_user(username, email)
# ... digər test halları ...