lunes, 12 de julio de 2010

Usando Cucumber con Grails

Al utilizar una metodología de desarrollo de software, existe una etapa destinada a las pruebas, en la cual comprobamos si el código hace lo que realmente debe hacer. Es así como hoy en día existen distintos plugin que nos ayudan en esta tarea. En mi caso, he utilizado algunos frameworks (plugins) para pruebas de unidad como JUnit, Cactus, y otras para pruebas de rendimiento o esfuerzo como JMeter. Ultimamente me ha dado por hacer desarrollo con Grails, y descubrí un plugin escrito en Ruby para hacer pruebas de aceptación (A la Behaviour Driven Development) llamado Cucumber. Veremos que pasa cuando lo pongamos en marcha.

viernes, 2 de julio de 2010

10 ways to improve your code

Estuve viendo una charla dictada por Neal Ford acerca de 10 formas de mejorar el código que apareció en el portal InfoQ, y quise poner este link para que la vean cuando tengan tiempo. Me parece muy interesante para quienes nos interesa el desarrollo de software, y qué mejor que aprendamos de los mejores.

jueves, 1 de julio de 2010

Help the planet, use Granola :)

Granola se trata de un software que permite el ahorro de energía tanto en sistema Linux como Windows. Este instala un demonio (programa que corre en segundo plano) recolectando información acerca del plan de ahorro de energía y lo mejora. De esta forma utilizaremos de forma eficaz el uso de esta sin malgastarla cuando no la estamos utilizando.




miércoles, 23 de junio de 2010

Eclipse Helios is Here!


Finalmente se ha liberado esta nueva versión denominada Eclipse Helios, que corresponde al lanzamiento anual que nos tiene acostumbrado la fundación Eclipse. Para esta ocación, esta nueva versión cuenta con 39 Proyectos que hacen de esta versión una de las más esperadas por los desarrolladores e investigadores que lo utilizan. Aquí se detallan algunas de las mejoras realizadas.

sábado, 19 de junio de 2010

Domain-Driven Design (DDD)

Nunca había escuchado hablar de DDD. Hasta que un día ví un video acerca de metodologías de diseño de dominio y di con este término. Fue así como quise investigar un poco y quiero compartir con ustedes lo que descubrí.



¿Qué es DDD?

El término es algo como "Diseño orientado al Dominio", y trata acerca de 2 conceptos vitales:

1.- En un proyecto de software el bjetivo principal debe ser el dominio y su lógica.
2.- Los diseños de dominio complejos deben estar basados en un modelo.

DDD no es una tecnología o una metodología. Es una forma de pensar y un conjunto de prioridades, encaminadas a acelerar los proyectos de software que tienen que lidiar con un dominio más complejo.


Para cumplir con este objetivo, el equipo de desarrollo debe contar con un extenso conocimiento sobre practicas de diseño, técnicas y principios.



El reto de la complejidad

Muchas cosas se pueden poner en un proyecto en curso, burocracia, objetivos poco claros, falta de recursos, etc., pero será el enfoque de diseño el que determina que tan complejo puede llegar a ser el desarrollo. Cuando la complejidad se nos va de las manos, el software no puede ser entendido ampliamente como para modificarlo y extenderlo fácilmente. Por el contrario, un buen diseño puede crear oportunidades de aquellas características complejas.


Algunos de esos factores de diseño son tecnológicos y se han centrado en gran medida en diseño de redes, base de datos, etc.


Sin embargo, la complejidad mas importante de muchas aplicaciones no es técnica. Está en el propio dominio. La actividad o negocio del usuario. Cuando esta complejidad no es tratada en el diseño, no importaría que la infraestructura estuviera bien concebida. Un diseño exitoso deberia lidiar sistematicamente con este aspecto central del software.



Hasta la próxima entrega :) ... Ahí seguiré con la segunda parte.