Size: a a a

Scala User Group

2020 September 08

𝛈µ

𝛈 µ in Scala User Group
Ну да. Инжектор запускать - это альтернативный вариант, но это как-то ... неприятно
источник

𝛈µ

𝛈 µ in Scala User Group
Хотя можно попробовать сделать интерфейс в био, создающий локальный контекст инжектором
источник

𝛈µ

𝛈 µ in Scala User Group
Тогда и ридер не нужен будет, лол
источник

𝛈µ

𝛈 µ in Scala User Group
Пока что мне всё же видится, шо несмотря на неудобства три дырки - лучшее решение для динамических контекстов, а две дырки и дистага - для статических
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Kai
Да нет, предлагаю. Когда много локальных контекстных параметров я делаю классы в которых все параметры одноранговые и генерирую дистейжем фабрику через которую задаются локальные параметры: https://izumi.7mind.io/latest/release/doc/distage/basics.html#auto-factories
я не очень понимаю, вот допустим приложение должно в хттп вызове прочитать трейс айди, сгенерировать спан айди и везде логировать эту пару, это возможно с помощью такого подхода?
источник

𝛈µ

𝛈 µ in Scala User Group
То можно запустить инжектор и обслужить реквест в нём
источник

𝛈µ

𝛈 µ in Scala User Group
Инжекторы, в целом, дешёвые
источник

𝛈µ

𝛈 µ in Scala User Group
Субмиллисекундные тайминги у них на горячей жвм
источник

𝛈µ

𝛈 µ in Scala User Group
Просто выглядит как-то немного уёбищно
источник

𝛈µ

𝛈 µ in Scala User Group
Т.к. запуск инжектора - это один или несколько модулей
источник

𝛈µ

𝛈 µ in Scala User Group
Вызов инжектора, взятие локатора
источник

𝛈µ

𝛈 µ in Scala User Group
Закрытие локатора
источник

𝛈µ

𝛈 µ in Scala User Group
Ну ладно, для запуска и т.п. есть цепочка Injector().use()
источник

𝛈µ

𝛈 µ in Scala User Group
Но модульдефы все равно создать надо
источник

𝛈µ

𝛈 µ in Scala User Group
Ну еще минус инжектора - у тебя нет лёгкого способа расширить существующий контекст, тебе всегда надо запускать новый инжектор для расширения. И тащить предыдущий, чтобы от него наследоваться
источник

K

Kai in Scala User Group
Oleg ℕizhnik
я не очень понимаю, вот допустим приложение должно в хттп вызове прочитать трейс айди, сгенерировать спан айди и везде логировать эту пару, это возможно с помощью такого подхода?
Ну да, вот допустим ты логируешь логстейжем, ты параметризуешь сам логгер и логируешь дальше новым логгером (https://izumi.7mind.io/logstage/index.html#log-algebras)
источник

𝛈µ

𝛈 µ in Scala User Group
Kai
Ну да, вот допустим ты логируешь логстейжем, ты параметризуешь сам логгер и логируешь дальше новым логгером (https://izumi.7mind.io/logstage/index.html#log-algebras)
Ну, это частный случай
источник

𝛈µ

𝛈 µ in Scala User Group
И тебе все равно логгер надо дальше передать
источник

𝛈µ

𝛈 µ in Scala User Group
Или явным пассингом
источник

𝛈µ

𝛈 µ in Scala User Group
Или как-то инжектировать
источник