
Pp
25.09.2016
16:17:37

Slava
25.09.2016
16:20:54
Так или иначе, чтобы собрать запрос иногда нужно полключать и отключать куски внутри которых есть параметры sql"blablabla $parameter blablabla", чтобы слик правильно подставил ? и транслировал параметры отдельно.

Sergey Tolmachev
25.09.2016
16:39:07
в scalikejdbc так давно и очень удобно строить запросы

Slava
25.09.2016
17:32:48
В scalikejdbc результат нельзя принять простым .as[(Long, Double, Seq[String], Option[String], DateTime)], надо работать с резалтсетами, это больше кода, дольше писать, труднее поддерживать.

Google

Pp
25.09.2016
22:33:44
Яснопонятно
Свой тип данных всяко удобнее комбинировать, чем клеить строки
Хотя бы чтобы избежать островков stringly-typed кода

Aleksei
26.09.2016
08:24:35
А подскажите в liftjson есть вариант целый JValue конвертнуть в Map[String, String]?

folex
26.09.2016
13:31:24
http://fasterj.com/tools/gcloganalysers.shtml недавно тут говорили об этом
http://gceasy.io/
и вот еще

Nick
26.09.2016
13:52:10
Что не так со склеикой строк

Sovent
26.09.2016
13:57:00
с линкью незадача, если на коллекциях в памяти он работает прелестно, то как язык запросов в БД он в каждом отдельном случае требует серьёзных доработок напильником и его апи чаще всего не совсем подходит функционалу, который в него пытаются завернуть. в итоге получается неуклюжая плохо работающая махина. в скала, я так понимаю, решили чего-то подобного на уровне языка не делать и все разработчики описывают апи как им удобнее

Oleksandr
26.09.2016
14:18:46
линкью компилятор это по сути оптимизатор запросов в субд
не то чтобы это была неразрешимая задача...
но

Vasily
26.09.2016
14:19:28
Где-то я недавно видел спор на rsdn про склейку строк vs linq

Oleksandr
26.09.2016
14:19:31
в общем имхо это реально только при наличии какого-то не-SQL бекенда с всякой служебной инфой
так чтобы универсально

Google

Vasily
26.09.2016
14:20:22
Короче, правильно написанный LinqProvider(типа Linq2DB) генерит запросы, очень близкие к оптимальным
Другой вопрос - прокладка между стулом и монитором

folex
26.09.2016
14:21:16
Никогда не было понятно зачем класть монитор на стул

Vasily
26.09.2016
14:21:50
Я к тому, что linq, как и любой другой инструмент, не делает магии

Sovent
26.09.2016
14:25:54
Ну правильно написанный любой провайдер генерит запросы, близкие к оптимальным, для этого не обязательно подводить код по апи линку. И именно потому, что он не делает магии, этого и не стоит делать.

Vasily
26.09.2016
14:28:46
Это скорее вопрос вкуса

Vladimir
26.09.2016
14:29:59

Lev
26.09.2016
14:30:50

Vladimir
26.09.2016
14:31:00
Если я правильно понял их док, то у них вообще позиция "индексы? ключи? мы вам слепим гуано из подзапросов и валяйтесь с ними как хотите"

Sovent
26.09.2016
14:31:07
вот не думаю, что вкуса. единственная польза от написания linq-провайдера - клиентам будет привычно им пользоваться. но это только если ты хорошо его написал, но если там есть _ньюансы_, то вся польза сразу сходит на нет, всё равно нужно будет рыть документацию

Wystan
26.09.2016
14:44:35
Базы банных в 2016 когда все можно уместить в память. No way.

Viacheslav
26.09.2016
14:45:16
всё в уме держишь? мужик!

Wystan
26.09.2016
14:45:21
Бд нужны только чтобы персистить туда ивенты.
А то!

Viacheslav
26.09.2016
14:45:58
ну ок, пойду всем расскажу

Denis
26.09.2016
14:46:51

folex
26.09.2016
14:48:14
Нет ничего кроме эвента, и все события -- эвенты его

Denis
26.09.2016
14:48:47
и все события последствия его

