Size: a a a

Scala User Group

2020 October 13

AS

Aλexander Semenov in Scala User Group
только смущает в скаладоке Note that if your pipe can be represented by an O => F[Unit], evalTap will provide much greater performance.
источник

R

RSN in Scala User Group
Aλexander Semenov
только смущает в скаладоке Note that if your pipe can be represented by an O => F[Unit], evalTap will provide much greater performance.
Если стрим обрабатывается ещё каким-то пайпом, то мб .broadcastTo подойдёт:
https://github.com/typelevel/fs2/blob/main/core/shared/src/main/scala/fs2/Stream.scala#L233
источник

D

Dauren in Scala User Group
Всем привет, не подскажите либу для генерации html страниц? К Примеру у меня есть html шаблон:
<html>
 <head>
   <title>${title}</title>
 </head>
<body>
 <p>${description}</p>
 <p>${footer}</p>
</body>
мне приходит какой-то JSON:
{
 "title": "My title",
 "description": "Some description goes here",
 "footer": "email footer"
}
нужно что то типа .render(template, json)
источник

Oℕ

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

VS

Vladimir Sam in Scala User Group
мы в свое время юзали handlebars, вроде даж какая-то скальная обертка была
не очень typed, зато удобный движок в целом
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Vladimir Sam
мы в свое время юзали handlebars, вроде даж какая-то скальная обертка была
не очень typed, зато удобный движок в целом
на скалажс?
источник

λƒ

λesha ƒomkin in Scala User Group
Dauren
Всем привет, не подскажите либу для генерации html страниц? К Примеру у меня есть html шаблон:
<html>
 <head>
   <title>${title}</title>
 </head>
<body>
 <p>${description}</p>
 <p>${footer}</p>
</body>
мне приходит какой-то JSON:
{
 "title": "My title",
 "description": "Some description goes here",
 "footer": "email footer"
}
нужно что то типа .render(template, json)
Levsha
источник

λƒ

λesha ƒomkin in Scala User Group
Twirl очень медленный был (когда я тестил)
источник

D

Dauren in Scala User Group
Всем спасибо
источник

S

Saitama in Scala User Group
как можно достичь модульности инстансов?
есть core, есть moduleA.

https://scastie.scala-lang.org/bYm7ftZAQh656ZgfzjcMmw
как избавиться от наследования в 8 строчке?
источник

M

Mikhail in Scala User Group
Saitama
как можно достичь модульности инстансов?
есть core, есть moduleA.

https://scastie.scala-lang.org/bYm7ftZAQh656ZgfzjcMmw
как избавиться от наследования в 8 строчке?
select -> cmd+x или backspace - кому как удобнее
источник

M

Mikhail in Scala User Group
Saitama
как можно достичь модульности инстансов?
есть core, есть moduleA.

https://scastie.scala-lang.org/bYm7ftZAQh656ZgfzjcMmw
как избавиться от наследования в 8 строчке?
чем тебя простые не мудреные варианты не устраивают? https://scastie.scala-lang.org/GZNpCE77R1G4PVie7cKs2w
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Saitama
как можно достичь модульности инстансов?
есть core, есть moduleA.

https://scastie.scala-lang.org/bYm7ftZAQh656ZgfzjcMmw
как избавиться от наследования в 8 строчке?
А у вас там правда Int?
Если да - то зачем выносить этот инстанс в отдедьном модуле

Если там свой тип - то почему не оставить его в компаньоне своего типа
источник

S

Saitama in Scala User Group
А у вас там правда Int? - конечно нет. эт для примера.
Если там свой тип - тип как раз в core
источник

S

Saitama in Scala User Group
Oleg ℕizhnik
А у вас там правда Int?
Если да - то зачем выносить этот инстанс в отдедьном модуле

Если там свой тип - то почему не оставить его в компаньоне своего типа
интеграция с жаба апи. модуль = одна интеграция. всё что прилетаем с жаба апи оборачивается в классы из core.

https://scastie.scala-lang.org/j8aW8XmVQOOaAVgTfRvTOg
хочется написать конверторы под каждый модуль

возможно так разделить или стоит отказаться от этой идеи?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
оборачивайте жабатипы в свои типы и пишите инстансы в компаньонах обёрток
источник

Oℕ

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

Oℕ

Oleg ℕizhnik in Scala User Group
типа

object User{
 type User <: JavaUser

 def apply(j: JavaUser): Either[Kek, User] = j match{
  case null => Left(...)
  case ju if !valid(ju) => Left(...)
  case ju => Right(ju.asInstanceOf[User])
}


....
type User = User.User

так вы и сможете пользоваться всеми доступными методами, и сделать верификацию в точке интеграции и получите компаньон, куда можно сбросить инстансы
источник

S

Saitama in Scala User Group
Oleg ℕizhnik
оборачивайте жабатипы в свои типы и пишите инстансы в компаньонах обёрток
https://scastie.scala-lang.org/hZaf4qUJSYWo6Zf9Nb6VEg

т.е. нет способа, чтобы core не знал ничего о жабатипах? а инстансы поттягивались только при импорте нужного модуля?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Saitama
https://scastie.scala-lang.org/hZaf4qUJSYWo6Zf9Nb6VEg

т.е. нет способа, чтобы core не знал ничего о жабатипах? а инстансы поттягивались только при импорте нужного модуля?
есть, объявляйте инстансы в модуле
источник