Archive for February, 2008

BDD y PHP

Wednesday, February 13th, 2008

Como muchos sabran PHP es un lenguaje al cual le tengo cariño, bueno, quizás más cariño del que debiera, en gran parte porque fue de mis primeros lenguajes que use exclusivamente para desarrollo web (yep, también puede servir para otras cosas que no sean web, sino revisen mis pocos post de PHP), y aunque ahora PHP es sumamente popular muchos siguen desarrollando de una forma algo “extraña” en PHP, total, digamos que le tengo cariño y punto.

Desde hace muchísimo tiempo soy fanático del desarrollo ágil, me considero a mi mismo agilista y fanático de muchas tendencias que “hasta ahora” estan de moda en muchos circulos de desarrollo, en .Net en general es fácil ser absorvido por prácticas como TDD, BDD, DDD (muchas siglas va?), refactoring, prefactoring, y muchas otras que en realidad le hacen la vida más fácil y placentera al desarrollador, he notado con el transcurso del tiempo que algo extraño sucede en la mayoría de los desarrolladores de PHP y es como que siguen pensando en PHP como “aquel lenguaje web que me hace hacer las cosas rápido sin preocuparme por formalismos”, bien tampoco estoy para hablar de eso hoy (solo queria desahogarme :P).

Una de esas técnicas ya muy usada es BDD, Behavior Driven Development, se trata, en resumen, de un paso más general en la forma de ver el testing de una aplicación, basandose en historias y especificaciones de software. Siempre me había preguntado como crear “Specs” en PHP hasta que hace unos días me topo con el siguiente post http://devzone.zend.com/article/3082-Designing-Klingon-Warships-Using-Behaviour-Driven-Development

Ojo, se basa en el uso de PHPSpec y no de PHPUnit, que aunque se ha publicado posee una extensión para la descripción de historias y especificaciones (http://sebastian-bergmann.de/archives/738-Support-for-BDD-and-Stories-in-PHPUnit-3.3.html) no lo considero una herramienta BDD como tal, sino un simple wrapper y extensión para la definición de especificaciones (sino fíjense en los ejemplos y vean la diferencia entre los dos). Algo interesante acerca de ambas implementaciones es el uso de Fluent Programming para especificar los test, estoy feliz de ver como se ha propagado la programación fluída últimamente :D (del cual también me hice fan desde que leí el articulo de M. Fowler).

Una forma de iniciar con BDD es usando FIT (se menciona bastante en el artículo), en PHP conozco solamente una extensión para el uso de FIT, esta en PEAR por supuesto :P se trata de Testing_FIT

Bueno, lean el artículo y me cuentan que tal les va :D

PHP, .Net o qué?

Thursday, February 7th, 2008

No suelo escribir asuntos personales o similares, pero ustedes son los que de vez en cuando leen mi blog, como sabran de lo que más escribo es de tecnologías relacionadas a .Net, y más que todo me he orientado a conceptos básicos (si, ya se que más que alguien quisiera saber cosas a lo avanzado, pero se han preguntado si ya han afianzado bien lo básico?) y aunque no es de mis lenguajes favoritos digamos que le tengo cariño a PHP, mi pregunta a ustedes se resume en los siguientes puntos:

  • Escribo más sobre PHP o ya no les interesa?
  • Divido todo en dos blogs, uno para PHP y otro para .Net o todo en uno solo?
  • En .Net les interesan mas los temas simples y básicos o quieren que me vaya de una vez a cosas mas marcianas?

Ustedes son mis lectores, ustedes deciden, dejen su comentario y veamos sus impresiones. De ustedes depende de que seguiré escribiendo (algo que ahora ya logré obtener mucho más tiempo para hacerlo aunque sea dos veces a la semana!) :P

Saludos!