devseniorlabpython / devseniorlabpython/hardware-shop

Mejorar la Robustez del Sistema con Validación de Datos Avanzada

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
0
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Actualmente, nuestro sistema realiza validaciones básicas, pero podemos hacerlo mucho más robusto y a prueba de errores para garantizar la calidad de los datos en nuestro inventario.

**Tu Misión:**

Tu objetivo es crear un módulo de validación centralizado y utilizarlo para fortalecer la entrada de datos en `main.py`.

**Tareas Específicas:**

1. **Crear un Módulo de Validación (`validaciones.py`):**
* Crea un nuevo archivo llamado `validaciones.py`.
* Dentro de este archivo, crea funciones específicas para validar los datos de un producto. Por ejemplo:
* `validar_nombre(nombre: str) -> bool`: Debe verificar que el nombre no esté vacío (después de quitar espacios) y que quizás no exceda una longitud máxima (ej. 100 caracteres).
* `validar_precio(precio: float) -> bool`: Debe asegurar que el precio sea un número positivo (mayor que cero).
* `validar_stock(stock: int) -> bool`: Debe asegurar que el stock no sea un número negativo.

2. **Integrar las Validaciones en `main.py`:**
* Importa tus nuevas funciones de validación en `main.py`.
* Antes de llamar a `repo.create()` o `repo.update()`, utiliza estas funciones para validar los datos introducidos por el usuario.
* Si una validación falla, muestra un mensaje de error claro y específico al usuario (ej. "Error: El precio debe ser mayor que cero.") y evita que la operación continúe.

**Objetivos de Aprendizaje:**

* Modularización del código (separar la validación de la lógica principal).
* Creación de funciones reutilizables.
* Mejora de la experiencia de usuario a través de feedback claro.
* Programación defensiva para asegurar la integridad de los datos.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.