2025-02-20
2294
#web design
Samuel Olusola
97873
116
Feb 20, 2025 â‹… 8 min read

Understanding the dependency inversion principle (DIP)

Samuel Olusola Software engineer (JS stack, GoLang incoming…) and student of computer science at the University of Lagos.

Recent posts:

how to handle react-scripts in a fast-changing React landscape

How to handle react-scripts in a fast-changing React landscape

Review the basics of react-scripts, its functionality, status in the React ecosystem, and alternatives for modern React development.

Ibrahima Ndaw
Mar 13, 2025 â‹… 9 min read
how to delete local and remote branches in Git

How to delete local and remote branches in Git

Explore the fundamental commands for deleting local and remote branches in Git, and discover more advanced branch management techniques.

Timonwa Akintokun
Mar 13, 2025 â‹… 7 min read

The complete guide to the AbortController API

Check out a complete guide on how to use the AbortController and AbortSignal APIs in both your backend and frontend.

Joseph Mawa
Mar 12, 2025 â‹… 9 min read
Not Everything Should Be A Chat: Rethinking LLM Integration

Beyond chat: Rethinking how we use LLMs

LLMs can do more than chat! Explore alternative integration models that improve efficiency, reduce complexity, and enhance user control.

Rosario De Chiara
Mar 12, 2025 â‹… 4 min read
View all posts

7 Replies to "Understanding the dependency inversion principle (DIP)"

  1. Hi, really nice article! A couple of typos in the code examples. You’re writing log.info instead of log.error when an exception occurs. Cheers!

    1. Thanks for the tip — would you mind pointing out the specific code blocks where the typos occur?

  2. A couple of problems with this principle. High level and low level is vaguely defined. If you apply this to the highest levels, this works fine. But the lower you go, the more this will feel the effects of an extra pointer to resolve or an extra function call. So, make sure that in your language, this results in, as much as possible, zero cost abstractions. Interfaces and Traits are typically fine, but watch out with proxies, abstract classes or any form of wrapper constructs.

Leave a Reply