
Vladimir
02.06.2017
07:51:32
Мне важно было, чтобы шаблоны из БД мог рендерить, многие решения на resources завязаны

Kirill
02.06.2017
07:51:49
В идеале я бы хотел что-то, что легко интегрируется с мониксовым таском, давно хочу его попробовать, вжух и ты асинхронно делаешь инсерты...

Dmitriy
02.06.2017
07:52:17
во, у меня то же самое, для zalando написал свой лоадер, но то такое. Проблема в том что он сыпет эксепшны в рантайме если не нашел например в контексте переменную из темплейта.

Alexey
02.06.2017
07:52:31

Google

Kirill
02.06.2017
07:52:58

Alexey
02.06.2017
07:53:32
Учитывая что jdbc не thread safe это может привести к странным вещам

Vladimir
02.06.2017
07:54:26
в scalate можно кейс-классы как контекст совать, но если у шаблона поля несоответствуют кейс классу, то тоже в рантайме фейлится, но это кмк решается тестом в котором рендерится простой шаблон с перечеслением всех полей, используемых в продакшен шаблоне

Kirill
02.06.2017
07:54:47
ультра-перфоманс не требуется, просто хочется сделать неблокирующе

Alexey
02.06.2017
08:00:14

Nikolay
02.06.2017
08:01:21

Nick
02.06.2017
08:01:44
Kirill все рано будет поверх jdbc, бери doobie с hikari
У Postgres есть реализация async драйверов

Alexey
02.06.2017
08:02:01
если постгресс то есть неблакирующий драйвер
ms sql еще вроде есть, но это не точно

Nick
02.06.2017
08:02:41
На мои взгляд лучше сделать отдельный пул для блокирующих операции

Google

Nikolay
02.06.2017
08:02:42

Daniel
02.06.2017
08:02:44
у mysql есть

Kirill
02.06.2017
08:03:45

Oleksandr
02.06.2017
08:04:56

Kirill
02.06.2017
08:05:14
Эт как?)
Чтобы на уровне приложения при получении события из внешней системы оно записывалось в базу в отдельном потоке, а тем временем, основной поток выполнения программы продолжал бежать

Nick
02.06.2017
08:06:20
И тем что юзает стандартный драивер, а не понятно чей

Alexey
02.06.2017
08:13:26
надо контролить что сессию не использует несколько потоков

Nick
02.06.2017
08:13:47
О какой сессии идёт речь

Alexey
02.06.2017
08:14:01
jdbc

Nick
02.06.2017
08:14:16
У тебя пул конекшинов не отдаст конекшин
Если их нет
Ты должен взять из пула, а в конце вернуть

Alexey
02.06.2017
08:25:51
взять из пула, и контролировать, что сессию никто не будет запускать из разных тредов
хотелось жи асинхронненько

Nick
02.06.2017
08:26:33
Какую сессию
У тебя один поток одно соединение
Там нет шаринга

Alexey
02.06.2017
08:27:13
где там то? :)

Google

Nick
02.06.2017
08:27:35
Я согласен, что асинхронно лучше выглядит, но нет стандартного решения. И хз как это все работает сейчас
где там то? :)
В моем решении, у тебя пул даст эксклюзивно конекшин потоку, пока тот его не вернёт

Evgeniy
02.06.2017
08:53:16
сорри за спам, Bartosz Milewski последнее время на кворе много хороших ответов пишет, очень уж хорошо у него получается объяснять
https://www.quora.com/Why-are-functors-applicative-functors-and-monads-important-advantageous-in-functional-programming-not-looking-for-a-definition

?Ivan
02.06.2017
09:14:51
я quil использую с асинхронным драйвером postgres, всё ?

Alexey
02.06.2017
09:19:40
+ к предыдущему оратору

Alex
02.06.2017
10:08:26
https://heathermiller.typeform.com/to/tnyvgw

Denis
02.06.2017
10:10:55
4/8

Alex
02.06.2017
10:11:03
у меня 7/8

Denis
02.06.2017
10:11:12
снимаю шляпу :)

Alex
02.06.2017
10:11:22
просто я знаю много умных слов :)

Aleksei
02.06.2017
10:13:08
я не мог не нажать на зигоид

Daniel
02.06.2017
10:14:35

Alex
02.06.2017
10:16:40
типа зигоморфизм но для взаимно рекурсивных функций

Nikita
02.06.2017
10:19:18
Я "зигоморфизм" даже нагуглить не смог

