Un procedimiento que retorna una estructura de datos

Luego de estudiar un procedimiento que retorna un dato simple (un string, un número, una fecha o un booleano), vemos que las características de un procedimiento fácil de probar son estas:

  1. Tiene un solo punto de entrada, en sus parámetros.
  2. Tiene un solo punto de salida, en su return.
  3. Cada línea de código tiene una sola operación y se asigna a una variable.
  4. La última operación no se asigna a una variable, sino que es parte del return.

Estas características nos permiten luego refactorizarlo a un algoritmo orientado a objetos bien escrito.

A continuación veremos cómo estructurar un procedimiento que retorna una estructura de datos. Por estructura de datos, nos referimos a una clase que contiene solamente propiedades de lectura-escritura (get y set). También se les suele llamar objetos de transporte o Data Transfer Objects (DTOs).

En este caso, observemos sus características a continuación:

  1. Al inicio del procedimiento se inicializa la estructura de datos (new).
  2. Cada una de sus propiedades es asignada durante el procedimiento, y con una variable o un parámetro.
  3. Cada propiedad es generada con lo que podríamos llamar un “mini procedimiento”, guardando el mismo orden estudiado.
  4. Hay variables utilizadas para calcular más de una propiedad.

Cada una de estas características la resalto en esta imagen:

procedimiento-estrutura-de-datos-notasEl codigo de esta clase está aquí: https://github.com/oscarcenteno/algoritmos.cs.garantias/blob/master/Algoritmos.CS.Garantias.Negocio/ValoracionesPorISIN/1%20Como%20un%20procedimiento/CalculosDeLaValoracionPorISIN.cs

Si mantenemos este orden, entonces podremos convertir el procedimiento en objetos, y por consiguiente será más sencillo de entender y de cambiar.

Todos los pasos del refactoring están en el mismo repositorio: https://github.com/oscarcenteno/algoritmos.cs.garantias.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s