Below you will find pages that utilize the taxonomy term “TDD & Katas”
Rigor Talks – PHP – #31 – Viewing Domain Events with Kibana (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación.
En este vídeo, vamos a configurar Kibana para montar gráficos y ver la información de los eventos que hemos enviado a Elastic de una forma que negocio flipe :)
Rigor Talks – PHP – #30 – Sending Domain Events to Elastic III (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación.
En este vídeo, vamos a ver la cómo enriquecer el evento de dominio antes de enviarlo a Elastic. Agregaremos información sobre la request, memoria, etc. para traquear si algún servidor está procesando menos eventos de un cierto tipo.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #29 – Sending Domain Events to Elastic II (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación. En este vídeo, vamos a ver la segunda alternativa para enviar todos los eventos juntos de una vez, después de ejecutar el command handler. Reducimos números de peticiones mejorando el rendimiento.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #28 – Sending Domain Events to Elastic (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación. En este vídeo, vamos a ver una de las alternativas para hacer esto, el envío síncrono a Elastic por cada eventos disparado.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #27 – Distributing Domain Events using RabbitMQ (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este sexto video de la serie, vamos a distribuir los eventos, que tenemos persistidos en base de datos, hacia un sistema de colas como RabbitMQ. Veremos algunas consideraciones y trucos a tener en cuenta.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #26 – Distributing Domain Events using REST (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este quinto video de la serie, vamos a empezar a discutir manera de distribuir los eventos. El primer método es quizá menos conocido, REST. Veremos qué beneficios tiene y algunos trucos para implementarlo.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #25 – Persisting Domain Events (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este cuarto video, vamos a ver cómo implementar la persistencia de Eventos de Dominio, para qué es útil y cuáles son sus beneficios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #24 – Domain Events III (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este tercer video, veremos la segunda alternativa para disparar un evento de dominio: un publisher estático. Veremos sus puntos fuertes y flojos.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #23 – Domain Events II (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este segundo video, veremos la primera alternativa para disparar un evento de dominio: acumularlos en la entidad. Veremos sus puntos fuertes y flojos.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #22 – Domain Events I (Spanish)
Hola Amigos del Rigor! Arrancamos una miniserie de videos sobre Domain Events. En este primer video, veremos cómo modelar un evento de dominio e introduciremos las diferentes manera de dispararlos. En los siguientes, veremos en detalle dichas alternativas, así como su relación con la persistencia y la distribución.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #21 – Command Bus (Spanish)
Hola Amigos del Rigor! Perdonad por el retraso pero estuve preparando la certificación de AWS Certified Solutions Architect – Associate que al final conseguí la semana pasada.
En este video, vamos a continuar evolucionando los Command Handlers y su contexto de ejecución presentando el Command Bus. Veremos cuáles son sus objetivos y para qué nos resulta útil. Por último, hablaremos sobre Tactician.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #20 – Application Services and Command Handlers (Spanish)
Hola Amigos del Rigor! Vamos con una entrega más. En esta ocasión, vamos a ver la diferencia entre Application Services y Command Handlers, así como algún truco sobre Command Handlers para decorarlos y facilitar tareas como el Logging o la gestión de Transacciones.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #19 – Refactor Use Case VI (Spanish)
Hola Amigos del Rigor! Después de explicar el principio de Tell-Don’t-Ask, continuamos con la serie de los videos de refactoring. En este video, vamos a ver cómo extraer dependencias como Loggers, Servicios para enviar notificaciones o similares usando una primera aproximación sencilla con un EventDispatcher.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #18 – Tell-Don’t-Ask (Spanish)
Hola Amigos del Rigor! Hacemos un parada en la serie de los videos sobre refactoring para explicar el principio de Tell-Don’t-Ask. Lo hemos ido utilizando en los videos anteriores pero no lo había presentado formalmente.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #17 – Refactor Use Case V (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. Los Application Services deben coordinar pero no contener lógica de negocio. En este video, veremos varios trucos para mover la lógica de negocio del Application Service hacia Entidades y Repositorios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #16 – Refactor Use Case IV (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a mejorar la calidad de los tests unitarios acabando de agregar assests que faltaban e introduciendo un Spy. Con esto, nos aseguraremos que aún teniendo 100% de cobertura en los tests, tenemos que esta atentos a invocaciones que no tienen retorno, como logging, notifiers, publishers de eventos, etc.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #15 – Refactor Use Case III (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a acabar de testear por completo todo el Application Service del video anterior utilizando técnicas que vimos en los videos anteriores como Test Classes o Self-Shunt. En el siguiente video veremos cómo enriquecer nuestro dominio moviendo parte de la lógica a las entidades.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #14 – Refactor Use Case II (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a testear parte del Application Service que extrajimos en el video anterior. Aprovecharemos para mejorar el código con algunos casos no contemplados en el código original.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #13 – Refactor Use Case I (Spanish)
Hola Amigos del Rigor! Hoy es mi cumpleaños, 34 primaveras. He traído donuts a la oficina, pero como no podéis acceder a ellos :(, aquí os dejo un regalito para vosotros! Arranco una nueva serie de videos sobre Refactoring de código acoplado. En este video, vamos a ver cómo refactorizar código escrito directamente en el controlador web de cualquier framework donde se mezcla lógica de negocio y detalles de infraestructura.
Lo sacaremos a un Application Service, invertiremos todas las dependencias y lo dejaremos listo para poderlo testear.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #12 – Mutant Testing (Spanish)
Hola Amigos del Rigor! Unit Testear nuestro código con un 100% de coverage no es suficiente. En este video, vamos a ver cómo aplicar “Mutant Testing” a nuestro código para mejorar la calidad de nuestros tests unitarios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #11 – Immutability (Spanish)
Hola Amigos del Rigor! Continuamos con un video sobre inmutabilidad. Vamos a ver cómo poder hacer que nuestras clases, especialmente aquellas con las que modelamos Value Objects pueden ser inmutables.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #10 – Self-Shunt III (Spanish)
Hola Amigos del Rigor! Vamos a con el último de los tres videos sobre el patrón de testing “Self-Shunt”. En este video, veremos un truco muy sencillo para poder testear cadenas de invocaciones que incumplen la ley de Demeter.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #9 – Self-Shunt II (Spanish)
Hola Amigos del Rigor! Vamos a con el tercer de los cuatro videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. En este video, veremos una implementación alternativa del “Self-Shunt” sólo para PHP7 usando clases anónimas.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #8 – Self-Shunt (Spanish)
Hola Amigos del Rigor! Vamos a con el segundo de los cuatro videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. En este video, veremos un atajo para implementar “Test Classes” usando un patrón conocido como “Self-Shunt”.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #7 – Test Class (Spanish)
Hola Amigos del Rigor! Vamos a arrancar un serie de 4 videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. Aquí os dejo el primero.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #6 – Named Constructors IV (Spanish)
Hola Amigos del Rigor! Acabamos con la serie sobre “Named Constructors” con el último video de los cuatro. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #5 – Named Constructors III (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre “Named Constructors” con el tercer de los cuatro videos. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #4 – Named Constructors II (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre “Named Constructors” con el segundo de los cuatro videos. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #3 – Named Constructors I (Spanish)
Hola Amigos del Rigor! Vamos a arrancar un serie de 4 videos sobre “Named Constructors”. También conocidos como “Semantic Constructors” o “Constructor Methods”. Aquí os dejo el primero.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Integración Continua y Deployment Continuo
Os dejo por aquí, una de mis charlas impartida en la asignatura “Técnicas para el desarrollo de software en producción” dentro del Máster en Tecnologías Informáticas de la Universidad de La Rioja. Se grabó hace un año (26/11/2015), pero no lo había encontrado hasta hace unas semanas. Espero que sea útil.
Awesome two days helping @Lowpost_es team
I have recently visited Valencia in order to help my friends at Lowpost. It was great and I had a lot of fun! I would like to tell you a bit about how it was.
Who is Lowpost?
Lowpost is a cool start-up that are focused in Content Marketing. Lowpost connects companies that need interesting content with authors that can write about such topics. Authors bet for the open jobs and then they deliver the content to the final customer. Everything around such process is managed by the Lowpost platform.
As a start-up, they have grown quite fast, so their code. They started with Drupal, as many start-ups, and then they added a Silex application. You know that testing is difficult, however, doing unit testing for Drupal is a challenge.
What we did?
RESTGames – More than katas
Today, Christian (@theUniC) and I (@buenosvinos) would like to introduce you “REST Games“: Games based in REST Services for learning and practicing coding.
Its goal is to provide some coding challenges that go beyond katas. You will have to implement a small JSON REST API that will play a well known multiplayer game, such as battleship, connect-4, tic-tac-toe, etc. The best part comes when two mates develop the same JSON REST API and you can use our referees programs two make them play one against the other. Who will win?
Hola Atrápalo
La semana pasada os anunciaba mi salida de Emagister. Hoy, 20 de Febrero, es mi primer día en Atrápalo como CTO. Me han atrapado. Estoy muy ilusionado por trabajar en una empresa tan conocida, con una misión y visión tan clara (“ser líderes en el sector de ocio y turismo”), con un posicionamiento y marca reconocidos, así como más de 10 años de historia y presencia en 10 países.
Desde su fundación en el 2000, no ha parado de crecer y convertirse en un referente del ecommerce copando el “top of mind” de los usuarios interesados en ofertas sobre vuelos, restaurantes, viajes, actividades, cruceros, etc.
Unit Testing y TDD no son lo mismo
Resumiendo y sin entrar en volver a explicar los conceptos de TDD. Hacer Unit Testing es escribir Unit Tests, hacer TDD es seguir la metodología (3 reglas, ciclos cortos, diseño emergente, etc.)
kata/php: PHP skeleton for doing coding katas
Something a bit annoying when doing a kata is setting up the environment so you can start. Typically, you need composer, define dependencies, setting up the autoloading policy, creating some folders and so on. All this work is not necessary anymore. I have created a silly but useful project in packagist in order to start with your kata in just one command.
Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series) Review
Happy new year to everyone! Today it’s January, 1st and I have finished reading “Extreme Programming Explained: Embrace Change, 2nd Edition”. If you love software development and agile practices, this book was the rules changer in the agile methodologies and software development in general. As I have done with other book reviews, here are my remarks. Buy it, seriously. You will fill the gaps about agile practices, so if you are doing Xp, Scrum, Kanban, Lean, etc. everything will gear together.
Test Doubles
Last week, another awesome cleancoders episode was published. It comes in two parts. I really recommend to buy it. Let’s review the most important concept taught in the first one: Test Doubles.
PHP Trait testing
I’d like to know how you test your traits and what’s your favourite way to do it. I have found two different approaches that I want to share with you. Please comment if you apply different techniques or have different opinions.
Grábate haciendo katas y repasa la jugada
Son muchas las disciplinas que para mejorar utilizan el sistema de grabarse en video mientras practican y después revisan las imágenes para corregir los errores de técnica. Entre ellas, las prácticas deportivas, expresión en público como el derecho, la política, los debates, etc. Hace dos semana se me ocurrió hacer lo mismo con mis katas.
Courage on TDD (“Test Driven Development: By Example” – Part II)
La segunda parte del prólogo de “Test Driven Development: By Example” es casi aún mejor (podéis ver la primera parte aquí). 34$ bien invertidos.
Test Driven Development: By Example
Siguiendo con mi andadura de lecturas técnicas, esta semanas voy a estar con “Test Driven Development: By Example”. El enfoque del libro es totalmente práctico pero el prólogo me ha parecido tan simple, claro y delicioso que no he podido hacer otra cosa que compartirlo con vosotros para que os animéis con TDD y a la lectura de este fantástico libro.
Kata: Bowling Game
Kata: Prime Factors
Context
Although quite short, this kata is fascinating in the way it shows how “if” statements become “while” statements as the number of test cases increase. It’s also a wonderful example of how algorithms sometimes become simpler as they become more general.
Level
Easy / 40 minutes