Matheus Marabesi website, sharing ideas about software development - Listing posts on page 1

Hexagonal architecture

I am not sure how this post is going to be, but the idea is to brain dump what is my current understanding of hexagonal architecture and try to make like a journal of that. As I improve my understanding I can improve this post and so on. NOTE 1: Hexagonal architecture is usually mixed with the clean architecture, even though, it was used as an inspiration to the clean architecture, they are different. Valentina Cupác describes that on her talk in details. NOTE 2: Found something that seems wrong and would like to contribute? Leave a comment and I...

TDD anti-patterns - episode 5 - The stranger, The operating system evangelist, Success against all odds and The free ride - with code examples in javascript and python

This is a follow up on a series of posts around TDD anti patterns. The first of this series covered: the liar, excessive setup, the giant and slow poke, those four are part of 22 more, the anti-patterns is a list formalized in James Carr post and also discussed in a stackoverflow thread. Do you prefer this content in video format? The video is available on demand in livestorm. In this blog post we are going to focus on four more of them, named: The stranger, The operating system evangelist, Success against all odds and The free ride. Each one...

TDD anti-patterns - episode 4 - The greedy catcher, The sequencer, Hidden dependency and The enumerator - with code examples in javascript, python and php

This is a follow up on a series of posts around TDD anti patterns. The first of this series covered: the liar, excessive setup, the giant and slow poke, those four are part of 22 more, which is listed in the James Carr post and also discussed in a stackoverflow thread. Do you prefer this content in video format? The video is available on demand in livestorm. In this blog post we are going to focus on four more of them, named: The greedy catcher, The sequencer, Hidden dependency and The enumerator. Each one of them focuses on a specific...

Katas - why, when and how

Katas are the way that developers use for sharping their skills in a particular subject. For example, TDD, design patters, SOLID principles or any kind of design to develop software - out there, there are katas for software architecture. In some way, this is a more elaborated post from my linkedin post: Katas, have their name and inspiration from the Japanese karate, that focus on a specific and only one thing at time and bet on repetition to improve little by little. As already mentioned by Felienne in her book The programmer’s brain [1] repetition is not something that programmers...

TDD anti-patterns - episode 3 - the nitpicker, the secret catcher, the dodger and the Loudmouth - with code examples in javascript, kotlin and php

This is a follow up on a series of posts around TDD anti patterns. In the previous episode we covered: the mockery, the inspector, the generous leftovers and the local hero, those are part of 22 anti-pattern, listed by James Carr. Do you prefer this content in video format? The video is available on demand in livestorm. In this blog post we are going to focus on four more of them, named: The nitpicker, The secret catcher, The dodger and The Loudmouth. Each one of them focus on a specific aspect of code that makes testing harder, the four presented...

Adventures on vue.js and data visualization - episode 2

Hello there, this is the second episode of the dataviz-project where I am trying to record the steps I take to bring a legacy app into a better state. If you haven’t seen the intro, you can have a look at it here. For this episode I started to change a bit how the test strategy is approached in the code. In the previous episode one of the goals was related to the testing library - here we will start to do that. Current set up - vue test utils Currently the vue test utils defined in the project provide...

TDD anti-patterns - episode 2 - the mockery, the inspector, the generous leftovers and the local hero - with code examples in javascript, kotlin and php

This is a follow up on a series of posts around TDD anti patterns. The first of this series covered: the liar, excessive setup, the giant and slow poke, those for are part of 22 more, in which is listed in the James Carr post. Do you prefer this content in video format? The video is available on demand in livestorm. In this blog post we are going to focus on four more of them, named: The mockery, The inspector, The generous leftovers and The local hero. Each one of them focus on a specific aspect of code that makes...

2021, a year of reading

Reading is part of my routine, I try to read as much as the time allows me and in 2021 I could finally achieve the goodreads challenge, reading 14 books along the year. In 2020, I shared the books I read, but I couldn’t meet my goal of 12 books. As I enjoyed writing about the 2020 books, I am doing the same style in 2021, here is a short list of the books I read and the references I came along the way. Some of those have its own blog post just to go through the details and what...

2021 in numbers

2021 was a different year for me, taking the time to write more than I did last year, code more and learn a bunch of things that I didn’t know. In this blog post I will try to resume what the year was for me in numbers. You might be asking, which numbers? From where? Those numbers are essentially from: blog posts I wrote, goodreads, from wakatime and google analytics. Wakatime is a tool that I use on the daily basis to track where I am spending my time, in which projects and in which programming languages. Goodreads is the...

A working skeleton to get started with outside-in TDD

This is the BDD cycle. Driving development from the outside in, starting with business-facing scenarios in Cucumber and working our way inward to the underlying objects with RSpec. Chelimsky, David and Astels, Dave and Helmkamp, Bryan and North, Dan and Dennis, Zach and Hellesoy, Aslak Test Driven Development is part of my daily work as a developer. I shared already a few thoughts about it here and strategies to test legacy applications as well. Recently I read the book Growing Object Oriented Software Guided by Tests and had a few ideas on how to approach things in a different way,...