Size: a a a

Clojure — русскоговорящее сообщество

2021 September 21

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
https://github.com/clojure/brew-install
Как бы это странно не выглядело но вот в этом репозитории создаются бинари для clojure и clj тулов
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ну у них же прям инструкция есть официальная, как ставить clj. Там по инструкции надо запускать sh-скрипт, который скачает из инета что надо и раскидает куда надо.
Если инета нет, то корректируешь скрипт и в путь!

Или тебе принципиально надо из исходников собрать?
источник
2021 September 22

AS

Anatoly Smolyaninov in Clojure — русскоговорящее сообщество
вот тут можно глянуть, тоже в условиях без интернета устанавливается https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/clojure/default.nix
источник
2021 September 23

А(

Артур (MIIIG) in Clojure — русскоговорящее сообщество
@zarkone а emacs vim как собираются в никс ос?
источник

AS

Anatoly Smolyaninov in Clojure — русскоговорящее сообщество
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Йоу. Ребят, а на сколько cljc "силен"? Я не разу не использовал, и не связывал кложурные фронт и бек. Я не понимаю: можно ли там например задефайнить async'овый channel и по нему обмениваться данными между фронтом и беком?
источник

Г

Григорий in Clojure — русскоговорящее сообщество
и где почитать или качественные примеры посмотреть? я не совсем понимаю как это связка работает. что-то ничего дельного не нагуглил
источник

v

vveare138 in Clojure — русскоговорящее сообщество
это просто куски кода которые ты можешь шарить в cljs и clj
источник

Г

Григорий in Clojure — русскоговорящее сообщество
ну я могу в нем дефнуть channel из clojure.core.async и по нему гнать данные между беком и фронтом? это реально? это секурно?
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Это не работает. Канал не код.
источник

MB

Mikhail Beliansky in Clojure — русскоговорящее сообщество
Как? Если у тебя бэк в jvm, а фронт у клиента в браузере?
источник

Г

Григорий in Clojure — русскоговорящее сообщество
то есть анрил. я понял.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
я думал, если либы одинаково называются, то можно clojure.core.async-то везде.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
а если бы cljs.core.async, то нельзя) вот такая логика была.
источник

MB

Mikhail Beliansky in Clojure — русскоговорящее сообщество
Ну да, можно этот код использовать и на бэке, и на фронте. Код, а не результат его выполнения.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Можно везде. Но собранный код остаётся заперт в своей среде выполнения.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
спасибо
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Можно попробовать написать свою обертку. Я когда-то писал примитивный клиент для redis стримов с интерфейсом core.async. Думаю по аналогии можно сделать, все протоколы есть.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Да, есть важный момент: код на cljc не обязан полностью совпадать между реализациями. С помощью reader conditional можно указывать различия.
То есть, теоретически можно сделать какой-нибудь каналоподобный объект, который в clj будет торчать из сервера (лезть в пул вебсокетов, обращаться к API gateway, и т.п.) а в cljs будет к этому же серверу подключаться через вебсокет-клиент.

Но — это использование механизма несколько не по назначению. Он нужен чтобы реализовывать одинаковое поведение на разных платформах. Я б всё-таки рекомендовал разделить эти сущности на серверную и клиентскую. А то мало ли, потом захочется перенести обработку серверного канала в NodeJS+cljs, придётся эту конструкцию распиливать.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Т. е. опасно застревать в предположении, что clj = сервер, а cljs = клиент. А если транспортом для канала использовать вебсокет, то разделение на сервер и клиент необходимо. (А вот для, скажем, WebRTC – не уверен…)
источник