Notes and thoughts on Ruby, Rails and software architecture.
Automated Testing: types, TDD, and testability
One of the most common reasons people give for writing automated tests is to prevent regressions, basically, making sure a new change doesn’t break a...
Dependency Management: what one part of a system needs to know about another
You’ve probably seen plenty of collaboration between components and parts of an application’s code. As a rule, every application is made of parts that need...
Single Responsibility (SRP): thinking beyond classes
Today let’s talk about Single Responsibility. If you’ve heard of SOLID, you’ve definitely run into this principle before, it’s the “S” in the acronym.
Tech interviews: stages and tips based on my experience
One of the questions I hear the most these days, as a programming teacher, is: “how do I get into tech?”
Layered Architecture
If you’ve ever worked with Rails, you’ve probably used layered architecture without even noticing. It shows up, in one way or another, in most of...
Coupling: what it is, types, and how to decouple it
When we talk about software architecture, one topic that always comes up is coupling, and whenever we talk about it, we tend to think mostly...
Static Analysis: beyond linting
The other day, studying Software Architecture, I ran into fitness functions, a concept that shows up a lot in architecture and refers to automated mechanisms...
Service Objects: what they are and when to use them
First of all, we need to understand what service objects are.