Назрела необходимость управлять зависимостями Ъ путем. Выбор был между Spring и Guice. Если первый, очевидно, монструозный, то последний позиционировался как легковесный инструмент без лишних зависимостей. Началось все с видео в котором докладчики показали типичную эволюцию кода от прямого прямого создания зависимостей (в нашем случае все заканчивалось фабриками) к инъекции и своё решение.
Просмотр видео поставил больше вопросов, чем дал ответов. Стало понятно: нужно курить матчасть, тем более, книга была написана одним из авторов фреймворка (Dhanji Prasanna, он же один из докладчиков на видео). Книга рассчитана на различный уровень подготовки: начинаясь с объяснения на пальцах, степень хардкорности возрастает с каждой главой.
Пусть название не обманывает, это книга не про какой-то фреймворк написанная в стиле быстрых рецептов. Книга-справочник, где сначала идет обоснование необходимости, рассматривается эволюция подходов, завершающаяся инструментами DI. Затем рассматриваются негативные эффекты сильной связности в виде неразделенной ответственности, текущих абстракций и невозможности автономного тестирования компонентов. Две главы посвящено управлению жизненным циклом объектов. Далее рассматривается изменение поведения объектов при помощи AOP, best practices (видимость, дизайн, конкурентность). Отдельная глава посвящена сравнению фреймворков и рассмотрению их недостатков приведших к созданию джуса. Заканчивается всё эталонной реализацией веб-приложения.
Итог: мастрид для Java-разработчиков не знакомых с DI либо не применяющих на практике. При этом объяснение идет не в стиле магических заклинаний, а рассказывается, как технология устроена изнутри.
Пусть название не обманывает, это книга не про какой-то фреймворк написанная в стиле быстрых рецептов. Книга-справочник, где сначала идет обоснование необходимости, рассматривается эволюция подходов, завершающаяся инструментами DI. Затем рассматриваются негативные эффекты сильной связности в виде неразделенной ответственности, текущих абстракций и невозможности автономного тестирования компонентов. Две главы посвящено управлению жизненным циклом объектов. Далее рассматривается изменение поведения объектов при помощи AOP, best practices (видимость, дизайн, конкурентность). Отдельная глава посвящена сравнению фреймворков и рассмотрению их недостатков приведших к созданию джуса. Заканчивается всё эталонной реализацией веб-приложения.
Итог: мастрид для Java-разработчиков не знакомых с DI либо не применяющих на практике. При этом объяснение идет не в стиле магических заклинаний, а рассказывается, как технология устроена изнутри.