Junior
Čo podľa teba znamená písať kvalitný kód?
sobes.tech AI
Odpoveď od AI
Čistota, čitateľnosť, udržateľnosť, škálovateľnosť a súlad s požiadavkami.
Hlavné aspekty:
-
Čistota a čitateľnosť:
- Používanie zrozumiteľných, descriptívnych mien premenných, funkcií, tried.
- Dodržiavanie jednotného štýlu kódovania (sprievodca štýlom kódovania).
- Primerané formátovanie kódu (odsadenia, medzery).
- Odstraňovanie duplikácie kódu (DRY - Don't Repeat Yourself).
- Prítomnosť zrozumiteľných komentárov k nejasným častiam kódu.
-
Udržateľnosť:
- Jednoduchosť vykonávania zmien a opravy chýb.
- Modularita: rozdeľovanie funkčnosti na menšie, nezávislé bloky.
- Nízka väzba (low coupling) a vysoká kohezia (high cohesion).
- Prítomnosť automatizovaných testov (jednotkové, integračné, end-to-end).
-
Škálovateľnosť:
- Schopnosť systému spracovať rastúci objem dát alebo záťaže bez podstatného zhoršenia výkonu.
- Efektívne využívanie zdrojov.
-
Súlad s požiadavkami:
- Kód správne implementuje biznis logiku a funkčné požiadavky.
- Chýbajú kritické chyby a zraniteľnosti.
Príklad štruktúry kvalitného testu v Pythone:
# 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í prípad pre úspešné vytvorenie používateľa
username = "test_user"
email = "test@example.com"
# Akcia: Vytvorenie používateľa
new_user = create_user(username, email)
# Potvrdenie 1: Kontrola, či bol objekt používateľa vytvorený
assert isinstance(new_user, User)
# Potvrdenie 2: Kontrola, či je používateľské meno správne
assert new_user.username == username
# Potvrdenie 3: Kontrola, či je email správny
assert new_user.email == email
def test_user_creation_duplicate_username():
# Testovací prípad pre zlyhanie kvôli duplicitnému používateľskému menu
username = "existing_user"
email = "another@example.com"
# Predpoklad: Vytvorenie existujúceho používateľa
create_user(username, "existing@example.com")
# Akcia a potvrdenie: Pokus o vytvorenie používateľa s duplicitným používateľským menom a očakávanie výnimky
with pytest.raises(ValueError, match="Username already exists"):
create_user(username, email)
# ... ďalšie testovacie prípady ...