Como JSON ayuda a la separación efectiva de capas y/o roles en J2EE. Parte II
En el post anterior, prometí argumentar como solucionar el “punto ciego” entre el area de programación y web con JSON.
Antes que nada, quiero mencionar 2 casos de exito de uso cotidiano.
1.- GMAIL:
Este es mi ejemplo favorito de como la precarga de objetos JSON ayuda al rendimiento, Gmail carga todos los mails, labels, carpetas con JSON (arreglos javascript) y los renderea obviamente con javascript.
2.-Netvibes:
Este es un caso extremo, practicamente todo el sitio se renderea con javascript utilizando objetos JSON, si no me creen solo vean el código fuente, casi nada de XHTML.
¿Por que expongo estos ejemplos?, para derribar el mito de que utilizar JSON para el despliegue de data es poco serio, poco seguro y poco mantenible.
El origen de estos mitos tiene como causal el desconcimiento hacia esta tecnología, el menosprecio por el Javascript como herramienta de rendereo.
Lo del código mantenible, puede que algo de cierto tenga ya que no existen blueprints, ni patrones, ni manual de buenas practicas que se le compare a J2EE y al mundo Java en general.
Ahora, todo depende del cristal con que se mire. Para un programador RIA puede ser tan oscuro el mundo Java como para el programador de Java el Javascript, por eso JSON puede utilizarse como la idioma común entre ambos mundos, el anhelado esperanto de la programación.
Muchos dirán, ¿acaso no existe XML para eso?.
Claro que sirve el XML como intercambio de datos, pero la gracia de JSON es que es la idioma nativa para declarar objetos en Javascript por lo que no necesitamos ninguna herramienta de parseo para la capa web.
Dirigiendome hacia lo concreto, hacia el objetivo de este post: La dificil misión de la separación efectiva de capas y como podemos lograr esto sin morir en el intento.
Existe una libreria Java de google, llamada GSON que nos permite transformar objetos, arrays, collections de JAVA a un String de JSON y tambien podemos transformar un String de JSON a objetos JAVA, es decir podemos ocupar esto en ambos sentidos.
¿Que nos permite esto?
Que el web developer pueda trabajar a partir de un objeto JSON para darle lógica a un sitio sin estar conectado a una base de datos, sin preocuparse por lo que esta en el back-end. Todo esto mientras que el programador no se preocupa que es lo que sucede en el front, solamente le interesa recibir un objeto en JSON que pueda ser deserializado a JAVA.
Para las tercera parte, colocaré ejemplos prácticos.
[...] Click aquí para la parte II. [...]
Que puedo decir, no puedo estar mas de acuerdo contigo.