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 ...