Sobes.tech
Junior

Wat betekent volgens jou het schrijven van kwaliteitscode?

sobes.tech AI

Antwoord van AI

Netheid, leesbaarheid, onderhoudbaarheid, schaalbaarheid en naleving van de eisen.

Belangrijkste aspecten:

  • Netheid en leesbaarheid:

    • Gebruik van begrijpelijke, beschrijvende namen voor variabelen, functies en klassen.
    • Naleving van een uniforme codestijl (coding style guide).
    • Correcte opmaak van de code (inspringingen, spaties).
    • Verwijdering van code duplicatie (DRY - Don't Repeat Yourself).
    • Duidelijke commentaar bij niet-voor de hand liggende delen van de code.
  • Onderhoudbaarheid:

    • Gemak van het aanbrengen van wijzigingen en het corrigeren van fouten.
    • Modulariteit: verdeling van functionaliteit in kleine, onafhankelijke blokken.
    • Lage koppeling en hoge cohesie.
    • Geautomatiseerde tests (unit, integratie, end-to-end).
  • Schaalbaarheid:

    • Het vermogen van het systeem om groeiende hoeveelheden data of belasting te verwerken zonder significante prestatievermindering.
    • Efficiënt gebruik van bronnen.
  • Naleving van eisen:

    • De code implementeert correct de bedrijfslogica en functionele eisen.
    • Geen kritieke bugs of kwetsbaarheden.

Voorbeeld van een structuur van een kwaliteits-test in Python:

# 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():
    # Testgeval voor succesvolle gebruikerscreatie
    username = "test_user"
    email = "test@example.com"

    # Actie: Een gebruiker aanmaken
    new_user = create_user(username, email)

    # Assert 1: Controleren of het gebruikersobject is aangemaakt
    assert isinstance(new_user, User)

    # Assert 2: Controleren of de gebruikersnaam correct is
    assert new_user.username == username

    # Assert 3: Controleren of de email correct is
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Testgeval voor mislukking bij dubbele gebruikersnaam
    username = "existing_user"
    email = "another@example.com"

    # Voorwaarde: Een bestaande gebruiker aanmaken
    create_user(username, "existing@example.com")

    # Actie & Assert: Proberen een gebruiker te maken met dubbele gebruikersnaam en expecting exception
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... andere testgevallen ...