@haskellru

Страница 1063 из 1551
Denis
05.04.2018
14:31:31
а где нет таких заморочек?

Kirill
05.04.2018
14:32:00
вроде умные люди katip советовали :)

а в кардане вашем нет логгирования?

Denis
05.04.2018
14:32:35
там свой велосипед, Серокельцы что-то своё сделали

Google
Denis
05.04.2018
14:32:40
мне нужно готовое решение

kir
05.04.2018
14:33:19
ReaderT (Text -> IO ()) ?

Kirill
05.04.2018
14:33:20
на хакидж выложили хоть?

ну и катип вроде готовый

@qnikst тыж за katip ратовал?

kir
05.04.2018
14:34:27
У katip год назад лог был не сильно читаемый, скажем так.

Alexander
05.04.2018
14:34:34
понапишут на закрытых TF кода, а потом кроме Verb ничего не подходит
я когда auth патчил перевел часть на открытые

катип норм

jq wtf

Kirill
05.04.2018
14:35:25
kir
05.04.2018
14:36:19
[timestamp][severity][thread][some][thing][else]:me ssage that you are supposed to read

Leonid
05.04.2018
14:36:32
норм пацаны логают json

kir
05.04.2018
14:36:58
Literally. Его, наверное, можно застроить, но искаропки выглядит примерно так

Google
Leonid
05.04.2018
14:37:09
нормально выглядит

Alexander
05.04.2018
14:37:11
kir при тебе же ещё у нас json лог был

или ещё нет?

kir
05.04.2018
14:37:39
Ну или в базу лог писать. Если честно, я json-лога не помню. Наверное, всё-таки после меня уже)

Alexander
05.04.2018
14:37:47
вообще стандартный несколько жутковат в основном своим ордерингом

т.е. [timestamp][namespace][tags] message было бы норм

а там было сначала то, что часто менятся, потом, что редко

слоан правда потом требовал назад простые логи

не json

kir
05.04.2018
14:40:29
Вообще, в идеале, логи надо класть в базу и читать отдельной программой

Alexander
05.04.2018
14:42:32
одно другому не мешает

у нас какая-то тулза все в стекдрайвер кладет

дурацкая тулза, лучше бы мы сами процессили

в общем если нужно структурированное логирование контексты теги и это все то katip норм

Александр
05.04.2018
15:05:57
Насколько эти расширения распространены?
Вообще, мы вот это взяли на вооружение: https://gist.github.com/mtesseract/1b69087b0aeeb6ddd7023ff05f7b7e68 Хорошо работает.

> In order to prevent these issues, I suggest to put all lens definitions in one module named e.g. Lenses. This module imports all desired types and uses makeFieldsNoPrefix for generting the lens type classes and instances.

? animufag ?
05.04.2018
15:10:15
в общем у меня есть множество своих репов которые я добавляю в extra-deps с указанием тега также их все в кабале добавляю и один из них стек не видит. то есть реп скачал, а зависимость такую не находит In the dependencies for yyy-0.1.0.0: xxx needed, but the stack configuration has no specified version как бы мне диагностировать что пошло не так

