Haciendo TDD en PHP con Silex y PhpUnit (Parte 2)

Hace unos días hemos empezado a trabajar con TDD y Silex en un proyectos bastante especial, “Como utilizar Tdd con Silex utilizando PhpUnit” para ello ya tenemos configurado todo el entorno par a poder empezar a hacer test, escribir código y refactorizar.

Básicamente nuestro proyecto es la API de una calculadora 😉 es decir es una calculadora con la que podremos realizar operaciones aritméticas de 2 operandos con tan solo hacer peticiones GET a una dirección web. Para ello los pasos que daremos serán, refactorizar la aplicación actual para poder ampliarla con la nueva funcionalidad, crear una librería que realice las operaciones aritméticas, modifica el routing para poder hacer las operaciones haciendo peticiones GET desde un Navegador.

Refactorizar el proyecto de Silex con TDD para ampliar la aplicación.

Ahora que tenemos test (aunque solo sean un par) podemos hacer cambios y asegurarnos de que todo sigue funcionando. Lo primero que haremos será mover toda la lógica de la App. Pero antes que nada debemos asegurarnos de que todo está correcto, así que antes de tocar nada lanzamos nuestros tests.

Seguir leyendo “Haciendo TDD en PHP con Silex y PhpUnit (Parte 2)”

Poco a poco con Vagrant

Una de las frases que siempre se toman a broma es “esto en mi PC funciona”, muchas veces necesitamos tener entornos (Sistema operativo, librerías, frameworks, versiones, variables de entorno…) idénticos al que utiliza un sistema en producción y esto a veces es complicado y aparece la dichosa frase “esto en mi PC funciona”.

Otra de las razones es que muchas veces pruebo herramientas software, tecnologías, framework, … y hay veces que termino 

instalando muchos programas, configurando variables de entorno y cosas así para que todo funcione para poder solucionar el problema que estaba intentando.

 

Por ello buscando un poco sobre como disponer de entornos “idénticos” a producción, que puedan crearse y borrase según las necesidades que vayamos teniendo he leído algo sobre Vagrant. Así puedo disponer de máquinas virtuales de “usar y tirar” con las que poder trabajar.

Vagrant es una herramienta para la creación y configuración de entornos de desarrollo virtualizados, básicamente Vagrant es una interfaz de VirtualBox, que facilita la creación de máquinas virtuales.

Seguir leyendo “Poco a poco con Vagrant”

De Scrum a Lean – Kanban una gran herramienta

El otro día ya empezamos a traducir el artículo “De Scrum a Lean” publicado aquí: http://net.tutsplus.com/articles/editorials/from-scrum-to-lean/. En él se habla de los principios de Lean y de cómo con esos principios podemos adaptarlos al desarrollo de software, en este caso vamos a comentar los principios del Kanban y cómo aplicar esta técnica al desarrollo software y sobre todo cuando tenemos como base una metodología Scrum y un equipo que congenia bien.

Kanban una gran herramienta

Hay varias técnicas y herramientas para hacer el trabajo de Lean. Prefiero Kanban, una herramienta basada en tableros, similar al tablero de planificación de Scrum. Podemos imaginar kanban como un embudo doble

Seguir leyendo “De Scrum a Lean – Kanban una gran herramienta”

De Scrum a Lean – aprendiendo un poco

Aunque el objetivo principal de Scrum es la organización y la gestión de proyecto, Lean se centra más en los procesos con el fin de producir más rápidamente productos de calidad. Este modelo de gestión (Lean) puede ser útil para empezar a adoptar principios ágiles, o puede ser a lo que evolucione tu equipo cuando Scrum no es suficiente.

Esta es la historia de Parkos Csaba publicada aquí: http://net.tutsplus.com/articles/editorials/from-scrum-to-lean/, me pareció interesante traducirla y compartirla .

Un poco de historia

