RSSAmplifier

Blog

Czar Pino

blog.czarpino.comRSS feed ↗7 posts

Latest posts

Mitigating Rigidity with Dependency Inversion

An important characteristic of good design is the ability to contain the ripple effects of code changes. The inability to do so leads to rigidity where changes in one module necessitate adjustment in others. Rigidity makes code change difficult, risky, and expensive. Dependency inversion is an architectural design pattern that helps minimize rigidity and promotes highly flexible software.…

The 2 Values of Software

I first encountered the idea that software has 2 values while reading Robert C Martin’s “Clean Architecture” back in 2022: software is valued for being “soft” and as a “ware”. Uncle Bob had a way of saying this like this was in front of us the whole time — waving even — and he was just pointing it out. I’ve read the book a few more times since then and I’m fairly certain I must have been so…

Does Clean Code Matter?

In his book Clean Code, Uncle Bob quotes Kent Beck about how fragile a premise it is that good code at all matters. Both authors write their respective books on the faith that it is although I suspect it is perhaps more accurate to call it conviction than faith. It is not uncommon to come across code bases that are undoubtably dirty, messy, or unclean. It is also not entirely uncommon to come…

Dependency Inversion

One of the most useful techniques I’ve found when building software is dependency inversion. It seems to be largely misunderstood by most programmers and confused with dependency injection. Yet, it is a cornerstone of Clean Architecture and is the main principle behind decoupling a system from its lower level dependencies. The central idea in DI is that high level policies must not depend upon…

TDD

On a strange turn of things, I am beginning to appreciate the practicality and utility of TDD. It has been over a decade since I first learned about it but only recently do I seem actually be learning it. Of all things, I seem to be making progress with it by unit testing in JS. As I said, strange. A few things seem to have crystalized for me which has helped in this recent break though. They seem…

Dependency Injection

Dependency injection has become a relatively common concept to ask during technical interviews. While it is the generally accepted best practice in modern PHP development, it seems terribly little understood beyond the provisions exposed by 3rd party libraries and frameworks. Perhaps the most common explanation of DI (dependency injection) is a literal description such as passing objects into a…

Writing a Bug Report

Despite being at the receiving end of bug reports, programmers are generally poor authors of bug reports as well. This came as a surprise to me as I worked with programmers of varying experiences. How could programmers themselves not know how to author an effective bug report? If anyone, they should best know what a good bug report looks like. This is kind of true and not true at the same time. It…