Escribir código es una tarea suficientemente compleja. Leer y comprender código fuente es moneda corriente a lo largo del día de toda persona que se dedique al software. En este artículo expongo las razones por las cuales puede ser una buena idea establecer y seguir convenciones al momento de desarrollar soluciones de software.
Continuar leyendoDebemos admitir que los métodos cortos y simples tienen su cuota de belleza... pero ¿qué sucede cuando la lógica que requieren es inherentemente extensa? Existe una técnica de refactor que permite extraer comportamientos complejos en un objeto aparte, y delegar la lógica para poder realizar cambios que de otro modo, serían muy engorrosos.
Continuar leyendoUn sistema de control de versiones (SCV desde ahora), es un software que nos permite navegar a través de distintas versiones de un conjunto de archivos. Aplicado al desarrollo de software, es una herramienta extremadamente útil; nos servirá para poder realizar modificaciones al proyecto sin afectar a versiones que ya fueran funcionales. Una vez que las modificaciones son estables, y probadas, podrán incorporarse a las versiones guardadas del proyecto. El SCV más utilizado actualmente es git. Si bien es una herramienta muy completa (y compleja), las bases son muy simples. En este primer artículo hablaremos de su flujo básico.
Continuar leyendoTodo comienza cuando invocamos un método que devuelve un objeto si lo encuentra, o null
si no lo hace. Acto seguido, debemos chequear si ese valor devuelto es efectivamente el objeto esperado para poder operar. Y si nos ponemos audaces y no chequeamos la posible nulidad, nos arriesgamos a obtener la excepción más conocida por todos los programadores: las referencias a null
.
Como sabemos, un parámetro es todo valor que le proporcionemos a un método para que con él realice su cometido. El patrón Parameter Object surge de la necesidad de agrupar varios parámetros que suelen utilizarse juntos a lo largo de un programa. Estos parámetros se utilizan juntos por una coherencia que existe entre ellos (caso contrario, no estamos ante un candidato a Parameter Object). No debemos caer en la trampa de agrupar bajo un mismo objeto cualquier conjunto de valores: si agrupamos dos conceptos prematuramente, no será fácil desagruparlos luego.
Continuar leyendoUn Value Object es un objeto que está caracterizado por sus valores en lugar de por su identidad. Esto quiere decir, que dos objetos con los mismos valores son equivalentes aún no siendo el mismo objeto, ni teniendo una identidad definida. Ejemplos clásicos de éstos son los rangos de valores, las fechas, las representaciones del dinero con la moneda correspondiente entre muchos otros.
Continuar leyendo