Algoritmos mantenibles

¿Cómo podemos transformar un código procedimental en un código fuente mantenible?

Partiremos de la explicación de la programación estructuraday llegaremos a una aplicación adecuada de la orientación a objetos, donde cumplimos principios tales como SOLID y Tell Don’t Ask.

El siguiente método se basa en la idea de los “Refactorings” de que podemos mejorar el diseño del código fuente sin modificar su comportamiento. Este artículo introduce al tema de los Refactorings: ¿Qué son y porqué son importantes?

Un método de siete pasos

Estudiemos cómo diseñar cualquier algoritmo de manera mantenible. Los siguientes siete pasos son una guía que explican cómo, por qué y cuándo usarlos.

  1. Como un procedimiento: Empezamos estudiando qué es un procedimiento estructurado.
  2. Funciones: Este paso es la clave para dar el salto de paradigma hacia la orientación a objetos.
  3. Objetos: Los objetos nos dan una forma flexible y reutilizable.
  4. Parameter Object: El código fuente será más fácil de entender si tiene pocos parámetros.
  5. Tell Dont Ask: Empezamos a sustituir el código procedimental por uno orientado a objetos. Este paso también eliminará la rigidez.
  6. Polimorfismo: Encontraremos la robustez al descubrir el poder del polimorfismo.
  7. Inversión de dependencias: ¿Cómo tener una aplicación que sea independiente de tecnologías, frameworks y herramientas? Esta es la clave para que una aplicación sea reutilizable a pesar de los cambios tecnológicos.

Ejemplos en C#

En estos ejemplos aplicamos cada técnica en orden. Iniciamos con ejemplos sencillos porque al dominar cada refactoring podremos luego aplicarlo a un código más complejo con mayor confianza.

  1. Algoritmo: IBAN Nacional (ilustra los primeros tres pasos)
  2. Algoritmo: Sujetos (ilustra los siete pasos)
  3. Algoritmo: Garantías (este repositoriogithub  muestra cómo trabajar con un algoritmo que retorna una estructura de datos)