Nick
26.09.2016
15:35:13
Че

Google

?Ivan
26.09.2016
15:45:55
Мы сложные запросы в базе держали ? Поддерживать относительно легко.

Юрий
26.09.2016
15:48:17
Ужс
А куски верстки у вас случаем в бд не лежали?

Ivan
26.09.2016
15:49:19
так вроде же какие то движки прям все держат в бд

Nick
26.09.2016
15:49:48
Нормально работает) ибо нех юзать динамику

Юрий
26.09.2016
15:50:56

?Ivan
26.09.2016
16:01:47

Mikhail
26.09.2016
16:01:49

Nick
26.09.2016
16:11:24
Ну можно для фильтров и одну кверю написать?
А пагинация вообще не проблема
Зато он закешируется)

Aleksei
27.09.2016
05:31:53
слушайт

Aleksei
27.09.2016
05:31:54
е
тут такая тема всплыла
вот кодишь ты такой свой проект, думаешь стрелки клейсли внедрить и клево сделать, а тебе не ревью говорят что НЕЛЬЗЯ СУКА С ИЗ СОЛИДА НАРУШАТЬ. бывало так?

Wystan
27.09.2016
05:33:21
Что такое солид?

Andrey
27.09.2016
05:33:36
SOLID же

Aleksei
27.09.2016
05:34:31
@Emiya402 это на самом деле самый крутой ответ

Andrey
27.09.2016
05:34:32
SRP, Open/Close, LSP, interface segregation, deps inversion
или я сарказм не разглядел? :)

Google

Admin
ERROR: S client not available

Aleksei
27.09.2016
05:34:47
=(((

Andrey
27.09.2016
05:34:57
тогда +1 за ответ

Vyatcheslav
27.09.2016
05:35:37
а как там SRP нарушается? Можно подробнее?

Aleksei
27.09.2016
05:35:45
и после реплики про солид у меня начались флэшбэки с первой работы где было говнопроект с говнокодом зато принципы
есть вообщем сущность
есть класс обработчик который парсит из текста сущность
есть класс аналайзер который допинфо дергает и делает из сырой сущности сущность

Wystan
27.09.2016
05:36:36
Блин, я правда в 8 30 утра не вспомнил бы про паттерны.

Aleksei
27.09.2016
05:36:58
на вопрос нахуй мы 30 мультов сущностей по два раза гоняем и не перетащить ли логику аналайзера в парсер мне указали на СРП

Vyatcheslav
27.09.2016
05:37:17
класс-обработчик вытаскивает сырую сущность?

Aleksei
27.09.2016
05:37:21
при этом класс аналайзера создается фэктори методом вообще из другого подпроекта и включает в себя 3-4 класса стратегии
да

Andrey
27.09.2016
05:37:48
бля жесть. фактори метод а-ля джава стайл?

Aleksei
27.09.2016
05:37:54
да
причем метод в объекте в абсолютно другом подпроекте
и люди глядя на это мне говорят что это СОЛИД и я подумал наверное рановато я про клейсли задумался

Vyatcheslav
27.09.2016
05:39:37
имхо SRP не нарушен. Один класс занимается text->raw. Другой класс занимается raw->entity. Ну захотел, сделал функцию text->entity, в чем проблема :)

Aleksei
27.09.2016
05:40:20
это происходит так
читаем текстовый файл спарком парсим в raw

Google

Aleksei
27.09.2016
05:40:37
сериализуем на hdfs
читаем

Wystan
27.09.2016
05:40:43
Там в паттернах есть interpretator pattern - скажи что его юзаешь. Его все равно не понять и под ним можно паосеры, адт и прочее в проект под видом "а оно есть у генг оф 4" пропихнуть
.

Aleksei
27.09.2016
05:40:48
анализируем в entity

Lev
27.09.2016
05:40:49
так надо фэктори сделать, чтобы из парсера и клейсли билдеры собирала ?
уж на такие паттерны ООПшники грешить не станут
главное название стрелки вслух не произносить

Wystan
27.09.2016
05:42:24
Это тоже хороший совет!

Aleksei
27.09.2016
05:42:28
кстати да )