Leonid
05.04.2018
15:10:16
с Fields только бесит что их надо все объявить (что бесит), или для каждого рекорда генерть в отдельном сплайсе (что очень долго(

? animufag ?
05.04.2018
15:10:41
можно у стека спросить какие ему доступны зависимости?

Google
Александр
05.04.2018
15:11:02
Итого у нас есть: AppName.Context.Domain.всякие_файлы_для_типов.hs AppName.Context.Domain.hs -- Содержит референсы на доменные типы AppName.Context.Lens.hs -- линзы. Импортирует AppName.Context.Domain.hs

Leonid
05.04.2018
15:12:07
concat <$> sequence [ makeFields ''Foo, makeField ''Bar....] компилируется быстрее чем makeFields ''Foo makeFields ''Bar ...

но для дублирующихся полей надо определять HasFoo класс заранее

Александр
05.04.2018
15:13:24
Гмм

А оно того стоит вообще? У нас пачки makeFields, и все дела. (Точнее, пачки `makeFieldsNoPrefix`)

? У нас другое в разы замедляет компиляцию. А именно, Type Families для рекордов.

Leonid
05.04.2018
15:57:19
ну вы еще vinyl затащите к себе

вообще да, TH очень тормозит если в одном модуле. если по разным то не так страшно

Denis
05.04.2018
16:04:08
https://twitter.com/dshevchenko_biz/status/981925201880469505

Александр
05.04.2018
16:19:58
?

К счастью, удалось убедить любителя тайпмагии, что это лучше не пускать в бизнеслогику, а оставить для маппинга БД

Там сущий ад. Opaleye+vinyl+кастомные надстройки

Alexander
05.04.2018
16:23:23
o.O

Александр
05.04.2018
16:26:04
Ну и да, Сервант ещена закуску

Alexander
05.04.2018
16:26:21
сервант норм

винил тоже норм

Александр
05.04.2018
16:28:00
сервант норм
Это ты еще не пробовал Сервант + freer эффекты

Alexander
05.04.2018
16:28:15
freer не нужен

Google
Alexander
05.04.2018
16:28:43
точнее я не знаю пока ни одного юзкейса где freer нужен, а правильного mtl не хватит

Александр
05.04.2018
16:28:46
У нас норм зашел, который от Takt

Alexander
05.04.2018
16:29:03
у олега в статье было что-то, но я не уверен что я оценил

Александр
05.04.2018
16:30:00
Ну моки писать хорошо

Leonid
05.04.2018
16:32:08
винил тоже норм
Смотря сколько и какого размера рекорды. У меня было такое что 8 модулей с операциями с БД компилировались минут 15

день убил на бойлерплейт и переписал на рекорды обычные. теперь тормозят только makeFields, но всего 30 сек (4 минуты весь проект на 8 ядрах)

Denis
05.04.2018
17:02:31
а вот кстати, коллеги, какие ghc-options нужны для ускорения компиляции?

вернее так: на какие опции нужно обратить внимание прежде всего?

понятно, что убрать оптимизацию

что ещё?

Alexander
05.04.2018
17:03:42
-fno-code

? animufag ?
05.04.2018
17:04:02
Ну моки писать хорошо
сложностью управлять

Alexander
05.04.2018
17:04:21
для моков free(r) не обязателен

с handle/servce pattern или mtl все прекрасно делатеся

Denis
05.04.2018
17:05:36
-fno-code
Да, знаю про такое. А ещё что?

Александр
05.04.2018
17:05:59
Да, делается. Но с freer моки - это паттерн-матчинг. Правда, если много бизнес-логики вовлечено, то там все начинает плохо выглядеть

Alexander
05.04.2018
17:06:02
там для специализаций отлючения было что-то

я кстати ищу кейсы где freer будет лучше, пока знаю 0

freer+effects

Google
Александр
05.04.2018
17:07:17
А я, в свою очередь, не вижу предмета спора. Дело вкуса. По крайней мере до тех пор, пока сообщество прочно не поймет плюсы и минусы

Alexander
05.04.2018
17:09:01
какой спор, я ж вроде вопрос задал и интересуюсь

Александр
05.04.2018
17:09:18
Не вижу в сообщении знака вопроса ;)

Я человек простой, - вижу вопрос, отвечаю. Не вижу - не отвечаю

Alexander
05.04.2018
17:10:10
...я кстати ищу кейсы где freer будет лучше, пока знаю 0 <- не спор а призвание делиться такими кейсами

free(r) <-> final tagless конвертируются в обе стороны

Александр
05.04.2018
17:11:09
Я все же не смогу ответить удовлетворительно, потому что это ж надо несколько кейсов иметь, сравнивать их, понимать. У меня пока только 1.

Alexander
05.04.2018
17:11:17
т.е. из одного другое можно легко сделать

Александр
05.04.2018
17:11:23
(На самом деле, больше, но то уже из другой оперы)

Alexander
05.04.2018
17:12:34
тогда возникает вопрос, может один из вариантов лучше

Александр
05.04.2018
17:12:35
Просто для информации: наши freer-языки - это такие: OrderL RestaurantL CompanyL ... Каждый из них что-то умеет по своему контексту. А есть контексты более верхнего уровня, они уже пользуют эти вот языки

kana
05.04.2018
17:12:55
у олега точно был пейпер, показывающий проблемы инициальных интерпретаторов (фри[р]) и как терминальные интерпретаторы (финал тэглесс) их решают

Alexander
05.04.2018
17:13:00
MonadOrder, MonadRestaurant, MonadCompany

Alexander
05.04.2018
17:13:26
@kana_sama у него было и наоброт

exteff.pdf

когда он extensible-effects вводил, показывал как в mtl у нас чепуха получается, а с эффектами и free все хорошо

kana
05.04.2018
17:14:10
ну эксэфф это пара страниц, а там было штук 50 наверное

Alexander
05.04.2018
17:14:24
12

одна из проблем freer что они тормозят

kana
05.04.2018
17:14:51
а ты вычел код, референсы, опен юнионы и прочее подводящее к теме? там про плюсы/минусы фри-эффектов пара страниц, но цифра таки с головы

Александр
05.04.2018
17:15:08
Если искать проблемы, то их для любого подхода, наверное можно найти пачку на 50 страниц. Но это ж все лирика.

Страница 1063 из 1551