Buscar
Social
Ofertas laborales ES
« Liberado Java Plug-in Framework 1.0 | Main | Propuestas para mejorar el soporte de las propiedades en Java »
lunes
ene082007

Release de SpringContracts 0.3

En theserverside anuncian la publicación de la release 0.3 de SpringContracts. Este framework permite introducir diseño por contrato (design by contract) en aplicaciones basadas en spring mediante el uso de AOP y anotaciones.



Principales caracteristicas:



- Permite especificar precondiciones, postcondiciones e invariantes. Las condiciones se especifican mediante anotaciones y se ejecutan mediante el soporte para AOP de spring.

- Se configura a tavés del Application Context de spring.

- Dispone de una arquitectura que mediante el uso de pluggins permite modificar el lenguaje en el que se expresan las condiciones.

- Soporte para diferentes lenguajes a la hora de expresar las condiciones (EL, OGNL, Groovy, java/beanshell añadido en esta realease).



El diseño por contrato es una tecnica que permite comprobar que una clase determinada cumple con el contrato especificado. De este modo cuando alguna clase se salte el contrato inmediatamente se genera un error que nos permite detectar el origen del problema de manera sencilla. Los errores que no se detectan de forma temprana suelen derivar en comportamientos erraticos de la aplicación en ocasiones muy dificiles de determinar.



El diseño por contrato se puede implementar manualmente mediante el uso de sentencias assert, sin embargo si vamos sumando cosas: código para DBC, código para trazas, código de manejo de expcepciones... al final esto da como resultado que la lógica de negocio de los métodos queda difuminada entre tanto código de control/gestión.



El problema es que este código es necesario si queremos realizar aplicaciones robustas. Mediante el uso de AOP y anotaciones podemos evitar el problema de convertir nuestro código en una maraña sin perder la robustez que aportan tecnicas como el DBC.



Lo bueno de este framework: el uso de AOP y anotaciones para la defición de contratos.



Lo malo: Que sólo funciona con spring. Además sólo se puede utilizar sobre beans definidos en el application context. Esta limitación puede ser importante ya que no podemos aplicar DBC sobre clases de dominio no definidas dentro de spring.



¿habeis usado alguna DBC?, ¿os parece importante/necesario?, ¿cual creeis que es la mejor forma de implementarlo?



PD: mi primera noticia en javahispano!

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.