Writing software is hard. Even the smallest projects have many moving parts. We developers are not only expected to get those parts moving, but keep them moving as the application changes over time. Test-Driven Development (TDD) is a methodology...
Dependency Injection is a design pattern that allows us to remove the hardcoded dependencies and make our application loosely coupled, extendable, and maintainable.
We can implement dependency injection to move the dependency resolution from...