Sobes.tech
Junior

Que signifie, selon toi, écrire du code de qualité?

sobes.tech IA

Réponse de l'IA

Propreté, lisibilité, maintenabilité, évolutivité et conformité aux exigences.

Aspects principaux:

  • Propreté et lisibilité:

    • Utilisation de noms compréhensibles et descriptifs pour les variables, fonctions et classes.
    • Respect d'un guide de style de codage unifié.
    • Formatage approprié du code (indentation, espaces).
    • Suppression des duplications de code (DRY - Don't Repeat Yourself).
    • Commentaires clairs sur les parties non évidentes du code.
  • Maintenabilité:

    • Facilité de modification et de correction des erreurs.
    • Modularité: division des fonctionnalités en petits blocs indépendants.
    • Faible couplage et forte cohésion.
    • Inclusion de tests automatisés (unitaires, d'intégration, de bout en bout).
  • Évolutivité:

    • Capacité du système à gérer une charge ou un volume de données croissant sans dégradation significative des performances.
    • Utilisation efficace des ressources.
  • Conformité aux exigences:

    • Le code implémente correctement la logique métier et les exigences fonctionnelles.
    • Absence de bugs critiques et de vulnérabilités.

Exemple de structure d'un test de qualité en 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():
    # Cas de test pour création réussie d'utilisateur
    username = "test_user"
    email = "test@example.com"

    # Action: Créer un utilisateur
    new_user = create_user(username, email)

    # Assertion 1: Vérifier si l'objet utilisateur est créé
    assert isinstance(new_user, User)

    # Assertion 2: Vérifier si le nom d'utilisateur est correct
    assert new_user.username == username

    # Assertion 3: Vérifier si l'email est correct
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Cas de test pour échec en cas de nom d'utilisateur dupliqué
    username = "existing_user"
    email = "another@example.com"

    # Précondition: Créer un utilisateur existant
    create_user(username, "existing@example.com")

    # Action & Assertion: Tenter de créer un utilisateur avec un nom d'utilisateur dupliqué et attendre une exception
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... autres cas de test ...