Sobes.tech
Junior

Šta, po tvom mišljenju, znači pisanje kvalitetnog koda?

sobes.tech АИ

Одговор од АИ

Čistoća, čitljivost, održivost, skalabilnost i usklađenost sa zahtevima.

Glavni aspekti:

  • Čistoća i čitljivost:

    • Korišćenje razumljivih, deskriptivnih imena promenljivih, funkcija, klasa.
    • Poštovanje jedinstvenog stila kodiranja (vodič za stil kodiranja).
    • Odgovarajuće formatiranje koda (uvuci, razmaci).
    • Uklanjanje dupliranja koda (DRY - Don't Repeat Yourself).
    • Postojanje razumljivih komentara za nejasne delove koda.
  • Održljivost:

    • Lakoća pravljenja promena i ispravljanja grešaka.
    • Modularnost: razdvajanje funkcionalnosti na manje, nezavisne blokove.
    • Niska povezanost (low coupling) i visoka kohezija (high cohesion).
    • Postojanje automatizovanih testova (jedinični, integracioni, end-to-end).
  • Skalabilnost:

    • Sposobnost sistema da obrađuje rastući obim podataka ili opterećenja bez značajnog pogoršanja performansi.
    • Efikasno korišćenje resursa.
  • Usklađenost sa zahtevima:

    • Kod pravilno implementira poslovnu logiku i funkcionalne zahteve.
    • Nedostatak kritičnih bagova i ranjivosti.

Primer strukture kvalitetnog testa na Python-u:

# 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():
    # Test slučaj za uspešno kreiranje korisnika
    username = "test_user"
    email = "test@example.com"

    # Akcija: Kreiranje korisnika
    new_user = create_user(username, email)

    # Potvrda 1: Provera da li je objekat korisnika kreiran
    assert isinstance(new_user, User)

    # Potvrda 2: Provera da li je korisničko ime tačno
    assert new_user.username == username

    # Potvrda 3: Provera da li je email tačan
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Test slučaj za neuspeh zbog duplog korisničkog imena
    username = "existing_user"
    email = "another@example.com"

    # Preuslov: Kreiranje postojećeg korisnika
    create_user(username, "existing@example.com")

    # Akcija i potvrda: Pokušaj kreiranja korisnika sa duplim korisničkim imenom i očekivanje izuzetka
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... ostali test slučajevi ...