God Java Developer To Great One – Jhon Arthur

cover He de confesar que la portada de este libro me capturo de inmediato por el título, lo siento pero fue un golpe directo para alimentar mi ego que no podía dejar pasar.

Pero si lo vemos desde esta perspectiva, te sientes como “un buen programador” y un libro te dice como volverte en “uno grandioso”es algo que no pude evitar, pero tenía curiosidad por saber lo que el autor considera que un desarrollador grandioso debe tener.

Y, sin ser negativo, pienso que esté libro no aporta mucho cuando ya tienes una trayectoría porque describe (de forma sencilla) los patrones de desarrollo básicos que todo programador debería conocer, hacer o por lo menos saber que existen.

Voy a confesar que soy muy malo con los nombres de personas, de lugares o cosas, pero cuando ví los ejemplos de código me dí cuenta que había utilizado casí todos solo que  nunca supe que esa forma de programar era un patron de diseño de software.

No me siento un gran programador pero me gusta desarrollar y soy feliz por ello por hacer lo que me gusta, no me considero un experto porque el mercado de software es brutalmente cambiante, hoy puedes tener conocimiento en una tecnología y en un par de meses ya es remplazado… y me pregunto ¿cómo puedes ser grandioso en algo que cambia tan rápido? fácil, en mi opinión creo que no se puede.

Prefiero cuando la gente dice “tengo experiencia en X tecnología” a decir “soy especialista en esto…” para mí lo que te hace grande es la humildad, para escuchar, aprender y compartir.

El libro no es bueno y tampoco es malo, pero a mi me ayudo a descubrir como se llama esa forma de codificar que como buena práctica predico siempre que estoy desarrollando.

Saludos

Excepciones en Java: Lo que (probablemente) estas haciendo mal

Me parece muy interesante el artículo de DZone que habla sobre el uso que tenemos con las excepciones en Java.

Y en esta entrada voy a dejar los puntos que considero más relevantes y la síntesis de lo que he comprendido, pero antes me gustaría comenzar con esta grandiosa frase:

“Utilizar excepciones para controlar el flujo a través de tú programa es una mala prácitca” …

“Las Excepciones deben ser para casos excepcionales”

Seguir leyendo

Install Java JDK on Server (Suse)

La instalación del a jdk en servidores Unix puede generar a veces algunos problemas ya que generalmente no hay una guía exacta para realizar la instalación, pero desde mi punto de vista creo que también se debe a que en internet hay muchas formas de hacerlo y también es verdad que Unix lo permite, por lo tanto no hay una forma “correcta” de hacerlo.

Sin embargo hay una forma de mantener un orden dentro de todo este caos, por ejemplo hay servidores que a veces necesitan tener instaladas dos o más versiones de la jdk en el mismo server… y ¿como controlamos esto? este tipo de cuestiones son las que causan esos problemas  a los que me refiero porque muchos ajustamos variables de entorno y terminamos creando un dessatre, y bueno antes de mostrar la instalación quería transmitir esta pequeña perspectiva.

El siguiente comando es el que nos a ayudar en Suse a controlar esto:

update-alternatives

Nota: en Ubuntu el equivalente es el comando alternatives
Seguir leyendo

Hibernate / JPA Clear Cache

Manejar persistencia puede ser un poco complejo si no se conoce el funcionamientos de los caches, generalmente cuando tienes configurado el framework para utilizarlos tienes que actualizar los datos obligatoriamente desde el código de tu aplicación.

Si por alguna razón los datos son actualizados en la base de datos y el framework no tiene conocimiento de estos cambios, en el cache vas a tener la información vieja e inconsistente.

Esto NO es un error, depende de la forma en como configuras tus querys y de la arquitectura de tu aplicación.

Para poder indicarle al framework que se ejecute el refresh de forma manual al cache de Nivel 1 puedes hacerlo mediente el siguiente código:

  • Para JPA obtienes la referencia al EntityManager o EntityManagerFactory y ejecutas el método clear().
  • Para Hibernate debes utilizar el método evict().

Es muy importante conocer en que puntos de tu aplicación debes utilizar el cache ya que puede ser integral en todas tus consultas, por entidades o por querys.

Lo recomendable es aplicarlo en consultas recurrentes o de catálogos.

Referencias:

Saludos!

Set System Variables in Windows


En ocasiones tenemos los permisos restringidos y no podemos accesar a la configuración de variables del sistema de windowos, pero… existe una alternativa (solo windows 7 y 8).

Puedes establecer y modificar las variables desde la terminal, en el siguiente ejemplo se muestra como agregar la variable para Maven:

Abres una terminal y escribes los siguientes comandos:

setx M2_HOME "C:\Users\asanchez\Apps\apache-maven-3.2.1" /M
setx PATH "%PATH%,%M2_HOME%\bin" /M

Con esto ya tenemos cargadas las variables.

Nota: Para que los cambios se vean reflejados debes cerrar y abrir la terminal.

Espero sea útil. Saludos!

Referencias