Implementar el comando delete para borrar un cliente es directo cuando se prioriza reutilizar código y factorizar funciones. Aquí se muestra cómo integrar delete al flujo CRUD sin duplicar lógica, con buenas prácticas que facilitan el mantenimiento y un ciclo de feedback claro desde la consola.
¿Qué es el patrón CRUD y por qué importa?
El flujo que se ejecuta es consistente: crear, mostrar, actualizar y borrar clientes. Este patrón, conocido como CRUD, aparece en muchas soluciones: API de aplicaciones web, programas de escritorio como correo y bloc de notas, y cualquier sistema que gestione elementos persistentes.
- CRUD es un estándar práctico en ingeniería de software.
- Permite estructurar los comandos y el ciclo de trabajo.
- Facilita extender el sistema conforme crecen los componentes.
Además, se adelanta que más adelante se incorporará persistencia: guardar la lista en disco para conservar datos entre sesiones del programa.
¿Cómo implementar delete sin repetir código?
La implementación de delete se alinea con update, pero con una diferencia clave: solo requiere el nombre del cliente. Se reutiliza la función existente para obtener la entrada del usuario y se encapsula el borrado en una función específica.
- Reutiliza la función para pedir el nombre del cliente.
- Trabaja con la referencia global a clients.
- Valida si el cliente existe antes de borrar.
- Da feedback cuando el cliente no está en la lista.
# Ejemplo del borrado de un cliente
def delete_client(client_name):
global clients
if client_name in clients:
# se selecciona el nombre incluyendo la coma y se sustituye por un string vacío
clients = clients.replace(client_name + ',', '')
else:
print('client is not in clients list')
# flujo típico
name = get_client_name() # función ya existente y reutilizable
delete_client(name)
list_clients() # para observar el cambio en la salida
¿Cómo reutilizar get client name para pedir entrada?
La ventaja de factorizar funciones es clara: si se necesita modificar cómo se solicita el nombre, se cambia en un solo lugar y el ajuste impacta en todo el programa. Evitar el copy paste previene que el código se vuelva inmanejable conforme crece.
¿Cómo validar y borrar en la lista global clients?
Se usa la referencia global a clients y se verifica si el nombre existe. Si está, se selecciona el nombre con su coma y se reemplaza por un string vacío: eso borra al cliente de la estructura actual.
¿Cómo dar feedback con list clients?
Mostrar el estado con list clients es útil para entender qué pasa internamente. Al borrar, se ve al instante el efecto del comando y se detectan posibles errores.
¿Qué habilidades y buenas prácticas se refuerzan?
Este ejercicio consolida competencias clave para construir software mantenible y claro.
- Factorización de funciones: centraliza lógica repetida.
- Reutilización de código: acelera cambios futuros.
- Validaciones explícitas: mensajes como "client is not in clients list" ayudan a depurar.
- Gestión de estado global: uso de variables globales con cuidado.
- Ciclo CRUD completo: crear, listar, actualizar y borrar.
- Evolución del diseño: preparación para añadir clases, decoradores y funciones de alto nivel.
- Persistencia futura: promesa de guardar en disco para múltiples sesiones.
Si algo no quedó claro o quieres proponer una mejor forma de factorizar mensajes y validaciones, comparte tu duda o mejora en los comentarios: la comunidad puede ayudarte a avanzar más rápido.