-
Patterns, Principles, and Practice of Domain Driven Design book highlights
Recently in Aprendices book club, we have been reading Patterns, Principles, and Practice od Domain Driven Design book and I’d like to share a few points I consider important. Read more...
-
Monolith to microservices - Dealing with the Database
One of the hardest tasks when moving into a monolithic to a microservice architecture is to separate the data owned by each microservice. Usually, the data is placed in one database schema and the goal when extracting microservices will be partition it accordingly without causing major issues. Sam Newman describes a few patterns in his book Monolith to Microservices Evolutionary Patterns to Transform Your Monolith that would help with the task and I would like to give them briefly. Read more...
-
Monolith to microservices - Splitting patterns
During a period Iḿ going to be working with the team trying to improve the evolvability of a system with a lot of responsibilities. That involves splitting apart it into a few microservices. The first thing we did in the team was to buy the book called Monolith to Microservices Evolutionary Patterns to Transform Your Monolith written by Sam Newman because we knew it would help us decide from where to start. Read more...
-
Microservices Patterns - Conceptual Map
During the first months of the year, I’ve been reading the book Microservices Patterns written by Chris Richardson. Read more...
-
Problems, not solutions
IMHO CTOs, product managers and stakeholders should stop offering solutions and start talking about problems. Have you found yourself in a situation like this one?:
“Hey buddy we need to do X, Y, Z.”
Read more... -
AWS Solution Architect Associate Exam Notes
Last week I was able to pass the AWS Solution Architect Associate exam certification and I would like to share the process I followed to prepare the exam. Read more...
-
ShipItCon 2019
Today I’ve attended to the ShipItCon 2019 conference hosted for a second year in Dublin. The speakers mainly talk about how they and their companies deliver software into production and what practices and tools they use. Read more...
-
Curso de TDD con Jason Gorman
Hace algunas semanas tuve el placer de asistir al curso de Jason Gorman en Londres sobre TDD. El curso no fue el típico de tres días que Jason hace normalmente, sino un solo día con el primer tercio del contenido del curso. Leer más...
-
Designing Data-Intensive Applications. Chapter 8
So far, this chapter is the most depressing and pessimistic until now. Which is also good because it helps us to realise that not all is a bed of roses in distributed systems. Martin Kleppmann explains The Trouble with Distributed Systems and why it is naive to think that faults are the exception. For that reason, we should consider a range of possible faults such as Unreliable Networks or Unreliable Clocks. Read more...
-
Designing Data-Intensive Applications. Chapter 7
In this chapter the author deeps in the world of transactions. Transactions have been for decades the mechanism of choice for simplifying:
- Databases failures.
- Network interruptions.
- Application crashes.
- Race conditions.
-
Designing Data-Intensive Applications. Chapter 6
In this chapter, the author explores the different types of partitioning, also known as sharding, and the different approaches for rebalancing partitions. Read more...
-
Designing Data-Intensive Applications. Chapter 5
Chapter five, Replication, faces the benefits and issues when data replication happens. It explains the main different approaches to replication and their peculiarities. Read more...
-
Designing Data-Intensive Applications. Chapter 4
Chapter four, Encoding and Evolution, is the last one on the foundations of data systems section. It explores the different encodings formats used in applications and how that choice might affect the evolvability of the system. It also discusses several models of data flows where encodings are important. Read more...
-
Designing Data-Intensive Applications. Chapter 3
The third chapter of the book is divided into two main sections. The first one explains the most typical data structures to store information in a database and the second describes the differences between OLTP and data warehouse databases. This post will not deep into much detail so I would recommend you to read the chapter to fully understand how these two data structured models work in details. Read more...
-
Designing Data-Intensive Applications. Chapter 2
Data Models and Query Languages
Read more... -
Designing Data-Intensive Applications. Chapter 1
The current book in the readers club is Designing Data-Intensive Applications by Martin Kleppmann and I will try to write a little post with the highlights of every chapter we read. These posts will not replace the reading of the book since there will be a lot of things I will not consider so I encourage you to read it. Read more...
-
Uciencia buenas practicas desarrollando software
Hace un par de semanas tuve la suerte de dar una pequeña charla sobre buenas prácticas de desarrollo de software y un taller de refactoring en la conferencia Uciencia 2018 en La Habana, Cuba. Leer más...
-
Abstract Factory code smell refactoring
Reading the book Dependency Injection in .NET second edition I realised Abstract Factories could become a problem and a code smell in our codebases. Read more...
-
Facilitando una retrospectiva
Desde hacía un tiempo nuestras retrospectivas las hacíamos en formato Lean coffee, en el cual se forma una agenda, se vota por los temas a tratar y se habla sobre ellos por orden de votos. Todo ello dentro de un time box para cada tema. Al principio nos pareció un formato muy innovador que daba voz a todos los integrantes del equipo por igual y hacía las retros muy amenas. Leer más...
-
Notas sobre Growing Object-Oriented Software, Guided By Tests – Parte 4: Escuchando a los tests.
En esta cuarta parte del libro Nat y Steve nos cuentan que el código de los tests debe ser cuidado tanto como el código de producción. A lo largo de este post voy a resumir solo la parte de “Escuchando a los tests” ya que creo que se merece dedicarle un post entero. Leer más...
-
Notas sobre Growing Object-Oriented Software, Guided By Tests – Parte 3: Desarrollando un ejemplo.
En la tercera parte del GOOS los amigos Nat Pryce y Steve Freeman nos cuentan como construyen una aplicación que permite automáticamente pujar online en subastas. Ellos empiezan a escribir la aplicación partiendo desde la iteración 0, mediante pequeños incrementos de funcionalidad y TDD van dando forma al software que quieren conseguir. Leer más...
-
Pair programming
Hace unos días di una charla sobre pair programming para el equipo, no es que yo sea un experto en la materia, pero lo que estaba claro es que no lo estábamos haciendo de forma adecuada. Leer más...
-
Notas sobre Growing Object-Oriented Software, Guided By Tests – Parte 2: TDD.
En este segundo capítulo del GOOS, Nat Pryce y Steve Freeman nos explican lo que puede aportar el ciclo de TDD y cómo sería para ellos un buen diseño orientado a objetos. Leer más...
-
Saliendo de mi zona de confort
Estoy escribiendo este post camino a Irlanda, embarcado en un ferry que probablemente me cambiará la vida. Saliendo de la zona de confort, aquella en la que tan cómodo y a gusto estaba, un buen trabajo, casa, familia, amigos, rutina, todo aquello con lo que muchas personas soñarían. Leer más...
-
Notas sobre Growing Object-Oriented Software, Guided By Tests - Parte 1: Introducción
Empecé a leer el GOOS hace unos días y me di cuenta que para profundizar en el libro tenía que hacer algo más que leerlo. Por eso voy a empezar a escribir en el blog algunos posts con notas del libro que me parezcan interesantes. Por supuesto solo serán unas notas, para profundizar con el libro y sacarle todo el jugo posible habrá que leerlo y releerlo varias veces. Leer más...
-
RPG Combat Kata
En la Software Craftsmanship de Pamplona, Daniel Ojeda (@SuuiGD) propuso hacer la kata RPG Combat Kata, en ese mismo momento no la hice pero me quedé con ganas de hacerla. Leer más...
-
Cultura de la automatización
Recientemente, he tenido el placer de asistir a un curso de Continuous Delivery impartido por Néstor Salceda y la gente de GeeksHubs Academy y de leer un par de libros, Building Microservices, de Sam Newman y Continuous Delivery with Windows and .NET de Chris O’Dell y Matthew Skelton. Todo esto me ha ayudado a descubrir una serie de prácticas y herramientas con las que conseguir automatizar los procesos rutinarios que hacemos todos los días. Leer más...
-
Impresiones sobre la CAS 2015
Hace unos días asistí a la Conferencia Agile Spain 2015 que se celebraba en Madrid en el Círculo de Bellas Artes. Un lugar estupendo en el centro de la ciudad. Ésta ha sido la tercera edición a la que asisto, después de Bilbao 2013 y Barcelona 2014. Leer más...
-
Mismatching impedance
El término mismatching impedance es un conjunto de problemas que surgen cuando se intenta persistir el estado de objetos representados en programación orientada a objetos en un sistema relacional de base de datos. Leer más...
-
El largo camino del aprendizaje
He decidido iniciar este blog con el objetivo de compartir experiencias sobre el mundo del desarrollo de software. Son seis años los que llevo dedicándome a ello en diferentes compañías donde he tenido suerte de aprender y crecer como profesional en todas y cada una de ellas. Leer más...
subscribe via RSS