Size: a a a

Scala User Group

2020 April 29

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
ну так себе получилось придумать пример
согласен
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
согласен
я слаб в примерах
источник

Y

Yevhen in Scala User Group
λoλdog
а что есть хорошее с твоей точки зрения?
как минимум дуби jdbc нейтив квери в 2к20
источник

λ

λoλdog in Scala User Group
а что не так с дуби?
источник

Y

Yevhen in Scala User Group
там можно метаданные таблицы вытащить или сликом?
источник

λ

λoλdog in Scala User Group
там есть интеграция с quill
источник

λ

λoλdog in Scala User Group
и вообще в библиотеки написано, что это jdbc layer
источник

K

KrivdaTheTriewe in Scala User Group
Oleg ℕizhnik
Например вот как сяду да как допишу симуляцию
ты не масштабируешься(
источник

λ

λoλcat in Scala User Group
Yevhen
етими doobie и slickом к примеру можно только красивенький крадик сверстать, а если мне напрямую чтото с jdbc драйвера нужно?
Дуби можно сделать все что jdbc позволяет
источник

DO

Dmytro Orlov in Scala User Group
мне надо поспать, или я чего-то не понимаю?
было
res <- ZIO.access[S3] { s3 =>
     new MyS3 {
       val list = s3.get.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception)

       val uploadCandidates = for {
         all <- list
...
фикс, чтоб s3.listObjects вычитывался при каждом вызове
env <- ZIO.environment[S3]
 } yield new MyS3 {
   val list = s3.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception)
     .provide(env)

   val uploadCandidates = for {
     all <- list
...
мне кажется, что должно работать одинаково, но в первом случае s3.get.listObjects запрашивается ровно раз, хотя всё что после выполняется при каждом вызове
источник

λ

λoλegΥch in Scala User Group
сликом тоже
источник

Y

Yevhen in Scala User Group
метаданные с конекшина?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
осталось только посмотреть на реализацию s3.listObjects из второго примера
источник

DO

Dmytro Orlov in Scala User Group
Oleg ℕizhnik
осталось только посмотреть на реализацию s3.listObjects из второго примера
источник

Oℕ

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

DO

Dmytro Orlov in Scala User Group
Oleg ℕizhnik
я тоже не понимаю, почему должно быть разное поведение
это мотивация поковырять, спасибо!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Dmytro Orlov
это мотивация поковырять, спасибо!
точнее, кусочки не совсем эквивалентны
в первом что-то происходит ниже в форе, во втором функция возвращает ZIO[.., MyS3]
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Полагаю, что разница там в продолжении
источник

DO

Dmytro Orlov in Scala User Group
ниже в форе просто map:
val uploadCandidates: IO[Capture[SyncErr], List[S3ObjectSummary]] = for {
     all: S3ObjectListing <- list
   } yield all.objectSummaries.filterNot { f =>
     conf.outbox.exists(out => f.key.startsWith(s"$out/")) || f.key.endsWith("/")
   }
источник

DO

Dmytro Orlov in Scala User Group
я даже логирование добавлял в первом
new MyS3 {
       val list = s3.get.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception) <* log.debug("s3.get.listObjects")
и видел логирование на каждый вызов, но listObjects вызывался 1 раз
источник