Size: a a a

Scala User Group

2020 July 19

AD

Apache DOG™ in Scala User Group
Коты в действии?
источник

Y

Yevhen in Scala User Group
https://github.com/gvolpe/pfps-shopping-cart/blob/master/modules/core/src/main/scala/shop/domain/checkout.scala
а как ети проверки работают на компайл тайме если я в рантайме впишу туда невалидные данные?
источник

AD

Apache DOG™ in Scala User Group
Они работают не в компайлтайме. Это типы которые обеспечивают что то что их населяет подчиняется тому что указано
источник

AD

Apache DOG™ in Scala User Group
В рантайме ты можешь их либо успешно создать либо получить ошибку.
источник

Y

Yevhen in Scala User Group
а похендлить нельзя потом ?
источник

λ

λoλdog in Scala User Group
в смысле нельзя?
источник

AD

Apache DOG™ in Scala User Group
Можно конечно
источник

AD

Apache DOG™ in Scala User Group
Смотри эпиай
источник

λ

λoλdog in Scala User Group
то refined создает безопасные конструкторы, и возвращает either если не unsafe делать
источник

λ

λoλdog in Scala User Group
Но вообще я бы предостерег от прям такого сочетания refined c newtype
источник

λ

λoλdog in Scala User Group
в некоторых местах можно нарваться на неправильный вывод из-за приоритета имплиситов
источник

GP

Grigory Pomadchin in Scala User Group
у рефайнд еще конечно проблемы с репортом ошибок (не читаемое)
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Он на самом деле не дописал немного, у них есть сахарок и интеграции с серкой и подобными для создания из рантайм-значений, хотя сам гвпольпе предлагает использовать везде refineV напрямую.
Cахарок лежит вот тут и юзается как-то так:
scala> import eu.timepit.refined.api.{ Refined, RefinedTypeOps }
*      | import eu.timepit.refined.numeric.Positive
*
* scala> type PosInt = Int Refined Positive
*
* scala> object PosInt extends RefinedTypeOps[PosInt, Int]
*
* scala> PosInt(1)
* res0: PosInt = 1
*
* scala> PosInt.from(2)
* res1: Either[String, PosInt] = Right(2)
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Yevhen
а похендлить нельзя потом ?
там эйзер получить можно и делать что угодно
источник

λ

λoλdog in Scala User Group
Λнтон Войцишевский
Он на самом деле не дописал немного, у них есть сахарок и интеграции с серкой и подобными для создания из рантайм-значений, хотя сам гвпольпе предлагает использовать везде refineV напрямую.
Cахарок лежит вот тут и юзается как-то так:
scala> import eu.timepit.refined.api.{ Refined, RefinedTypeOps }
*      | import eu.timepit.refined.numeric.Positive
*
* scala> type PosInt = Int Refined Positive
*
* scala> object PosInt extends RefinedTypeOps[PosInt, Int]
*
* scala> PosInt(1)
* res0: PosInt = 1
*
* scala> PosInt.from(2)
* res1: Either[String, PosInt] = Right(2)
ну он и предлагает напрямую юзать, потому что с коэрсиблом можно конфликтовать
источник

R

RattenK 🍄🐀🌹 in Scala User Group
λoλdog
ну он и предлагает напрямую юзать, потому что с коэрсиблом можно конфликтовать
Запахло качкелем
источник

IL

Ivan Lopatin in Scala User Group
https://gitter.im/ZIO/Core?at=5ce6a1fc75d9a575a62f54a1
Джон здесь упоминает интересный синтаксис для параллельного запуска ZIO-эффектов, но не понимаю, как это должно работать, может изменились сигнатуры методов?

https://scastie.scala-lang.org/TfwzveDhQUW4v6RWChIHmQ

Я пытаюсь запустить параллельно 7 эффектов и сложить результаты в tuple.
источник

AS

Andrey Sugak in Scala User Group
Ivan Lopatin
https://gitter.im/ZIO/Core?at=5ce6a1fc75d9a575a62f54a1
Джон здесь упоминает интересный синтаксис для параллельного запуска ZIO-эффектов, но не понимаю, как это должно работать, может изменились сигнатуры методов?

https://scastie.scala-lang.org/TfwzveDhQUW4v6RWChIHmQ

Я пытаюсь запустить параллельно 7 эффектов и сложить результаты в tuple.
Что именно у тебя не работает, то?
источник
2020 July 20

AS

Andrey Sugak in Scala User Group
Ivan Lopatin
https://gitter.im/ZIO/Core?at=5ce6a1fc75d9a575a62f54a1
Джон здесь упоминает интересный синтаксис для параллельного запуска ZIO-эффектов, но не понимаю, как это должно работать, может изменились сигнатуры методов?

https://scastie.scala-lang.org/TfwzveDhQUW4v6RWChIHmQ

Я пытаюсь запустить параллельно 7 эффектов и сложить результаты в tuple.
источник

IL

Ivan Lopatin in Scala User Group
Спасибо! Не мог понять, как и откуда возникает <*>. Думал, что имеется в виду одноименный метод в трейте ZIO и запутался.
источник