#guice

2025-11-01

Компактный runtime-DI для Java: JSR-330, Class-File API и миграция за 2 дня

Когда начинал разработку системы многомерного анализа данных временных рядов Dimension-UI , для внедрения зависимостей в исходном коде решил использовать Dagger 2. Практический опыт показал, что для приложений с большим количеством динамически создаваемых объектов инверсия зависимостей, реализованная в Dagger 2, не подходит. Да, создание графа зависимостей в compile-time — это, во-первых, очень быстро, и, во-вторых, удобно: получаешь сообщения об ошибках конфигурации уже при компиляции. Но накладные расходы на сопровождение всего этого хозяйства – прямо скажем, это боль. Чтобы реализовать scope-зависимости, приходится писать и поддерживать много инфраструктурного кода внутри объектов, куда мы внедряем зависимости. В Dagger 2 такая реализация, во-первых, «загрязняет» код, а во-вторых, серьезно осложняет тестирование. Изолировать методы удобным способом не получается: в тестах нужно писать очень много кода, чтобы прокинуть необходимый контекст и корректно мокировать внешние зависимости. Я туда просто не полез — покрывал unit- и UI-тестами только базовую функциональность, где были Singleton-зависимости. Даже с одними Singleton’ами приходится поднимать отдельную тестовую инфраструктуру для запуска приложения в тестовом режиме. Это не просто неудобно — это очень затратно по времени. Если сравнить усилия, которые надо потратить на реализацию тестирования подобного функционала в Spring и Dagger… Сравнение будет не в пользу Dagger. В целом я начал думать о переходе на runtime-генерацию графа зависимостей.

habr.com/ru/articles/962326/

#java #dagger2 #dependency_injection #dependency_inversion #DimensionDI #DimensionUI #spring_ioc #guice #рефакторинг

2025-09-05

Как мы Best Practices в Java анализатор внедряли

История о том, как мы переписывали приложение под DI контейнеры, разбирали зависимости, рисовали графики, чтобы в этом не потеряться, и молились, чтобы ничего вдруг не сломалось.

habr.com/ru/companies/pvs-stud

#java #dependency_injection #guice #software_architecture #clean_code #static_analysis #inversion_of_control

Thomas Broyertbroyer@piaille.fr
2023-05-15

🚨 Breaking: Google Guice has made the switch to jakarta.inject‼

Time to revisit my post about the javax→jakarta mess
blog.ltgt.net/javax-jakarta-me

#java #guice #DependencyInjection

Galder Zamarreñogalderz@tooting.ch
2023-04-14

Google Guice 101 (2008) with @jessewilson and Bob Lee RIP youtube.com/watch?v=FFXhXZnmEQ #java #guice

Thomas Broyertbroyer@piaille.fr
2023-04-05

😢

> Bob Lee, 43, died after being found stabbed on the 400 block of Main Street in SoMa. Lee was chief product officer of MobileCoin, the former chief technology officer of Square, and the founder of Cash App.

(to me, he was mainly the creator of Guice and instigator of javax.inject, I learned today he was also behind Java lambdas)

#crazybob #BobLee #Guice #Java

sfgate.com/bayarea/article/mil

Andy Balaam moved to https://video.infosec.exchange/a/andybalaamandybalaam@diode.zone
2020-12-10

Dependency Injection frameworks: reasons to avoid them

diode.zone/videos/watch/e71933

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst