Principios fundamentales de los tipos de datos en Java

Primitivos y wrappers de primitivos en Java Asignar una variable primitiva usando otra variable primitiva Con los primitivos, cuando asignamos el valor de una variable a el valor de otra variable, simplemente se genera una copia, por lo que la variable original no mutará su estado por más que la variable nueva decida cambiar. public class Main { public static void main(String[] args) { int x = 0; int y = x; y=5; System.out.println(x);//x sigue valiendo 0 } } Funciones que operan primitivos Algo similar ocurre cuando se pasa por parámetro a una función un tipo primitivo, pasa a ser una copia, por lo que es una variable nueva dentro de dicho scope. ...

2020-06-26 · 5 min

Análisis del libro "Implementation patterns"

Implementations Patterns, de Kent Beck, es un libro sobre programación que define buenas prácticas a seguir en el desarrollo de código en Java, con el objetivo de tener un código legible y del que nos sintamos orgullosos. Se busca mejorar la perspectiva que tenga un programador sobre el sistema que va a tratar, para que entienda que cuando escriba código, éste debe hablar por si solo, debe ser la respuesta correcta y simple a una pregunta que se haga una persona cuando debe resolver un problema. Podemos decir entonces que el libro trata la responsabilidad que debe asumir un programador para tener un código satisfactorio. ...

2020-06-24 · 37 min

Patrón decorator

Es un patrón de diseño que nos va a permitir agregar funcionalidad a un objeto existente sin cambiar su estructura. Se busca poder añadir dinámicamente funcionalidad a un Objeto. Esto nos permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera. Un gran momento para aplicarlo es cuando tenemos una clase que contiene métodos que realizan algo más que lógica de negocio. Dicha lógica no tiene que ver con la intencionalidad del método, pero si es cierto que necesitamos que éste ahí. Buscamos el desacople de funcionalidades que no deberían estar realizando ciertos métodos de una clase, ya que dichos requisitos responden a una forma de implementación que puede variar en el futuro, y el hecho de tenerlo separado en otros métodos que añaden funcionalidad a uno principal, nos permite cambiar fácilmente la funcionalidad, sin tener que realizar el cambio en muchos lugares del código, lo que nos aporta una gran mantenibilidad del código. ...

2020-06-23 · 2 min

Docker basics

Imágenes vs Contenedores Para entender claramente ambos conceptos, me ayuda asemejarlos a la programación habitual, entendiendo que las imágenes son como clases y los contenedores como los objetos instanciados de las clases. La imagen contiene la base para crear un contenedor, y éste carga la imagen para empezar a funcionar. Una imagen puede ser cargada en todos los contenedores que queramos, igual que un contenedor puede cargar varias imágenes. Cualquier cambio realizado en sistema de archivos del contenedor no afecta a la imagen, pues la imagen solo se usa para la creación del contenedor. ...

2020-06-09 · 4 min

Análisis del libro "Diseño ágil con TDD"

INTRODUCCIÓN “Diseño Ágil con TDD”, por Carlos Ble, es un libro muy interesante que nos enseña como implementar Test-Driven Development en el desarrollo de código. Muestra como basar nuestro código en los Test que escribimos, y no al revés. A continuación comparto mis experiencias leyendo éste libro. ¿QUE BENEFICIOS NOS APORTA? Se presentan grandes beneficios de codificar de ésta forma. Se habla de conseguir un código simple, que haga lo que necesitamos para cada momento, que cuando falle nos de un correcto y constante feedback de porqué eso está ocurriendo, así como un código legible y fácil de mantener. Obliga a los programadores a pensar primero en cual es la solución que quieren conseguir antes de comenzar a implementarla, y como consecuencia llegar a manejar diversas formas de conseguir lo que se desea teniendo en cuenta más casos de uso ...

2020-05-11 · 13 min