Size: a a a

Scala User Group

2020 June 12

λƒ

λesha ƒomkin in Scala User Group
Nikolai
Всем привет! У меня компоненты приложения на старте посылают ядру список функций C => A. C уникальна в каждом случае, A везде одинакова. Хотелось бы иметь возможность поиска по типу аргумента, но не могу понять как это сделать Заранее спасибо
Типы стираются в рантайме. Можно попытаться что сделать с помощью ClassTag, или переделать дизайн.
источник

N

Nikolai in Scala User Group
Спасибо
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Nikolai
Всем привет! У меня компоненты приложения на старте посылают ядру список функций C => A. C уникальна в каждом случае, A везде одинакова. Хотелось бы иметь возможность поиска по типу аргумента, но не могу понять как это сделать Заранее спасибо
а что делают функции?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и как подключаются компоненты
источник

N

Nikolai in Scala User Group
Функции возвращают всегда Stream[F, Data]. Собственно, компоненты представляют разные источники данных, а C это, соответственно конфиги для них. Компоненты подключаются при сборке, это подпроекты сбт
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну каким образом получается множество подключенных компонент, и как выглядит "подключени" - это конфиг или код?
источник

N

Nikolai in Scala User Group
Это код
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Nikolai
Это код
в этом случае одним из наиболее часто используемых подходов является typeclass pattern

вы можете сделать какой функциеподобный

trait Input[F[_], C]{
  def provide(config: C): Stream[F, Data]
}

и либо определить implicit val ...: Input[F, Cfg] в компаньоне каждого из Cfg, либо в каком-то объекте, из которого вы в конце обязаны будете сделать импорт, и дальше позволить компилятору подобрать соответсвующий провайдер данных для каждого конфига, удостоверившись на этапе компиляции таким образом, что он есть и ровно один
источник

N

Nikolai in Scala User Group
Спасибо большое
источник

N

Nikolai in Scala User Group
А есть какой-то способ найти всё Cfg, для которых определён Input?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нет
источник

N

Nikolai in Scala User Group
Жаль
источник

Oℕ

Oleg ℕizhnik in Scala User Group
я пока очень наощупь понимаю вашу проблему, но издалека могу подсказать, например, что если вы соберёте кучу конфигов в один
case class ConfigBundle(
  foo: FooConfig,
  bar: BarConfig,
  ...
)
то с помощью библиотеки magnolia вы сможете автоматически получить Input[ConfigBundle] , который найдёт инпут для каждого поля и склеит стримы нужным способом в один большой
источник

Oℕ

Oleg ℕizhnik in Scala User Group
само собой тоже на этапе компиляции с читаемыми ошибками, если что-то не найдётся
источник
2020 June 13

V

V---V in Scala User Group
scalac це компилятор?
источник

R

RattenK 🍄🐀🌹 in Scala User Group
V---V
scalac це компилятор?
источник

λƒ

λesha ƒomkin in Scala User Group
V---V
scalac це компилятор?
Еще контора такая есть
источник

АФ

Андрей Фирсов... in Scala User Group
Коллеги, всем привет! Подскажите пожалуйста, важно ли перед изучением скалы знать Java? На сколько сложнее скала-джуну без знания Java найти работу, чем со знанием? Бэкграунд джуна - год во фронте.
источник

V

Vlad in Scala User Group
Не нужно. Знания основ JVM будет достаточно
источник

ZM

ZLoyer Matveev in Scala User Group
Андрей Фирсов
Коллеги, всем привет! Подскажите пожалуйста, важно ли перед изучением скалы знать Java? На сколько сложнее скала-джуну без знания Java найти работу, чем со знанием? Бэкграунд джуна - год во фронте.
на всякий случай сразу дам ссылку на @scala_learn
источник