Desarrollo Agil con Java, Spring, Hibernate y Eclipse

Estoy leyendo el libro Agile Java Development with Spring, Hibernate and Eclipse, escrito por Anil Hemrajani. Acerca del autor:


Anil Hemrajani ha estado trabajando con Java desde finales de 1995, como desarrollador, emprendedor, autor e instructor. Es el fundador de Isavix Corporation, un exitosa compañía de servicios IT (ahora Inscope Solutions), u de isavix.net (ahora DeveloperHub.com), una comunidad de desarrollo, que ha crecido a más de 100.000 miembros registrados. Tiene 20 de años de experiencia en la comunidad de IT, habiendo trabajdo para varios de las compañías Fourtune 100 y también en organizaciones más pequeñas. Ha publicado numerosos artículos en revistas bien conocidads, presentado en conferencias y seminarios alrededor del mundo, y ha recibido el premio “Outstanding Contribution to the Growth of the Java Community” de Sun Microsystems, el premio “Best Java Client” en  JavaOne por BackOnline, un producto de backup cliente/servidor basado en Java, y fue nominado para el premio Computerworld-Smithsonian por un sitio web que brinda un servicio online gratuito de almacenamiento de archivos. Su más reciente proyecto es el sitio visualpatterns.com.


Es un muy buen libro, que cubre los temas de logging, depuración remota, prácticas ágilas, JMX, JUnit, Ant, programación con POJOs (Plain Old Java Objects), librerías de tags de JSP, y más. Pero ahora, estoy interesado en comentar algunos párrafos del prefacio. Hemrajani escribe:


I began working with Java technology in late 1995, shortly before the Java Development Kit (JDK) 1.0 was formally released. Prior to that, I was programming in C and C++ for many years. I was truly excited about the features that Java offered, such as cross-platform portability, simpler syntax (simpler than C++, for example), objectoriented, secure, rich API, and more.


Traduzco libremente:


Comencé a trabajar con la tecnología Java a finales de 1995, poco antes de que el Java Development Kit (JDK) fuera formalmente liberado. Antes de eso, yo estuve programando en C y C++ por muchos años. Yo esta realmente excitado acerca de las nuevas características que ofrecía Java, como portabilidada cross-platform, sintaxis simple (más simple que C++, por ejemplo), orientado a objetos, seguridad, rica API, y más.


Yo tuve una carrera similar, pero por estos pagos. En algún momento de 1995, aprendía el lenguaje Java y parte de la librería, pasando a ser un fan del lenguaje. Era una liberación de programación con C++ (plagada de problemas de bien manejo de los new y los delete), y de Visual Basic (donde no había herencia, ni objetos completos). Pero debo admitir que la interfaz GUI estaba aún basada en una fea implementación AWT.


Over my 20-year career, I have learned a few things. Among these, my favorite is simplicity; anytime I see complexity, I begin doubting whether the solution is correct. This is how I had begun to feel about Java right around 2000, when the Java 2 Enterprise Edition (J2EE) started becoming mainstream. Note that from this point on, I will refer to J2EE as JEE because the “2” was recently dropped from the name by Sun Microsystems.

En mis 20 años de carrera, he aprendido unas pocas cosas. Entre ellas, mi favorita es la simplicidad: cada vez que veo complejidad, comienzo a dudar de si la solución que estoy viendo es correcta. Es así cómo me sentía alrededor de Java cerce de 2000, cuando el Java 2 Enterprise Edition (J2EEE) comnezaba a ser conocido. Noto que en desde ahora, me referiré a J2EE como JEE porque el “2” ha sido recientemente removido del nombre por Sun Microsystems.


Coincido. Cuando Sun lanzó J2EE, era todo un revoltijo. Por años, pensé que ellos, los de Sun, estaban en lo correcto, y que yo no entendía las razones para la complejidad subyacente en los Enterprise Java Beans. Hasta que leí los libros de Rod Johnson sobre desarrollo empresarial con Java: ahí confirmé lo extraño y complejo que es EJB.


My growing lack of interest in Java was a result of what I saw as unnecessary complexity in JEE introduced by layers of abstraction. I began to believe that Sun Microsystems (inventor of Java) was focusing Java and JEE on solving the most complex enterprise applications, but somewhat ignoring the relatively less complex, small- to medium-sized applications. Furthermore, I saw the hype take over people’s common sense because I ran across projects in which Enterprise JavaBeans (EJB) were used for nondistributed processing, such as local logging. I felt strongly enough about this subject to write a short article for JavaWorld.com in 2000 (http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html) titled, “Do You Really Need Enterprise JavaBeans?” (About five years later, we saw EJB 3.0 specifications being rewritten to become more simplified, to ease the development.) This brings us to this book and the reason I wrote it.

Mi crecience falta de interés en Java era un resultado de lo que yo veía como complejidad innecesaria en JEE, complejidad introducida por capas de abstracción. Comenzaba a creer que Sun Microsystems (los inventores de Java) estaba enfocando a Java y JEE para resolver aplicaciones complejas empresariales, pero ignorando las relativamente menos complejas aplicaciones pequeñas y medianas. Es más, yo veía que todo esa excesiva publicidad sobre el tema, estaba haciendo olvidar el sentido común, porque veia proyectos donde Enterprise JavaBeans (EJBs) estaban siendo usados para procesamiento no distribuido, como el logging local. Me sentía seguro en el tema, como para escribir un corto artículo en JavaWorld.com en el 2000 (http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html) titulado, “¿Realmente necesita Enterprise JavaBeans?” (cinco años más tarde, vemos que la especificación EJB 3.0 ha sido reescrita para ser más simple, para facilitar el desarrollo). Todo esto nos trae a este libro y las razones para haberlo escrito.


Los EJBs son el trabajo del diablo. La programación con POJO, ORMs (Object Relational Mappers) como Hubernate, y el uso del framework Spring, son ejemplos de buen diseño creados por la comunidad de Java. Finalmente, la gente de Sun vió la luz, y adoptaron muchas ideas de la comunidad en su nueva especificación EJB 3.0, pero para mí, eso fue un ejemplo de “demasiado poco, demasiado tarde”. La programación con EJB fue siempre una pesadilla, que merece ser borrada de la memoria de la humanidad entera.


Al comienzo de cada capítulo en este libro, hay una ilustración, describiendo una historia ficticia, que recorre el libro, describiendo cómo se lleva a cabo el desarrollo de una aplicación. No puedo resistir incluir una, del capítulo 2 (hay más en visualpatterns.com):



Más información sobre este libro, en


http://www.visualpatterns.com/agilejava.php


Esa página tiene la tabla de contenido, y comentarios de Scott W. Ambler, y Rod Johnson.


Otro libro que recomiendo, alineado con estas ideas:


Better, Faster, Lighter Java O’Reilly Media


también orientado a usar Hibernate, y Spring, pero explicando en cada capítulo las razones para adoptar tal o cual diseño.


Este post apareció originalmente en “Anglish” en


Agile Java Development with Spring, Hibernate and Eclipse


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 1390, 3463, 4753. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

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=""> <strike> <strong>