169 похожих чатов

Всем привет. Я немного разобрался с языком, хочу пописать практично

для себя. Есть идея для небольшого пет проекта. Подскажите что там по стекам? Очевидно, что я еще далеко не так хорошо в ФП разбираюсь, как это нужно для cats или ZIO, но само собою стараться функционально я буду. Чистые функции, кейс классы, паттернматчинг, вот это все.
Наверное я все премешал, cats это вроде примитивы в замен стандартной библиотеки, хотя ZIO тоже, но там в виде доп. либы есть http сервер.
Что тогда взять, play? Наверное легче будет если это lightweight решение, а не что-то типа ruby on rails.

25 ответов

32 просмотра

А вы на глаз и на свой вкус посмотрите zio и cats-effect, в зио прикручивается http4s и doobie, в лёрне помогут если что

Cats - это не взамен, это в дополнение к стд либе. В нем всякие теор.категорные вкусности вроде монад/полугрупп/моноидов и пр. Cats-Effect и ZIO это по факту рантаймы, окружения для сборки и исполнения эффектов. В качестве пробы пера можно взять плей, но лучше потыкать Akka-http/Akka-streams (чаще будешь встречаться с ними, как мне кажется). В качестве коннектора к бд возьмите slick.

во, вот такая картинка есть

Alex 🗽👇- Автор вопроса
Danila Romanov
screenshot во, вот такая картинка есть

Future я так понимаю ближе к ООП парадигме, но не прям совсем? Скала бекенд не на функцональщине вообще пишут?

Alex 🗽👇
Future я так понимаю ближе к ООП парадигме, но не ...

Фьюча это чтобы по перфомансу был не руби, ооп не при чём, в джаве фьючи сейчас тоже повсюду

Alex 🗽👇
Future я так понимаю ближе к ООП парадигме, но не ...

мммм нуууууу я примерно понимаю, что вы имеете в виду. С некоторой натяжкой можно сказать, что да, ближе. Future жертвует рядом достаточно важных вещей из функциональной парадигмы ради простоты использования и понятности для людей с не-фп бекграундом. Фьючи и в других языках есть, если что. Вполне на функциональщине его пишут:) И у нас, и за рубежом. Future-стэк просто проще, там про монадки не надо ничего знать, чтобы “написал и работает”

Alex 🗽👇- Автор вопроса
Danila Romanov
мммм нуууууу я примерно понимаю, что вы имеете в в...

спасибо, так понятней намного, я пока и без монад буду счастлив, если оно заработает

Danila Romanov
мммм нуууууу я примерно понимаю, что вы имеете в в...

Ну надо знать про флетмап и форы, чтобы их композить. И сиквенс. И приколы с параллельным/последовательным запуском.

Pavel
ciris забыли

Или Circe. Что-то для жсонов в общем

Pavel
ciris забыли

я б вообще отказался от "умных" конфиг библиотек. Весть код с pureconfig, который я в своей жизни видел, очень быстро эволюционировал в месево.

Evgenii Kuznetcov
я б вообще отказался от "умных" конфиг библиотек. ...

то, что код превратился в месиво вряд ли является виной либы. с другой стороны, я уже не помню почему, но мне pureconfig тоже чем-то не зашел. а цирисом довольно все чисто выходит

Pavel
то, что код превратился в месиво вряд ли является ...

так либы и нужны для того, чтобы с ними нормальный код получался чаще, чем плохой. Не разделяю мораль сишников "you are doing it wrong". Возможно, нужно изучить идеологию библиотеки, и все будет хорошо, но 1) на моей практике этого никто не делал 2) я сам этого делать не буду, если альтернатива - написать 30 строчек кода типа config.getString.

Evgenii Kuznetcov
так либы и нужны для того, чтобы с ними нормальный...

> на моей практике этого никто не делал может в этом проблема? нельзя же сказать что "либа Х не нужна потому что люди, с которыми я работал в ней не разбирались" в целом, выбор тулинга это дело личных/командных предпочтений. надо использовать то, чем удобнее и увереннее можно принести валуе, но при этом иногда смотреть по сторонам на разные подходы

Pavel
> на моей практике этого никто не делал может в эт...

короче, мое мнение - если есть примитивный конфиг, который 1 в 1 мапится на нормально выглядящий case class - можно использовать автодекодер. Если приходится использовать аннотации или вещи типа implicit kebabCase - лучше остановиться

Evgenii Kuznetcov
короче, мое мнение - если есть примитивный конфиг,...

и возможно это еще зависит от того, как хранятся конфиги. в моем случае все в env var'ах

Woof Собач
Зачем грабли полобубитные советуешь?

потому что вкатываться постепенно надо

Danila Romanov
потому что вкатываться постепенно надо

Правильно, постепенно, а не зигзагом

Danila Romanov
потому что вкатываться постепенно надо

начать нужно с liftweb и play iteratees, получается

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта