Sobes.tech
Junior

Co, twoim zdaniem, oznacza pisanie wysokiej jakości kodu?

sobes.tech AI

Odpowiedź od AI

Czystość, czytelność, utrzymanie, skalowalność i zgodność z wymaganiami.

Główne aspekty:

  • Czystość i czytelność:

    • Używanie zrozumiałych, opisowych nazw zmiennych, funkcji i klas.
    • Przestrzeganie jednolitego stylu kodowania (guidelines).
    • Odpowiednie formatowanie kodu (wcięcia, spacje).
    • Usuwanie duplikatów kodu (DRY - Don't Repeat Yourself).
    • Jasne komentarze do nieoczywistych części kodu.
  • Utrzymanie:

    • Łatwość wprowadzania zmian i naprawy błędów.
    • Modularność: podział funkcjonalności na małe, niezależne bloki.
    • Niskie powiązanie i wysoka spójność.
    • Automatyczne testy (jednostkowe, integracyjne, end-to-end).
  • Skalowalność:

    • Zdolność systemu do obsługi rosnącej ilości danych lub obciążenia bez znacznego pogorszenia wydajności.
    • Efektywne wykorzystanie zasobów.
  • Zgodność z wymaganiami:

    • Kod poprawnie realizuje logikę biznesową i wymagania funkcjonalne.
    • Brak krytycznych błędów i luk bezpieczeństwa.

Przykład struktury testu jakości w Pythonie:

# 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():
    # Przypadek testowy dla pomyślnego tworzenia użytkownika
    username = "test_user"
    email = "test@example.com"

    # Akcja: Tworzenie użytkownika
    new_user = create_user(username, email)

    # Assercje: Sprawdzenie czy obiekt użytkownika został utworzony
    assert isinstance(new_user, User)

    # Assercje: Sprawdzenie czy nazwa użytkownika jest poprawna
    assert new_user.username == username

    # Assercje: Sprawdzenie czy email jest poprawny
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Przypadek testowy dla niepowodzenia przy duplikacie nazwy użytkownika
    username = "existing_user"
    email = "another@example.com"

    # Warunek wstępny: Utworzenie istniejącego użytkownika
    create_user(username, "existing@example.com")

    # Akcja i asercja: Próba utworzenia użytkownika z duplikatem i oczekiwanie wyjątku
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... inne przypadki testowe ...