Estrategias para escribir mejores test

Hace tiempo, odiaba escribir test, me resultaban una perdida de tiempo. Y si empezaba a escribirlos, rápidamente los dejaba de lado porque me resultaban lentos.

Y el problema era que no sabía como escribir tests. Ahora me encanta escribir test, es más, me siento un poco incómodo si no tengo unos pocos tests para ver si todo está funcionando bien (al menos el “happy-path”).

Voy a contarte algunos trucos que me ayudan a la hora de escribir test, ¿compartes tu también los tuyos?

Key Strategies For Ensuring Skillful Auto Repair Work

Seguir leyendo “Estrategias para escribir mejores test”

Haciendo debug con patitos de goma

¿En serio? ¿Cómo es posible que la mejor manera de hacer debug sea usando un patito de goma? Aunque visto así, pueda parecer un poco bizarro voy a contarte porqué hacer debug con un patito de goma es más efectivo de lo que parece. No es una técnica novedosa, los programadores más experimentados utilizan esta técnica para encontrar problemas en su código de una manera sencilla e intentar reducir su frustración cuando algo no termina de encajar del todo.

En realidad, está técnica viene explicada en el libro The Pragmatic Programer, voy a intentar explicar que es exactamente eso del patito de goma y porqué creo que es una táctica super efectiva.8164695884_25b5c6744d_z

Seguir leyendo “Haciendo debug con patitos de goma”

mi experiencia con el curso y la certificación de “Professional Scrum Master I”

Hace un tiempo asistí al curso de Professional Scrum Master impartido por Jerónimo Palacios. Mi idea, en un principio era mejorar mi conocimiento sobre Scrum y afianzar ese conocimiento presentándome al examen de certificación Profesional Scrum Master I.

Aquí me gustaría contar como fue todo, como preparé el curso y la certificación y algunos consejos para el examen. Resumiendo mucho: el curso estuvo genial, aprendí un montón y me sirvió como punto de partida para estudiar a fondo la guía de Scrum. Ese conocimiento sobre Scrum, sus artefactos, roles y ceremonias, me sirvió para poder superar un examen tipo test en inglés con multi-respuesta, en el que hay 80 preguntas y hay que sacar más de un 85% de acierto, todo ello en menos de 60 minutos.

SONY DSC

Seguir leyendo “mi experiencia con el curso y la certificación de “Professional Scrum Master I””

Como montar un SSD en MacBookPro y como instalarlo todo automaticamente con ansible

Ya llevaba tiempo dándole vueltas a dar un poco de cariño a mi MacBook Pro (13 pulgadas, finales de 2011). Así que hace poco decidí instalar un SSD, junto con una memoria RAM de 8G. ¿Como hice todo esto?

La idea que tenía era sustituir el disco duro que trae el Mac por uno SSD, y dejar el CD en su sitio.

Compras

Seguir leyendo “Como montar un SSD en MacBookPro y como instalarlo todo automaticamente con ansible”

Instalando Go: Primeros pasos

Hemos hablado mucho de PHP, PHPUnit, al principio tratamos temas de Java y ahora es el turno de Go. Go es un lenguaje de programación concurrente y compilado creado por Google, con una sintaxis parecida a C y tipado estático.

22207522091_3f77916264_z

Instalando go en Mac

La manera más sencilla de instalar GO es usando este pequeño script, por defecto para Go tenemos que indicarle una ruta (PATH) que es donde estarán todos nuestros proyectos. lo mejor es crear una carpeta en nuestra home llamada golang.

Seguir leyendo “Instalando Go: Primeros pasos”

Iniciando un proyecto en Laravel con Docker

Laravel es un framework de desarrollo PHP muy potente y cada vez más utilizado. Además tiene una comunidad impresionante, donde muchas personas contribuyen a crear un ecosistema genial. Hoy vamos a ver como empezar un proyecto Laravel y además añadirle Docker para así no tener que instalar nada de software en nuestro ordenador y hacerlo todo usando contenedores de Docker.

16717763124_62fdc893e5_z
Laravel | Sotaro OMURA

Creando el proyecto Laravel

En la documentación de Laravel (bastante buena por cierto), nos indican las mejores maneras de comenzar. Como la idea es utilizar Docker para todo, lo que haremos será clonar el proyecto de Laravel:

$ git clone https://github.com/laravel/laravel webapp

A mi me gusta utilizar git, sobre todo para poder ir commiteando los cambios que están bien y poder volver atrás si nos equivocamos, así que en este punto lo que vamos a hacer es iniciar un repositorio de git en la carpeta del proyecto

Seguir leyendo “Iniciando un proyecto en Laravel con Docker”

Refactoring y Connascence

Refactoring y Connascence

Hace poco tiempo hablamos de Connascence. En el post comentamos que el Connascence es una métrica de calidad software y una taxonomía (forma de clasificar) el acoplamiento entre componentes software. Por ello es una buena herramienta para tomar decisiones de diseño sobre todo cuando estamos refactorizando.

En el libro de Refactoring se habla de “code smell” como una manera de identificar la partes del código que pueden tener problemas y que sería bueno refactorizar. El inconveniente de los code smells es que son subjetivos y pueden variar según el lenguaje de programación, el desarrollador. Por ello podemos ayudarnos del connascence para identificar los code smell y así empujar el refactoring tomando decisiones basadas en el connascence.

Para ilustrar esto, lo ideal es tener en cuenta esta gráfica.

Seguir leyendo “Refactoring y Connascence”