Lean es un conjunto de principios definidos por la industria de fabricación de automóviles de Japón en la década de 1980. El ingeniero de calidad de Toyota, John Krafcik, acuñó el término, mientras que la observaba los procesos y herramientas utilizadas para “eliminar el desperdicio” en la producción de automóviles en masa. Aunque no fue hasta 2003 cuando Mary y Tom Poppendieck introdujeron el término Lean como  un proceso de desarrollo software en su libro, Lean Software Development: An Agile Toolkit.

Considerando Scrum como un conjunto de reglas y roles, Lean es un conjunto de principios y conceptos con algunas herramientas. Ambos son considerados como técnicas ágiles, y comparten la misma ideología de entrega rápida mientras reducen defectos y errores. Siempre me gusta enfatizar la adaptación ágil, pero no podemos olvidar  que Scrum se presenta como un conjunto de reglas obligatorias. De hecho algunos fanáticos de Scrum ponen el grito en el cielo si estar reglas no se siguen al pie de la letra.

Seguir leyendo “De Scrum a Lean – aprendiendo un poco”

Liferay IDE – Creando un Portlet más allá del “hello world”

Vamos a crear un portlet con un poquito de chicha utilizando Liferay IDE, no es el típico hola mundo, sino un pequeño formulario, así aprenderemos como procesar un formulario con Liferay.

Lo primero será crear el portlet, como vemos aquí:

Lo añadimos a Tomcat.

Con esto tenemos creado un portlet “Hola mundo”, pero vamos a ir un poco más allá, vamos a procesar un formulario para ver cómo se trabaja con los distintos modos del portlet y así tener un portlet con algo de funcionalidad.

Lo primero que vamos a hacer es crear una clase llamada UserRegistrationPortlet que extienda a GenericPortlet, esta clase estará dentro de la carpeta src, en el paquete com.jesuslc

Seguir leyendo “Liferay IDE – Creando un Portlet más allá del “hello world””

Aprendiendo sobre portlets

Cuando nos decidimos a utilizar Liferay una de las cosas que debemos tener en cuenta es que debemos aprender sobre portlets.

Pero por dónde empiezo a la hora de desarrollar un portlet, que métodos tengo que implementar, como es el ciclo de vida de un portel.

Estas son muchas de las preguntas que nos surgen y que vamos a recopilar aquí.

Donde se ejecuta un portlet

Los portlets se ejecutan en un contenedor de portlets, existen muchos contenedores de portltes como JetSpeed o Liferay.

Qué métodos debe implementar

Esta es la interfaz que debe implementar un portlets. Normalmente lo que se hace es extender a javax.portlet.GenericPortlet

Seguir leyendo “Aprendiendo sobre portlets”

Como crear Portlets utilizando Liferay IDE

Hace unos días contamos como instalar Liferay IDE sobre eclipse, creo que es hora de desarrollar un pequeño portlet “Hola Mundo” para probar las funcionalidades de Liferay IDE.

Los portlets se ejecutan dentro de un contenedor que gestiona su ciclo de vida, realizando llamadas a métodos equivalentes a render() o destroy(). Finalmente, este contenedor puede formar parte de un software de portales empresarial, como Liferay, Oracle Weblogic Portal o IBM Websphere Portal. En nuestro caso Liferay.

Manos a la obra.

Cambiar a la perspectiva Liferay

Lo primero será abrir Eclipse, elegir el workspace (yo he creado uno en el mismo directorio donde descomprimimos Liferay) y cambiar a la perspectiva de Liferay. Para ello vamos a windows->Open Perspective->Other y seleccionamos Liferay

Configurar el servidor

Ahora es hora de configurar un servidor de aplicaciones. Nosotros vamos a escoger el que viene con Liferay. Si ya tienes un Tomcat instalado en tu máquina ( XAMPP o similar) solo debemos cambiar unas cosillas.

Seguir leyendo “Como crear Portlets utilizando Liferay IDE”