devseniorlabpython / devseniorlabpython/hardware-shop
Mejorar la Robustez del Sistema con Validación de Datos Avanzada
- 主要語言
- Python
- 星號
- 0
- 分支
- 4
- PR 合併指標
- 30 天內沒有已合併 PR
描述
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.
貢獻指南
這個儲存庫沒有索引到貢獻指南
研究方向
先閱讀 main.py,找出產品輸入流程以及對 repo.create() 和 repo.update() 的呼叫。建立 validaciones.py,實作指定的產品驗證函式,然後在這些儲存庫呼叫之前整合它們。完成的標準是:無效的名稱、價格或庫存值會顯示具體錯誤,並阻止操作繼續執行。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- python
- 領域
- backend
- Issue 類型
- 功能
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100