Haz un diseño SOLIDo

Estándar

tbbt-jengaCuando se habla de diseño de software lo primero que se piensa es en cajas, dibujos, flechas, etc. Esto puede ser cierto en un alto nivel, pero no es ese nivel de diseño del que quiero hablar en este momento, quiero bajar un poco a un nivel más cercano a la implementación. El código que escribimos también tiene un diseño (o una falta de él). Tener un buen diseño para tu código trae ventajas innegables como mantenibilidad, legibilidad, facilidad para probar, entre otros. Mientras que carecer de un diseño para tu código no sólo estarías perdiendo las ventajas antes mencionadas sino que seguramente te ganarás las malas vibras de sus compañeros de trabajo y sus deseos de inocularles algún tipo de cáncer.

En este artículo intentaré explicar qué son los principios SOLID, mostrando ejemplos de código. Sin embargo, por ningún motivo deben considerar esto como definitivo o final. Mi intención es dar una introducción al concepto.

Continuar leyendo

Tipos de referencias en Java

Estándar

De cualquier programador que clame conocer Java, se espera que esté al tanto de la Máquina Virtual de Java (JVM) y de la existencia y función del Recolector de Basura (Garbage Collector). Se sabe que el Recolector de Basura libera la memoria ocupada por todos aquellos objetos que son elegibles para tal acción. Por cuestiones de simplicidad, desde el inicio del aprendizaje de Java se aprende que un objeto es elegible para ser recolectado (y liberado) cuando no existe ninguna referencia apuntando a dicho objeto. Sin embargo, lo que no nos dicen es que existen más de un tipo de referencia y la elegibilidad está basado en estos diferentes tipos. Este es un hecho que ni siquiera en los exámenes de certificación OCA/OCP mencionan. Es ese tipo de conocimiento que se debe aprender investigando más a fondo acerca de la JVM y el Recolector de Basura.

Continuar leyendo