¿Alguna vez soñaron con un generador de aplicaciones web que puedas parametrizar, echar a correr y te construya una aplicación con varios features como login, reportes, abms, menus, etc.? Y que, como “bonus track”, te defina la jerarquía de directorios de proyecto, te configure el build system y asocie la misma aplicación a un servidor de integración continua.
¿Existe en Globant algo de eso? Bueno, les voy a dar una buena noticia.. Si existe un script que parametrizado genera mágicamente un template para proyectos web. Se llama Katari. La idea de Katari es que se use en Globant como punto de partida para desarrollar aplicaciones web en Java.

El primer objetivo de Katari fue resolver los mismos problemas de siempre pero con similares soluciones y tecnologías.
Segundo, no empezar las aplicaciones web desde cero sino a partir de una base sólida.

Por último, buscar la reutilización de código a través de módulos intercambiables.
Dichos módulos constituyen la base de la arquitectura extensible de Katari. Podríamos definir a Katari como un contenedor de módulos que provee servicios comunes como dispatching, manejo de menus y seguridad.
¿Y como se reutiliza un modulo? Todas las capas de un modulo: vista, aplicación y dominio se empaquetan en un JAR que puede ser utilizado en otras aplicaciones.
Katari y sus módulos están construidos con los frameworks mas usados como: Spring, Hibernate, Freemarker, Sitemesh, Acegi, Mule, etc. Esto implica que no tenés que renegar más con problemas de integración, ya que Katari lo hace por vos.
En lo que respecta al dominio de cada módulo podemos decir que es rico y su diseño se basa en los conceptos muy bien explicados en el libro Domain Driven Design de Evans.

En la práctica, al momento de desarrollar, Katari te permite configurar fácilmente tu propio ambiente haciendo uso de la funcionalidad “properties override” de Spring sumado a filtros de Maven. Por otro lado las tablas de que están una una base de datos local con recreadas antes de cada corrida de tests. Y ya que hablamos de testing, debemos mencionar que Katari trae integrados test funcionales que corren después de levantar en forma automática un Tomcat o Jetty.
Armar un release también es muy sencillo en Katari, basta con correr un comando Maven que genera un zip con todo lo necesario para hacer un deploy. Solo se necesita configurar el archivo de properties y correr el ddl (generado también por Katari) para crear la base de datos de la aplicación.
Ojo no se ilusionen, Katari no cura todo como la aspirina, pero es bueno considerarlo al momento de encarar nuevas aplicaciones web en Java. Katari ya tiene 3 años en Globant y ya se uso en una buena cantidad de proyectos como Funky Sexy Cool, Globant DNI, y varios mas.
Una parte importante que falta contarles es que un objetivo a largo plazo de Katari es reducir el TTC (time to code ) relacionado a la tecnología. Que significa esto? Que en un futuro cuando todos los Globers estén cancheros con Katari y pasen de un proyecto a otro solo necestarían aprender del negocio del proyecto ya que la variación de tecnología tendería a cero.
El código fuente de Katari esta disponible (con permisos de lectura) para cualquier Glober. Estos fuentes se pueden tomar como ejemplo de lo que Globant considera como código bien escrito. Quiero decir considerable unit test, comentarios, checkstyle.
Como les conté anteriormente Katari es un contenedor de módulos. La última versión de Katari viene con módulos básicos que se necesitan en cualquier aplicación web y demanda de la colaboración de todos los Globers para crear nuevos módulos. Si les interesa el proyecto y quieren colaborar pueden hablar con Pablo Graña (el creador de la criatura) que seguramente los recibirá con los brazos abiertos.

Facebooktwitterredditlinkedinby feather

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  1. Avatar

    Muy bueno el artículo, casi que compro :). Igual aclaro que Funky no usó anubis.

    De todas maneras es cierto que Anubis ayuda al startup del proyecto, sobre todo Ci. Igual hay un montón de cosas que aun no resuelve, acá hay algunos:

    http://maven.corp.globant.com/projects/globant/com.globant.anubis/anubis/0.17-SNAPSHOT/todo.html

    Para el que le interese, acá se trackean los bugs (supongo que se movera a Trac en el futuro)

    https://trackstudio.corp.globant.com/TrackStudio/task/20804?thisframe=true

    Saludos.