NC
как этот тайпкласс получился: нашёл все места, где вызывался SQL в базу и заменил на метод тайпкласса
Alexander
ясно
NC
т.е. там некоторые вещи можно через другие выразить, но пострадает persistent бекенд, которые эти вещи более быстро реализует
NC
ну и да, тут сильно не хватает дефолтных реализаций
Leonid 🦇
@NCrashed ну я может быть разбил бы на 2, для запросов и модификаций. ну и дефолтные имплементашки для пермишенов и прочих групп
Leonid 🦇
которые ничего не делают
Leonid 🦇
Ну это ладно, @NCrashed лучше расскажи как ты сервантом юзерские эрроры делаешь?
NC
@lonokhov делаю общий ADT на все свои ошибки и в монаде разрешаю кидать только его значения как ошибки, при выходе из своей монады конверчу в сервантовские ошибки
NC
иногда тело ошибки делают JSON, если фронту это надо
Leonid 🦇
а content negotiation? или у тебя только JSON
NC
на практике ничего кроме JSON не встречал
Leonid 🦇
и то верно
NC
и это ещё можно реализовать, если прям очень надо
Leonid 🦇
а в сваггер документация об ошибках не попадает?
A64m
(Извините)
а в чем красивость SML и какая-то особая тяплаповость окамла по сравнению с ним? Вроде где в окамле костыли, там и в SML-е, хотя бывают и лучше как в случае равенств, например
NC
нет, не нашёл как в хаскелльную версию сваггера пропихать
Leonid 🦇
У меня есть комбинатор Throws e с инстансом для Throws e :> Verb ...., но не расширябельно
Leonid 🦇
есть servant-checked-exceptions, но он сложный
Leonid 🦇
зато расширябельный
NC
на вид норм
NC
только сигнатуры засирает
NC
что неизбежно, наверное
NC
у серванта ещё засада есть, если ошибка произошла до входа в хендлер, он тебе будет всегда plain text отдавать
Leonid 🦇
ну это можно миддлварью наверно. хотя если он 400 шлёт на ReqBody...
NC
мб, вроде мидлтварью и решали
Leonid 🦇
400 :(
Alexander
/me так и не перелез на servant
Alexander
хотя по словам Арни уже все мои хотелки там есть
NC
а на чём сидишь?
NC
raw wai?
Alexander
чистый wai
Leonid 🦇
если бы не генерилка доков, я бы и не сувался
NC
хм, а мне больше важно согласование типов между фронтом и серваком
Leonid 🦇
@qnikst ты как, кстати, сделал апишку RESTfulную или тупо RPС-HTTP c POST?
Alexander
RPC-HTTP
Leonid 🦇
фронт вечно пишут то на питоне то на шарпе, так что пусть конём... ходют
Alexander
ну если честно там смесь какая-то, я думаю когда-нить отрефакторю до полноценного RPC-HTTP
Alexander
очень много чего исторически наложилось
Alexander
а маппинг на RPC запаришься писать нормальный
Alexander
если не с данными прямо отображаемыми на json работаешь
Alexander
все эти, тут diff тут put, 3мя способами добраться до ресурса и т.п.
Кабачок
Leonid 🦇
вот эти diff и put идут в лес, только Post с телом!
Leonid 🦇
разговоры про кэширование хттп ложь
Alexander
только PUT тоже неясно, вот нужно кусок структуры поменять
Alexander
добавляй уровень, который не несёт смысла вне структуры
Anatolii
я вот эти ресты совсем не люблю, слишком много вопросов лишних
A64m
В OCaml все в кучу: и опциональные аргументы, и именованные аргументы, и ООП, и открытые/закрытые объединения (или как они там на русском, в общем конструкторы с бэктиком).
главная же костыльность и смл-я и окамла в том, что главное средство организации кода - модули - там прилеплено как-то неуверенно, со странным недоиспользованием в библиотеках, гда вместо них для реальных повседневных задач вроде сравнений и арифметики приделаны специальные костыли, в смл-е еще и абстипы оставлены. Ну в каком-то смысле это потому что разработка модулей отделена была от разработки языка в пространстве (для смля их отдельная команда придумывала, которые даже и не эмелисты были и нкак-то не особо плотно с милнеровской взаимодествовали) и во времени (Лерой накостылил сначала окамл лайт, а модули для него через 5 лет только)
A64m
Но в окамле хоть функторы аппликативные
Андрей
Та же проблема
я думал это за счёт интерактивности разработки например на кложуре решается
Андрей
ну то есть ты в реальном времени 10 раз ошибся, на 11 раз получил, что нужно и успокоился
A64m
Но вообще СМЛ и Окамл близнецы братья с кстылями в одних и тех же местах, правда с некоторыми второстепенными сильными и слабыми сторонами
A64m
(что, конечно, менее оправдано в случае окамла, который гораздо новее)
Andrei
A64m
ужасно, конечно, что кто-то хочет быть смолтоком
Aliester
куда идти после руби кстати?
Aliester
кроме дворников*
Andrei
Aliester
я уже два года на нем, и что-то PHP не вижу
Aleksei (astynax)
Смоллтолк прикольный в виде среды, концепции, вещи в себе.
Aliester
Aliester
а какие паттерны вы применяете мгновенно в код?
Andrei
Aλexander
Andrei
кроме дворников*
В дворники тоже не возьмут: необратимые повреждения мозга
a66ath
>нормальный манкипатчинг
Oxxxymiron
Alexander
блин забавный доклад про go GC
Anatolii
мне было тоже было инетерсно послушать
A64m
что за доклад?
Alexander
вчера ссылка на ютуб была, там чел из убера говорит
Alexander
ничего особо нового, но все же
A64m
ага, нашел
Leonid 🦇
/me ждёт разговор с ютубом
A64m
не сейчас
Alexander
heap bitmaps!
Alexander
в go maps - pointerless structure
Alexander
это как сделано, все заанбокшено в структуру7
Alexander
а если из неё вытаскивать то что, копирование или вся структура или ветка будет держаться?