Alexander
очень много кода, но очень странного
Dmitry
копировать эрланг - это не тупиковая ли идея вообще?
Dmitry
лучше б до ума довели transient
Alexander
Мы работаем над этим.
Могу поревьюить, как буду более-менее свободен
Alexander
что, если не сервант? на чем вебсервисы-то писать?
Сервисы - писать на Haskell. Сервант нужен не более, чем для серверного кода
Dmitry
что значит, на хаскелл
Alexander
у них там целый FP Complete ревьювит код
Alexander
В смысле - кода, который сервит
Dmitry
ну короче - сервант ок, код его - не ок, т.к. для слишком умных людей написан
Alexander
тупиковая
Alexander
ну патчить сервант сложновато
Alexander
но как часто вы это делали?
Denis
у них там целый FP Complete ревьювит код
FPC уже давно с нами не работают.
Dmitry
да блин через раз
Alexander
у них там целый FP Complete ревьювит код
Западные ревьюеры все такие толерантные, как бы чего лишнего не сказать, засудят
Denis
Ничего подобного.
Alexander
что значит, на хаскелл
Вам концепция деления на слои понятна?
Dmitry
и?
Denis
Когда Джон Хьюз (который из Quviq) посмотрел наши тесты - он прямым текстом сказал, что многие из этих тестов "just suck".
Denis
так что никакой излишней толерантности.
Alexander
FPC уже давно с нами не работают.
а что же тогда делает Kirill
Alexander
и?
Сервант - лишь небольшой слой взаимодействия с внешним миром. "Писать сервисы" == "писать бизнес-логику", и это никак не Сервант
Alexander
да, если ваш сервис не генерит свою спецификацию и не тестирует ее автоматом, то он не очень
Alexander
как время-то бежит
Kirill
но вообще Денис вроде когда-то уже говорил, что у FPCo контракт с Cardano Foundation
Kirill
не с IOHK
Alexander
а да точно
Denis
именно
Alexander
но ты же ревьювил какой-то код?
Alexander
не так давно
Dmitry
остальное вполне понятно, слои там и т.п.
Alexander
в другом случае сервант начинаешь переизобретатт
Alexander
очень рано
Kirill
но ты же ревьювил какой-то код?
не по контракту с IOHK, репорты пишутся, что IOHK с ними делает (получая от CF) вопрос к IOHK
Alexander
я ничего не говорил про контракт с IOHK
Alexander
а про то, что вы ревьювите тот код
Kirill
ок
Alexander
ну т.е если убрать увиливания - то это означает - смириться с сервантом
Я же уже обозначил свою позицию. Если не ожидается сложной логики сервера, Servant можно использовать, он хотя бы ориентирован, чтобы его использовали. В предыдущем проекте я его использовал и писал на нем RPC. Если же ожидается что-то сложное, выбор Серванта рискован.
Kirill
поправка только, что совсем далеко не ценлый FP Complete :)
Alexander
договор с компанией значит что она выделяет достатое кол-во ресурсов на решение проблемы и имеет shared knowledge
Kirill
в каком смысле shared?
Alexander
между сотрудниками
Alexander
т.е. если что-то странное или наоборот видишь то можешь обсуждать и получать знания других людей
Alexander
и.е. ревью сильной командой часто сильнее ревью сильного человека
Alexander
учитывая, любое безумие там возможно с помощью Raw
Kirill
ядро OS? :)
Alexander
по мнению многих - если ожидается что-то сложное, или, тем более, Промышленное - то выбор хаскелла это даже не риск, а чистое безумие.
Так и есть. Выбор Haskell сейчас - это риск более высокий, чем выбор любого распространенного языка. Но мы-то уже находимся в системе координат Haskell. Хотя можно пообсуждать, да
Alexander
ну мы вроде про веб сервисы?
Alexander
например, что сложное сложно сделать на серванте?
Если память меня не подводит, ты сам в этом чате рассказывал о стриминге, который пытался туда прикрутить.
Alexander
я патчил там две вещи: 1. авторизацию (уже в апстриме) 2. streaming который был кривой
Dmitry
Так и есть. Выбор Haskell сейчас - это риск более высокий, чем выбор любого распространенного языка. Но мы-то уже находимся в системе координат Haskell. Хотя можно пообсуждать, да
а я считаю, что нет, например. как по мне - так выбор Java это гарантированно сработавший бюджетный риск, и с высокой вероятностью - риски человеческого фактора
Alexander
ну не смотря на мою ругань я сделал его за пару часов
Alexander
при этом всегда можно написать Raw и получить чистый Wai
Alexander
ну не смотря на мою ругань я сделал его за пару часов
Я опирался именно на твои слова. Тогда, видимо, Servant - нормальный выбор
Dmitry
ну т.е зачисление серванта в группу риска означает, что ему есть какая-то общепринятая, зарекомендовавшая себя мейнстримная альтернатива
Dmitry
в нашем-то хаскелле. ну-ка ну-ка что это
Alexander
вот аж вчера мне нужно было переделать парсинг параметров, т.к. ingress или CDN перед сервисом неожиданно начал сам urldecode делать и это не тестировали
Alexander
пришлось заменить endpoint на raw
Alexander
ну т.е зачисление серванта в группу риска означает, что ему есть какая-то общепринятая, зарекомендовавшая себя мейнстримная альтернатива
В мире Хаскеля говорить о мейнстримных альтернативах можно лишь в ряде ограниченных случаев
Alexander
учитывая что это заметили в 11 вечера люди сидевшие в офисе
Alexander
да сервант внутри сложный и плохо документировар
Alexander
но лазить туда надо не часто, ещё там неплохой апстрим
Alexander
а ещё есть пачка людей тут которые его патчили, у которых можно бесплатно и не очень проконсультироваться
Alexander
чаще бесплатно
Dmitry
короче, кода меньше = код лучше. но если код работает - то он уже хороший.
Alexander
но лазить туда надо не часто, ещё там неплохой апстрим
Это очень хорошее качество. Когда есть понятный интерфейс и есть куча примеров, как его использовать так, чтобы его уши не протыкали собой все другие слои. А вот с vinyl-рекордами (у меня на прошлом проекте) так не получилось. Поэтому мы коллегиальным решением загнали эти рекорды только в одну небольшую нишу, чтобы они не лезли в бизнес-логику. Автору (который еще, к слову, навертел поверх своей магии на типах) пришлось с этим смириться
Alexander
короче, кода меньше = код лучше. но если код работает - то он уже хороший.
Оба утверждения спорные, но второе спорно гораздо сильнее. На порядок
Dmitry
ну конечно, ведь лучше хороший, но не работающий код
Dmitry
во, в твиттере про понятность заговорили
Alexander
ну конечно, ведь лучше хороший, но не работающий код
Я не утверждал этого. На мой взгляд, здесь нет черно-белой оценки. Если код хорошо написан, но не работает, то там, возможно, есть какой-то простой баг, который очень легко найти и пофиксать. И все заработает
Dmitry
да все фигуранты здесь сидят, и в общем ничего нового нет. хорошо/плохо понятно/непонятно много loc/мало loc
Dmitry
всё как всегда