Sobes.tech
Junior

¿Qué significa, en tu opinión, escribir código de calidad?

sobes.tech AI

Respuesta de la IA

Limpieza, legibilidad, mantenibilidad, escalabilidad y cumplimiento de los requisitos.

Aspectos principales:

  • Limpieza y legibilidad:

    • Uso de nombres comprensibles y descriptivos para variables, funciones y clases.
    • Cumplimiento de una guía de estilo de codificación unificada.
    • Formateo adecuado del código (indentación, espacios).
    • Eliminación de duplicados de código (DRY - Don't Repeat Yourself).
    • Comentarios claros en partes no evidentes del código.
  • Mantenibilidad:

    • Facilidad para realizar cambios y corregir errores.
    • Modularidad: división de funcionalidades en bloques pequeños e independientes.
    • Baja acoplamiento y alta cohesión.
    • Inclusión de pruebas automatizadas (unitarias, de integración, de extremo a extremo).
  • Escalabilidad:

    • Capacidad del sistema para manejar un volumen creciente de datos o carga sin deterioro significativo del rendimiento.
    • Uso eficiente de recursos.
  • Cumplimiento de requisitos:

    • El código implementa correctamente la lógica de negocio y los requisitos funcionales.
    • Ausencia de errores críticos y vulnerabilidades.

Ejemplo de estructura de una prueba de calidad 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():
    # Caso de prueba para creación exitosa de usuario
    username = "test_user"
    email = "test@example.com"

    # Acción: Crear un usuario
    new_user = create_user(username, email)

    # Aserción 1: Verificar si se crea el objeto usuario
    assert isinstance(new_user, User)

    # Aserción 2: Verificar que el nombre de usuario sea correcto
    assert new_user.username == username

    # Aserción 3: Verificar que el email sea correcto
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Caso de prueba para fallo por nombre de usuario duplicado
    username = "existing_user"
    email = "another@example.com"

    # Precondición: Crear un usuario existente
    create_user(username, "existing@example.com")

    # Acción y aserción: Intentar crear usuario con nombre duplicado y esperar excepción
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... otros casos de prueba ...