Home

Awesome

agenda

Proyecto de ejemplo para la asignatura Paradigmas de la Programación

Objetivo

Este pequeño y sencillo proyecto tiene como único objetivo el servir como referencia de implementación de buenas prácticas de programación en Python, que contribuyan al desarrollo de código limpio: compacto, modular, fácil de leer, expresivo, reutilizable y extensible.

Fundamentos

Características

El proyecto agenda implementa una sencilla agenda telefónica.

Los datos de la agenda se guardan en registros que contienen sólo dos datos (nombre y teléfono) donde el primero es utilizado como clave de acceso.

La aplicación funciona en modo consola, y la interfaz de usuario consiste en la típica consola interactiva de línea de comandos, técnicamente conocida como REPL (Read Eval Print Loop: ciclo de lectura, evaluación e impresión).

La información de contacto se almacena en un único archivo en formato shelve, una especie de diccionario persistente que permite serializar objetos mediante pickle y almacenarlos en formato dbm. Cada registro en este formato consiste en una clave que representa a una cadena de caracteres.

Módulos

Ventajas

Las ventajas de un buen diseño en el desarrollo de aplicaciones son más que evidentes, sobre todo en proyectos grandes, que involucran a varios programadores.

Para extender la funcionalidad de esta aplicación de ejemplo, sólo se necesitaría modificar el módulo adecuado. Por ejemplo, para poder guardar más información de contacto, bastaría con extender la clase Agenda (modelo) del módulo agenda.py y modificar algunos métodos de la clase Main en el módulo main.py (controlador). Los demás módulos permanecerían intactos.

De igual manera, se podría modificar el módulo de vista (repl.py) o el de persistencia (estante.py) sin que esto afecte en lo más mínimo a los demás módulos.