Sobes.tech
Junior

Mida, sinu arvates, tähendab kvaliteetset koodi kirjutada?

sobes.tech AI

Vastus AI-lt

Puhasus, loetavus, hooldatavat, skaleeritavat ja nõuetele vastav:

Peamised aspektid:

  • Puhasus ja loetavus:

    • Kasutades arusaadavaid, kirjeldavaid muutujate, funktsioonide ja klasside nimesid.
    • Järgides ühtset koodistiili (koodistiili juhend).
    • Sobiv vormindus (süntaksid, tühikud).
    • Koodi dubleerimise vältimine (DRY - Don't Repeat Yourself).
    • Arusaadavad kommentaarid ebaselgetele koodiosadele.
  • Hooldatavus:

    • Muudatuste ja vigade parandamise lihtsus.
    • Moodulite struktuur: funktsionaalsuse jagamine väikesteks, sõltumatuteks plokkideks.
    • Madal sidusus (low coupling) ja kõrge koherentsus (high cohesion).
    • Automaattestide olemasolu (üksus-, integratsiooni-, lõpp-testi).
  • Skaleeritavus:

    • Süsteemi võime töödelda kasvavat andmemahu või koormust ilma olulise jõudluse languseta.
    • Ressursside tõhus kasutamine.
  • Nõuetele vastavus:

    • Kood õigesti rakendab äriloogikat ja funktsionaalseid nõudeid.
    • Kritilisi vigu ja haavatavusi ei ole.

Näide kvaliteetse testi struktuurist Pythonis:

# 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():
    # Eduka kasutaja loomise test
    username = "test_user"
    email = "test@example.com"

    # Tegevus: Kasutaja loomine
    new_user = create_user(username, email)

    # Kinnitus 1: Kontrollida, kas kasutaja objekt on loodud
    assert isinstance(new_user, User)

    # Kinnitus 2: Kontrollida, kas kasutajanimi on õige
    assert new_user.username == username

    # Kinnitus 3: Kontrollida, kas e-post on õige
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Duplikaatnime test
    username = "existing_user"
    email = "another@example.com"

    # Eeltingimus: olemasoleva kasutaja loomine
    create_user(username, "existing@example.com")

    # Tegevus ja kinnitus: katse luua kasutaja duplikaadiga nimega ja oodata erandit
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... teised testid ...