@haskellru

Страница 1474 из 1551
Андрей
19.09.2018
08:24:47
даже не выкладывал его, в проекте прямо сидит.ино не на сабже, хотя там алгоритм простой.

Dmitry
19.09.2018
08:24:56
btw, а есть ли хаскельное решение для генерации шелл-скриптов - типа mina ?

ну хаскельное, что бы руби не таскать

алсо - shake годная вещь, или нет?

Google
A64m
19.09.2018
08:49:37
фактически решено добавлять только всякие фичи для облегчения деланья рекордов в библиотеке
надо будет, кстати, восстановить как к такому пришли какое-то время гендри делал именно рекорды, не безымянные, просто полиморфизм для существующих рекордов, сначала по мотивам допотопного пропозала спж, делал чуть ли не для каждого релиза гхц начиная с 7.8 но никуда они не попали (тут тоже надо выяснить почему именно) и однажды волков запостил на реддите (это чуть ли не самое популярное на хаскельреддите) пост про "решение проблемы рекордов" в комментариях там началос обсуждание в ходе которого гендри вдруг решил, что надо делать не рекорды за раз, а некоторый набор условно-общеполезных фич сначала это набор должен был весь попасть в один релиз 8.0 но волшебный класс для перегрузки полей не успел до следующей версии уже понаписали либ с лейблами (одна из набора фич, которая в 8.0 попала), так что задуманный гендри инстанс испортил бы все эти либы (соотвественно при обсуждении пропозала решили этот инстанс не добавлять). бабах! из n пирожков собрать задуманную гендри собачку больше нельзя. (может и к лучшему - но это уже другой вопрос)

Александр
19.09.2018
09:02:21
что брать тогда (если ожидается сложное, в пару сотен роутов)?
Брать можно что угодно. Главное - понимать риски. Здесь одни, там другие

Alexander
19.09.2018
09:02:40
вот кстати с парой сотен роутов у серванта могут быть некоторые проблемы

из-за времени компиляции

но там можно и нужно типы дробить на части

Александр
19.09.2018
09:03:22
Я не занимался оценкой хаскельных серверов

Anton
19.09.2018
09:04:32
Я однажды переигрался и 250 эндпойнтов итого не слинковалось, т.к. GHC выжрал 16гб RAM

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

Google
Leonid
19.09.2018
09:05:25
вот так ghc улучшает архитектуру!

Alexander
19.09.2018
09:05:35
но serve (Proxy @ все подсервисы были)

Andrei
19.09.2018
09:05:48
Брать можно что угодно. Главное - понимать риски. Здесь одни, там другие
эм. но ведь чтобы понимать риски, надо перебрать сервант, спок/scotty/etc, йесод и голый warp, так?

выглядит дороговато

Alexander
19.09.2018
09:06:24
всё работает поверх варпа из этих

смотришь что тебе вообще нужно делать

Andrei
19.09.2018
09:06:37
A64m
19.09.2018
09:07:15
фича, которая несколько ослабила бы проблему влезания в 16гб (но это не точно) может будет в 8.8, она бы может и в 8.6 успела, но похоже что тех что гхц пишет проблема особо не волнует

Александр
19.09.2018
09:07:20
эм. но ведь чтобы понимать риски, надо перебрать сервант, спок/scotty/etc, йесод и голый warp, так?
Ну это уже вам определять, сколько данных нужно собрать, чтобы принять решение

Alexander
19.09.2018
09:07:21
т.к. сервант это про 1. encoding/decoding 2. авторизацию 3. генерацию документации/swagger/ 4. генерацию тестов 5. решения кучи вопросов на соотвествие RFC

Andrei
19.09.2018
09:07:24
смотришь что тебе вообще нужно делать
постепенно заменять куски монолита на рубирельсах

Anton
19.09.2018
09:07:31
Но я усугубил себе проблему, т.к. на type level конкатил Symbol для тэгов доступа

Alexander
19.09.2018
09:08:02
если тебе нужно это, то сервант это отличное решение

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

т.е. разные content-type, 406 при невозможности отдать другой, 407 если данные кривые и т.п.

авторизация мне не до конца там понравилась, но хватило для всех проектов

у @VividDesires было что-то на эту тему хорошее

а ещё клиент у серванта автоматом

что полезно для интеграционных тестов

Anton
19.09.2018
09:11:51
У меня там скорее plug-and-play либа для авторизации

Google
Alexander
19.09.2018
09:11:55
т.е. сервант убирает кучу бойлерплейта и облегчает интеграцию

Anton
19.09.2018
09:11:56
servant-auth-token

Alexander
19.09.2018
09:11:57
а да

