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

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

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

25 ответов

29 просмотров

А вы на глаз и на свой вкус посмотрите 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, получается

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта