🐍 Depuració i Validació de Dades en Python
Love Nature - Sistema de Registre Segur amb Gestió d'Errors
Justificació: La Depuració com a Fase Crítica per a Seguretat i UX
La depuració no és només arreglar errors, és una fase crítica per a la seguretat i l'experiència d'usuari (UX).
Validar entrades com el DNI o l'email evita que dades incorrectes corrompin la base de dades o permetin injeccions de codi maliciós.
(8 dígits + 1 lletra majúscula)
Patró per a Email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
✓ Integritat de dades: Un DNI sense lletra no és vàlid i ha de ser rebutjat abans d'arribar a la base de dades.
✓ Prevenció d'atacs: La validació amb expressions regulars filtra intents d'injecció de codi.
Un usuari prefereix rebre un avís de "Format incorrecte" a veure com l'aplicació deixa de funcionar sense explicació.
✓ La gestió d'errors amb blocs try-except evita que el programa es tanqui inesperadament.
✓ Els missatges d'error clars i descriptius milloren l'experiència i guien l'usuari a corregir les dades.
✓ El logging permet rastrejar errors complexos sense interrompre l'execució del programa.
"Un usuari prefereix rebre un avís de 'Format incorrecte' que veure com l'aplicació deixa de funcionar."
Implementació: Try-Except + Validació + Logging
He implementat un sistema de registre que utilitza expressions regulars per a la validació i logging per al rastreig d'esdeveniments.
Codi Implementat (tarik.py)
📊 Explicació de la Implementació:
validar_email()- Comprova format estàndard d'emailvalidar_dni()- 8 dígits + 1 lletra majúscula- Retorna
True/Falseper a decisions
ValueError- Errors de validació controlatsException- Errors inesperats- El programa continua després de l'error
logging.info()- Registres exitososlogging.warning()- Intents fallitslogging.error()- Errors crítics
- 3 intents màxims per a l'usuari
- Missatges clars de progrés
- Logging quan s'excedeixen intents
Evidències: Captures de Terminal amb Casos d'Èxit i Error
A continuació es mostren les evidències del sistema funcionant amb diferents casos de prova, incloent captures de la terminal amb èxits i errors controlats.
Captura de terminal mostrant el funcionament correcte del sistema amb dades vàlides:
- Email:
tarik@gmail.com(format correcte) - DNI:
12345678Z(8 dígits + lletra) - El sistema valida i confirma l'èxit
- Logging:
INFOregistra l'operació
Captura de terminal mostrant la gestió d'un DNI mal format:
- DNI:
123456789(9 números, falta lletra) - El sistema detecta l'error amb regex
- Llança
ValueErrorcontrolat - Logging:
WARNINGregistra l'intent fallit - L'usuari rep un missatge clar i pot tornar-ho a intentar
Captura de terminal mostrant la gestió d'un email mal format:
- Email:
tarik.gmail.com(manca @) - El sistema detecta l'error amb regex
- Llança
ValueErrorcontrolat - L'usuari rep instruccions clares del format correcte
Captura mostrant la protecció contra intents infinits:
- L'usuari té 3 intents màxims
- Després de 3 errors, el programa s'atura
- Logging:
ERRORregistra l'incident - Missatge amigable per a l'usuari
📋 Resum de les Evidències:
| Cas | Entrada | Resultat | Logging |
|---|---|---|---|
| ✅ Èxit | tarik@gmail.com / 12345678Z | Registre completat | INFO |
| ⚠️ Error DNI | tarik@gmail.com / 123456789 | Missatge d'error + reintent | WARNING |
| ⚠️ Error Email | tarik.gmail.com / 12345678Z | Missatge d'error + reintent | WARNING |
| ⛔ Límit intents | 3 errors consecutius | Programa s'atura | ERROR |
📝 Logs Generats:
📌 Conclusió i Valoració Global
El sistema de registre implementat demostra un enfocament professional a la depuració i validació de dades:
La implementació compleix tots els criteris PRO+ exigits:
- ✅ Justificació sòlida: Analitza la depuració com a fase crítica per a seguretat i UX, justificant la validació per evitar errors i garantir integritat
- ✅ Implementació robusta: Blocs try-except, validació amb expressions regulars i logging per rastrejar errors complexos
- ✅ Evidències documentades: Captures de terminal amb casos d'èxit i error, ben organitzades i rellevants per al repte
"La depuració no és només arreglar errors, és una fase crítica per a la seguretat i l'experiència d'usuari"
