Size: a a a

Scala User Group

2020 January 10

SA

Sergey Alaev in Scala User Group
Oleg ℕizhnik
а зачем такой тайпкласс?
чтобы создать ContextShift из ExecutionContext, нужен Effect. это перебор для апи сетевого клиента, которому нужен собственный тредпул для работы
источник

Oℕ

Oleg ℕizhnik in Scala User Group
λoλdog
Отличный вопрос
источник

SA

Sergey Alaev in Scala User Group
Как выглядит аналог в тофу?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
Как выглядит аналог в тофу?
честно говоря, никак
источник

Oℕ

Oleg ℕizhnik in Scala User Group
никогда не сталкивался с необходимость динамической аллокации пулов
источник

SA

Sergey Alaev in Scala User Group
а не динамической? если есть некий модуль, которому для работы нужен собственный тредпул?
источник

KS

Kirill Shelopugin in Scala User Group
Не уверен, что тофу - подходящее место для собрания тайпклассов, которые нужны лично Сергею для реализации его корнер-кейсов
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
а не динамической? если есть некий модуль, которому для работы нужен собственный тредпул?
ну создать заранее, сложить в контекст или имплисит на вкус
источник

λ

λoλdog in Scala User Group
Oleg ℕizhnik
ну создать заранее, сложить в контекст или имплисит на вкус
как я люблю Олега
источник

SA

Sergey Alaev in Scala User Group
Oleg ℕizhnik
ну создать заранее, сложить в контекст или имплисит на вкус
имплисит не надо, т.к. речь не о дефолтном тредпуле для вычисления монадок, а для обертки для синхронных блокирующих вызовов нижележащей библиотеки
источник

SA

Sergey Alaev in Scala User Group
передавать его снаружи - это немного нарушение инкапсуляции, модуль лучше знает, сколько потоков и каких ему нужно
источник

λ

λoλdog in Scala User Group
а также модуль лучше знает, какой пул ему создавать
источник

SA

Sergey Alaev in Scala User Group
λoλdog
а также модуль лучше знает, какой пул ему создавать
ну да, так и есть. для этого этот тайпкласс и предназначен
источник

λ

λoλdog in Scala User Group
нет, твой тайпласс позволяет создать там что угодно
источник

λ

λoλdog in Scala User Group
например Pool, который ниче не делает
источник

VS

Vladimir Sam in Scala User Group
Sergey Alaev
передавать его снаружи - это немного нарушение инкапсуляции, модуль лучше знает, сколько потоков и каких ему нужно
можно передать через конструктор, а поле в модуле сделать приватным
источник

VS

Vladimir Sam in Scala User Group
по-моему это как то связано с баззвордами IOC, DI, но я не настоящий теоретик
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
передавать его снаружи - это немного нарушение инкапсуляции, модуль лучше знает, сколько потоков и каких ему нужно
ну написать имплементацию, а потом
val realModule = module.mapK(
funK(contextShift.evalOn(specialEc)))
источник

SA

Sergey Alaev in Scala User Group
Oleg ℕizhnik
ну написать имплементацию, а потом
val realModule = module.mapK(
funK(contextShift.evalOn(specialEc)))
кто создает specialEc? я хочу, чтобы это был фабричный метод модуля, а не клиентский код
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
кто создает specialEc? я хочу, чтобы это был фабричный метод модуля, а не клиентский код
Ну когда приложение собираешь
источник