Mejores prácticas, buenas prácticas en programación Java

Cómo muchos de ustedes saben, esta sección ha tenido un fuerte enfoque en patrones de diseño de software, en buenas prácticas y en cómo desarrollar software específico. El software es un tema muy amplio que tiene bastantes esquinas interesantes para digerir. Pero sin duda, uno de los puntos cruciales de todo el ecosistema técnico y de negocios del software, la calidad del código es una pieza fundamental para un software exitoso.

Hasta ahora nos hemos enfocado en muchas buenas prácticas y patrones de diseño intentando hacer un enfoque global, agnóstico del lenguaje de programación que se utiliza. Sin embargo, gracias a la experiencia en una variedad de proyectos, creo que es necesario una pequeña sección en el sitio sobre buenas prácticas, o mejores prácticas, al momento de escribir el código, pero enfocándonos en el lenguaje de programación que se utiliza para x o y desarrollo. En nuestro caso abriremos una sección de mejores prácticas en Java.

¿Por qué Java? Sencillamente es el que más usamos, el que más conocemos y el que más nos gusta. Espero les guste esta nueva sección, y si tienen comentarios o sugerencias no duden en plantearlas, porque poco a poco hemos comenzado a construir una comunidad más o menos grande, y nos encantaría irla agrandando con el tiempo.
cheap custom essay writing services

Patron Adaptador – Pattern Adapter – Patrones de diseño

adaptadorEl patrón estructural que ahora vamos a analizar es muy eficaz así como sencillo. Se puede utilizar en muchos contextos y es de especialidad utilidad cuando se utilizan códigos o librerías ajenos al que estamos utilizando y sobre el que no tenemos control. Este patrón se le conoce como adaptador o adapter en inglés, aunque algunos lo llaman también wrapper, que viene siendo como envoltorio. Ambos nombres tienen bastante sentido y explican el por qué de este patrón.

Read more Patron Adaptador – Pattern Adapter – Patrones de diseño

Patrones estructurales (structural patterns)

spiderVimos ya los patrones creacionales más importantes. No son todos, en el futuro veremos más, pero son los más usados y los más importantes. Ahora comenzamos con una nueva fase: Los patrones estructurales. Los patrones estructurales (structural patterns) podrían llamarse patrones de relaciones, o algo parecido, porque su principal función es facilitar y mejorar las relaciones entre objetos.

En el mundo de objetos, la creación de instancias es muy importante, pero tan importante como la creación, es la manera en la que instancias de objetos se comunican entre sí. Un diseño estandarizado y bien pensado puede facilitar mucho las cosas durante el desarrollo de un sistema grande. En ocasiones nos ponemos a realizar nuestras soluciones a la medida, pero generalmente estas solucionen decaen en construcciones extrañas que serán difíciles de entender para futuros desarrolladores, e incluso para nosotros mismos una vez que dejemos de ver el código.

Read more Patrones estructurales (structural patterns)

Builder Pattern, Interfaces Fluidas– Patrones de diseño

lego

El builder pattern, o patrón de construcción, es uno más de los patrones creacionales de diseño. En términos generales un builder esconde los detalles de la creación de un objeto final que se llama producto. Hay varios métodos para lograr esto, y por ello hay varias “implementaciones” de este patrón que en nada coinciden , salvo en el nombre. El clásico, usado en el GoF es un poco más complejo del que vamos a ver ahora, pero no se asusten, ya tendremos la oportunidad de aprenderlo. En esta ocasión nos vamos a enfocar en un builder que se llaman interfaces fluídas (fluid interfaces). Read more Builder Pattern, Interfaces Fluidas– Patrones de diseño

Abstract Factory Pattern – Patrones

factoryHace una semana hablamos del Factory Pattern, que realmente se llama Factory Method Pattern, porque como vimos se trata de reducir la desición de la creación de una instancia a un método, pero que por gusto mío lo pusimos en una clase Factory con un método abstracto. Ahora vamos a hablar del Abstract Factory Pattern, que va un paso más alla: el Abstract Factory Method agrupa varios Factory Methods.

Básicamente lo que hace el este patrón es unir varios Factory Methods, delegando la responsabilidad total sobre qué instancias crear a partir de datos comunes. La semana pasada hicimos un pequeño traductor, que al recibir un número desplegaba su valor en español, inglés o alemán. Para mostrar el concepto del Abstract Factory vamos a extender el ejemplo. Read more Abstract Factory Pattern – Patrones

Factory Pattern – Patrones

Los patrones creacionales (creational patterns) son aquellos que tienen que ver con la creación (duh!) de objetos. La razón de ser de estos patrones es para facilitar, ordenar, o ayudar en la creación de objetos. Dependiendo del lenguage de programación que estemos utilizando, generalmente crearemos un objeto así: Objeto o = new Objeto(). Pues bueno, en los patrones creacionales las cosas cambian un poquito, y probablemente ahora crearemos un objeto así Objeto o = ObjectoFactory.getInstance(“x”);, o algo parecido.

 

Hoy hablaremos del más famoso de los patrones de creación: en Factory Pattern (Patrón de fábrica). Utilizaremos los nombres ingleses porque creo que son más claros que las traducciones que se podrían hacer. Además, en software de todos lados, es más estandar utilizar el inglés en ciertas nomenclaturas para facilitar que otros lean nuestro código. Buhh, alguien alega por ahí, pero reconzcámoslo: programamos en inglés. 

Read more Factory Pattern – Patrones

Patrones de Diseño

image9294Patrones de Diseño (Design Patterns)

A partir de ahora comenzaremos todos los martes con un nuevo patrón de diseño. ¿Qué son los patrones de diseño? Bueno, durante el tiempo que el paradigma de programación orientado a objetos ha estado por ahí, se han aprendido muchas cosas. Muchas de las lecciones aprendidas se han tratado de conceptualizar. El primer esfuerzo se le debe a la conocida como Gang Of Four (GoF), quienes fueron los primeros en acuñar el término. 

Read more Patrones de Diseño