David Rodenas PhD
2 min readJul 28, 2022

--

Hi Angelo,

Do you know how I can get a copy of these columns?

When I started explaining it, all I had was the articles that he posted at http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod (probably from 1996), I still have a copy, and I used them as inspiration, and source for the students. Unfortunately, it did not help and the success ratio between students was low. I just reviewed it now, and he only explains it as the dependency to be inverted respected the previous one (with the Copy example).

The problem of this explanation is that it only makes sense if you had the bad code before. It is ok as a technique to improve code, but it does not help to identify it in already existing code.

In order to improve the success of the student, I also used a lot of different material from him, like the clean code videos (https://cleancoders.com/series/clean-code/solid-principles), and the Clean Architecture book. But it also did not help too much.

The key for this article, and this different point of view, came also from Robert C. Martin. In his explanation about OO, and why it enables a new level in programming, he describes that it decouples the execution flow from the dependency. He shows how the invoker sends a "message", and then, the recipient executes it; so the invoker does not know which execution implementation will run. He explains that the execution flow, opposes to the dependency.

I hope that having a different explanation for the same phenomena, will help to have a clearer picture. In my case, it helped me, I knew what it was, but now I feel that I have a more in-depth understanding.

And thanks for your comment. If you can help me to obtain a copy of those columns, I'll be grateful.

--

--

David Rodenas PhD
David Rodenas PhD

Written by David Rodenas PhD

Passionate software engineer & storyteller. Sharing knowledge to advance our skills. Join me on a journey of discovery in the world of software engineering.

Responses (1)