Евгений
02.06.2017
10:19:38
о/

Alex
02.06.2017
10:19:47
From Ancient Greek ζυγόν (zugón, “yoke”).

Nikita
02.06.2017
10:20:33
Вот теперь стало намного понятней

Alex
02.06.2017
10:20:56
http://comonad.com/reader/2009/recursion-schemes/
типа разновидность фолда со вспомогательной функцией
вот тут с примерчиками даже на 2й странице https://pdfs.semanticscholar.org/cc6f/ee736a6bae838e136304f80e59daff29bd50.pdf

Google

Nikita
02.06.2017
10:23:11
Сенкью за объяснение, гуглить было тяжело

?Ivan
02.06.2017
10:23:24

Alex
02.06.2017
10:24:00
хеза ж защитилась пару лет назад
докторский юморок

Daniel
02.06.2017
10:29:41
про vampire methods только отсылки к Бурмако попались

Alex
02.06.2017
10:30:31
да пребудет с вами матрёшка
или как я её называю ватрушка

Daniel
02.06.2017
10:31:37
матрёшка это в плане поиска определений? чтобы понять одно, начинаешь искать другое и т.д.

Alex
02.06.2017
10:31:46
https://github.com/slamdata/matryoshka

Vladimir
02.06.2017
10:32:45
holymorphism - builds up of tears and pain
у меня как-то так прочлось сперва

Alex
02.06.2017
10:34:19
трансфигурация святым духом
Храм Холиморфизма Господня


Andry
02.06.2017
11:13:40
Коллеги а как правильно готовить слик? Вот беру тупо их пример из доки,
// Definition of the SUPPLIERS table
class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String)](tag, "SUPPLIERS") {
def id = column[Int]("SUP_ID", O.PrimaryKey) // This is the primary key column
def name = column[String]("SUP_NAME")
def street = column[String]("STREET")
def city = column[String]("CITY")
def state = column[String]("STATE")
def zip = column[String]("ZIP")
// Every table needs a * projection with the same type as the table's type parameter
def * = (id, name, street, city, state, zip)
}
val suppliers = TableQuery[Suppliers]
// Definition of the COFFEES table
class Coffees(tag: Tag) extends Table[(String, Int, Double, Int, Int)](tag, "COFFEES") {
def name = column[String]("COF_NAME", O.PrimaryKey)
def supID = column[Int]("SUP_ID")
def price = column[Double]("PRICE")
def sales = column[Int]("SALES")
def total = column[Int]("TOTAL")
def * = (name, supID, price, sales, total)
// A reified foreign key relation that can be navigated to create a join
def supplier = foreignKey("SUP_FK", supID, suppliers)(_.id)
}
val coffees = TableQuery[Coffees]так не компилируется ни фига...
Slick 2.11:3.2


Nikolay
02.06.2017
11:16:31
а импорты?

Andry
02.06.2017
11:17:24
import slick.basic.DatabaseConfig
import slick.jdbc.OracleProfile
import slick.lifted.Tag
import slick.model.Table

Nikolay
02.06.2017
11:17:44
OracleProfile.profile.api._
попробуй добавить такой импорт

Google

Nikolay
02.06.2017
11:18:40
def * = (name, supID, price, sales, total) - выглядит не правильно
там же маппинг описывается с твоими кейс классами например
а не
пардон

Andry
02.06.2017
11:19:57
Ага такой сработал
OracleProfile.api._

Nikolay
02.06.2017
11:20:07
компилится?

Andry
02.06.2017
11:20:25
Спасибки, блин ну какого хрена в доке этого нету?!

Nikolay
02.06.2017
11:20:34
вот вот
я тоже не в восторге от их доки

Grigory
02.06.2017
11:20:49
это риторический вопрос надеюсь (про то, почему нету)

Andry
02.06.2017
11:20:51
Ну по кранейней мере подсвечиваться перестало...

Aleksei
02.06.2017
11:21:05
так, а что никто дуби не советует?

Nikolay
02.06.2017
11:21:16

Aleksei
02.06.2017
11:21:20
ок

Grigory
02.06.2017
11:21:25

Nikolay
02.06.2017
11:21:29
сейчас еще один вопрос про слик и кого-то прорвет

Andry
02.06.2017
11:22:05
А что слик, это стремно, или только для мазохистов?

Oleksandr
02.06.2017
11:22:46
и то, и другое

Nikolay
02.06.2017
11:23:07
существуют разные мнения