Junior
Co podle tebe znamená psaní kvalitního kódu?
sobes.tech AI
Odpověď od AI
Čistota, čitelnost, udržovatelnost, škálovatelnost a shoda s požadavky.
Hlavní aspekty:
-
Čistota a čitelnost:
- Použití srozumitelných, popisných názvů proměnných, funkcí a tříd.
- Dodržování jednotného stylu kódování (guidelines).
- Správné formátování kódu (odsazení, mezery).
- Odstraňování duplicit kódu (DRY - Don't Repeat Yourself).
- Jasné komentáře k ne zcela zřejmým částem kódu.
-
Udržovatelnost:
- Snadnost provádění změn a oprav chyb.
- Modularita: rozdělení funkcionality na malé, nezávislé bloky.
- Nízké propojení a vysoká koheze.
- Automatizované testy (unit, integrace, end-to-end).
-
Škálovatelnost:
- Schopnost systému zpracovávat rostoucí objem dat nebo zátěž bez podstatného zhoršení výkonu.
- Efektivní využívání zdrojů.
-
Shoda s požadavky:
- Kód správně implementuje obchodní logiku a funkční požadavky.
- Chybí kritické chyby a zranitelnosti.
Příklad struktury kvalitního testu v Pythonu:
# 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():
# Testovací případ úspěšného vytvoření uživatele
username = "test_user"
email = "test@example.com"
# Akce: Vytvoření uživatele
new_user = create_user(username, email)
# Kontrola 1: Ověření, že byl vytvořen uživatelský objekt
assert isinstance(new_user, User)
# Kontrola 2: Ověření, že uživatelské jméno je správné
assert new_user.username == username
# Kontrola 3: Ověření, že email je správný
assert new_user.email == email
def test_user_creation_duplicate_username():
# Testovací případ selhání při duplicitním uživatelském jménu
username = "existing_user"
email = "another@example.com"
# Předpoklad: Vytvoření existujícího uživatele
create_user(username, "existing@example.com")
# Akce a kontrola: Pokus o vytvoření uživatele s duplicitním jménem a očekávání výjimky
with pytest.raises(ValueError, match="Username already exists"):
create_user(username, email)
# ... další testovací případy ...