Dry-rb: что, зачем и как [Thinknetica]
Разберетесь, зачем нужен dependency injection, как он помогает в поддерживаемости, тестируемости и модульности приложений.
Поймете, при чем тут Inversion of Control (IoC)-контейнеры и какие варианты анализа, на основе зависимостей в контейнерах, можно...