Yura
я знаю как это изменить!
Yura
надо заплатить денег тем, кто будут его пилить
Alexander
вроде он забил когда jhc начали реанимировать
Alexander
тайплевел, кстати там весьма простой
Alexander
не очень простые инстансы внутри
Leonid 🦇
не скажу что сервант очень уж сложный изнутри. там вся сложность в delayedio
Leonid 🦇
и да, сервант нужно переписывать что-бы ошибки были не плейнтекст
Dmitry
всё надо переписывать, nikitonsky не даст соврать
Leonid 🦇
ага, на кложе
Alexander
на tcl
Alexander
кложа не достаточно stringly
Leonid 🦇
я немного умею tcl
A64m
в нормальный язык типа Idris
что в нем нормального-то? там нормально сделано то чем пользуешься 1% времени, потому что это автору интересно, а чем 99% - все равно что нет
Leonid 🦇
я хочу в хаскель хотя-бы анонимные рекорды из пурсы :(
A64m
хаскель - язык определенный имплементацией, какие у него могут быть альтернативные фронтенды?
Dmitry
мы все умрём
A64m
в этом смысле jhc всегда был бесполезным
Dmitry
всё тлен
A64m
что в принципе могло сработать, это гхц фронтенд с jhc бекендом т.е. второй lhc (помер, у третьего lhc пишут свой фронтенд) и нынешний грин-бекенд для ghc
Dmitry
а эти, из утрехта
Dmitry
они брыкаются еще?
A64m
да, но там свой фронтенд, так что реальные хаскельные либы он никогда собирать не будет
A64m
A64m
фактически решено добавлять только всякие фичи для облегчения деланья рекордов в библиотеке
A64m
никакие готовые полиморфные рекорды из коробки в гхц теперь не протащить
Alexander
а есть хорошие пакеты для url shortening
Alexander
готовые, которые мои данные переводят в небольшой url safe token
Dmitry
хорошее тестовое задание
Alexander
да
Andrey
я свой запилил, эз фо ми хороший
Dmitry
опенсорс?
Andrey
даже не выкладывал его, в проекте прямо сидит.ино не на сабже, хотя там алгоритм простой.
Dmitry
btw, а есть ли хаскельное решение для генерации шелл-скриптов - типа mina ?
Dmitry
ну хаскельное, что бы руби не таскать
Dmitry
алсо - shake годная вещь, или нет?
A64m
фактически решено добавлять только всякие фичи для облегчения деланья рекордов в библиотеке
надо будет, кстати, восстановить как к такому пришли
какое-то время гендри делал именно рекорды, не безымянные, просто полиморфизм для существующих рекордов, сначала по мотивам допотопного пропозала спж, делал чуть ли не для каждого релиза гхц начиная с 7.8 но никуда они не попали (тут тоже надо выяснить почему именно)
и однажды волков запостил на реддите (это чуть ли не самое популярное на хаскельреддите) пост про "решение проблемы рекордов" в комментариях там началос обсуждание в ходе которого гендри вдруг решил, что надо делать не рекорды за раз, а некоторый набор условно-общеполезных фич
сначала это набор должен был весь попасть в один релиз 8.0
но волшебный класс для перегрузки полей не успел
до следующей версии уже понаписали либ с лейблами (одна из набора фич, которая в 8.0 попала), так что задуманный гендри инстанс испортил бы все эти либы (соотвественно при обсуждении пропозала решили этот инстанс не добавлять).
бабах!
из n пирожков собрать задуманную гендри собачку больше нельзя.
(может и к лучшему - но это уже другой вопрос)
Andrei
Alexander
вот кстати с парой сотен роутов у серванта могут быть некоторые проблемы
Alexander
из-за времени компиляции
Alexander
но там можно и нужно типы дробить на части
A64m
Alexander
Я не занимался оценкой хаскельных серверов
A64m
NC
NC
Я однажды переигрался и 250 эндпойнтов итого не слинковалось, т.к. GHC выжрал 16гб RAM
NC
Потом просто разбил на подсервисы
Leonid 🦇
вот так ghc улучшает архитектуру!
Alexander
но serve (Proxy @ все подсервисы были)
Andrei
выглядит дороговато
Alexander
всё работает поверх варпа из этих
Alexander
смотришь что тебе вообще нужно делать
Andrei
A64m
фича, которая несколько ослабила бы проблему влезания в 16гб (но это не точно) может будет в 8.8, она бы может и в 8.6 успела, но похоже что тех что гхц пишет проблема особо не волнует
Alexander
Alexander
т.к. сервант это про 1. encoding/decoding 2. авторизацию 3. генерацию документации/swagger/ 4. генерацию тестов 5. решения кучи вопросов на соотвествие RFC
NC
Но я усугубил себе проблему, т.к. на type level конкатил Symbol для тэгов доступа
Alexander
если тебе нужно это, то сервант это отличное решение
Alexander
т.к. скорее всего если ты будешь писать на чем-то более низкоуровневом ты просто забьешь на соотвествие стандартам
Alexander
т.е. разные content-type, 406 при невозможности отдать другой, 407 если данные кривые и т.п.
Alexander
авторизация мне не до конца там понравилась, но хватило для всех проектов
Alexander
у @VividDesires было что-то на эту тему хорошее
Alexander
а ещё клиент у серванта автоматом
Alexander
что полезно для интеграционных тестов
NC
У меня там скорее plug-and-play либа для авторизации
Alexander
т.е. сервант убирает кучу бойлерплейта и облегчает интеграцию
NC
servant-auth-token
Alexander
а да
Alexander
у меня то станрдатный servant-auth с jwt
NC
Оно скорее было сделано, чтобы между своими проектами переиспользовать стандартную способ авторизации/групп доступа/восстановлений паролей и т.п.
Alexander
авторизация или через OAuth или свою систему
Alexander
но групп доступа и т.п. нету, обычно просто пачку пермишенов в jwt кладу
Апач
кто-то с этими рфс запаривается?
Апач
т.к. сервант это про 1. encoding/decoding 2. авторизацию 3. генерацию документации/swagger/ 4. генерацию тестов 5. решения кучи вопросов на соотвествие RFC
Alexander
мне кажется что почти никто