у меня то станрдатный servant-auth с jwt

Anton
19.09.2018
09:12:39
Оно скорее было сделано, чтобы между своими проектами переиспользовать стандартную способ авторизации/групп доступа/восстановлений паролей и т.п.

Alexander
19.09.2018
09:12:46
авторизация или через OAuth или свою систему

но групп доступа и т.п. нету, обычно просто пачку пермишенов в jwt кладу

Iva
19.09.2018
09:14:12
кто-то с этими рфс запаривается?

т.к. сервант это про 1. encoding/decoding 2. авторизацию 3. генерацию документации/swagger/ 4. генерацию тестов 5. решения кучи вопросов на соотвествие RFC

Alexander
19.09.2018
09:14:26
мне кажется что почти никто

Anton
19.09.2018
09:14:28
кто-то с этими рфс запаривается?
Клиенты, которые не хаскелль

Alexander
19.09.2018
09:14:46
но если не запариваться, то чужая либа может не работать правильно

Anton
19.09.2018
09:15:01
Было такое, что Android либа для json не могла парсить, например, не Object ответ от серваков

Alexander
19.09.2018
09:15:07
т.е. если тебе это бесплатно дается, то это просто лучше

вообще чем больше можно генерировать автоматом тем лучше

автомат дебажить может сложнее, зато он не ошибается

и все naming conventions и все такое

кстати наверное в следующем проекте я сделаю свой JSON+ в контент тайп, который бы enforc-ил конвенции по именованию и т.п.

мне кстати понравилось со swagger и quickcheck что он проверяет все эти encode.decode для всех типов в API

ещё мне нравится возможность сделать Raw

Google
Alexander
19.09.2018
09:17:38
правда там в клиенте какой-то дурной баг был

не знаю пофиксили или нет, он как-то неожиданно работал

@VividDesires так про сервисы, ты разбил по разным executables?

Anton
19.09.2018
09:20:32
по разным warp apps

Alexander
19.09.2018
09:20:32
или просто подтипам

Anton
19.09.2018
09:20:37
подтипы не сработали

они все всё равно линкуются в одном месте потом

Alexander
19.09.2018
09:20:56
а как роутил? через middleware?

Admin
ERROR: S client not available

Anton
19.09.2018
09:21:03
да

Alexander
19.09.2018
09:21:06
или на каждое свой warp.run был?

Anton
19.09.2018
09:21:24
я пробовал оба варианта, они неотличимо работают

Alexander
19.09.2018
09:21:41
ну warp run отожрет же порт?

т.е. свой инстанс сервера, а с middleware один торчит

Anton
19.09.2018
09:22:03
отожрёт, у меня там всё равно поверх reverse proxy был

тоже на warp написанный

Alexander
19.09.2018
09:22:24
угу

Anton
19.09.2018
09:22:28
т.к. nginx с C# работал ужасно

Alexander
19.09.2018
09:22:47
о у меня тут история классная была (надеюсь кончилась)

когда nginx при применении rewrite интерпретировал urlencoded урлу

Google
Alexander
19.09.2018
09:23:29
и посылал на бекенд уже раскодированный вариант, более того если там было // то он делал /

Anton
19.09.2018
09:23:49
боль

Alexander
19.09.2018
09:24:02
причем это было когда проект выкатили

Iva
19.09.2018
09:25:28
мне вот интересно, зачем вот это проксю в виде нгинкса делают?

не многовато ли оверхеда?

Anton
19.09.2018
09:25:54
и все хотят 80ый порт

а ещё легче https настроить и отдавать статику

у меня для acme была целая эпопея, чтобы warp научить работать с ними

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

А скоримть самоподписанный сертификат в http-client-tls ещё та задачка

Alexander
19.09.2018
09:27:56
мне вот интересно, зачем вот это проксю в виде нгинкса делают?
практика показывает что так безопаснее и быстрее, особенно настроить https

особенно если у тебя за nginx несколько приложений

т.е. nginx обычно быстрее, чем http-reverse-proxy особенно если ssl

Anton
19.09.2018
09:29:05
У меня nginx коцал https для chrome, браузер отдавал магические NETWORK_ERR

это было последней каплей, чтобы от него избавиться

Alexander
19.09.2018
09:32:26
ещё в alphasheets я хочу убрать http-reverse proxy из приложения и перекинуть на nginx

т.к. он стабильная часть архитектуры и не убивается при обновлениях

в итоге всякие web-sockets смогут пережить обновление

а сейчас соединение рвется, юзер конечно не замечает, но все равно

Anton
19.09.2018
09:34:07
Вебсокеты и так постоянно рвутся

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