Size: a a a

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

2019 December 14

h

helena in Clojure — русскоговорящее сообщество
Можно просто сделать функцию типа get-user
к примеру, и в теле елементарно описать две разные реализации для clj и cljs.
https://clojure.org/guides/reader_conditionals
И там получается для cljs ты делаешь запрос к апи, через прокси (имеется в виду наймспейс который все инкапсулирует) или напримую шлешь его, а для clj просто обращение в базу.
источник

h

helena in Clojure — русскоговорящее сообщество
Можно также все обернуть в протокол, но это уже вопрос вкуса.
источник

UU

Unhappy Unknown in Clojure — русскоговорящее сообщество
> в теле елементарно описать две разные реализации для clj и cljs

Много кода набирать
источник

h

helena in Clojure — русскоговорящее сообщество
Unhappy Unknown
> в теле елементарно описать две разные реализации для clj и cljs

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

h

helena in Clojure — русскоговорящее сообщество
Dmitry Getmantsov
Apollo. Там есть такая штука можно открыть веб-сокеты и ловить обновы
У apollo есть конкретный минус, она для AWS.
Например моя команда не юзает AWS и нам он кардинально не подходит. 😅
источник

UU

Unhappy Unknown in Clojure — русскоговорящее сообщество
> Либо я тебе кординально не так понял.
Ну я хочу чтобы вообще магией все работало и не надо делать два проекта на одном языке, а напилить фреймворк в котором можно сделать все меньшим количеством кода.
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Аполло разве не сервер сайд для graphql?
источник

h

helena in Clojure — русскоговорящее сообщество
Unhappy Unknown
> Либо я тебе кординально не так понял.
Ну я хочу чтобы вообще магией все работало и не надо делать два проекта на одном языке, а напилить фреймворк в котором можно сделать все меньшим количеством кода.
Советую взглянуть на Phenix Elixir.
Там много всякой магии, думаю может и твой вопрос тоже решиться )
Но там придется мультиязычность юзать, как на кложуре где клиент и сервер на одном языке сделать не выдет.
источник

h

helena in Clojure — русскоговорящее сообщество
Есть кончено трансляторы, но выстрел в ногу на свой страх и риск
источник

DG

Dmitry Getmantsov in Clojure — русскоговорящее сообщество
Kostyantin Randomname
Аполло разве не сервер сайд для graphql?
У них и фронт и бэк. Но у графкуйль не все штуки стандартизированы. А аполло умеет всякие лайв апдейты и подсписки
источник

h

helena in Clojure — русскоговорящее сообщество
По сути можно не завязываться на apollo, если вы конечно не AWS familiar, и сделать просто апликуху на сокетах и ловить все что угодно.
Или в голую пилиться свой прикладной протокол поверх TCP/IP уже не популярно?
источник
2019 December 15

h

helena in Clojure — русскоговорящее сообщество
Unhappy Unknown
Ну да. Я вообще хочу описывать сущность и потом юзать на фронте и беке так как будто это все в одном процесе.
можно еще написать либу которая принимает мапу и генерит миграцию для базы и endpoint для graphql например.
Только тогда либа будет очень доменно ориентрованная или будет очень много кода под капотом.
Также минусом такого решения является то что оно очень сильно привязывает проект к опледеленным версиям библиотек, которые используется фреимворком. То-есть захотел пул для базы обновить, вышел конфликт, захотел поменять graphql на rest, снова не состыковки.
Ну и в конечном итоге конвееры очень не по UNIX way. Так что на вкус и цвет.
источник

UU

Unhappy Unknown in Clojure — русскоговорящее сообщество
> очень доменно ориентрованная  
почему?
> очень много кода под капотом
Норм
источник

MN

Maksim N in Clojure — русскоговорящее сообщество
А можно подключиться к транзактору datomic или crux и отправлять обновления по вебсокету на фронт?
источник

h

helena in Clojure — русскоговорящее сообщество
Доменно ориетированная потому что ты делаешь по верх определенной баыз данных (pgsql, oracle) и поверх определенного способа взаимодействия (rest, socket, graphql)
источник

h

helena in Clojure — русскоговорящее сообщество
Может это и не совсем привычно называть доменно ориентированным, но по определению подходит.
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Dmitry Getmantsov
У них и фронт и бэк. Но у графкуйль не все штуки стандартизированы. А аполло умеет всякие лайв апдейты и подсписки
Я больше к вопросу почему аполло привязывают к авс в целом.
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
В контексте этого разговора, конечно
источник

DG

Dmitry Getmantsov in Clojure — русскоговорящее сообщество
не понял ничего про привязку к aws
источник

h

helena in Clojure — русскоговорящее сообщество
Maksim N
А можно подключиться к транзактору datomic или crux и отправлять обновления по вебсокету на фронт?
Я думаю можно прокси функцию написать, и там делать что душе угодно.
Ни в datomic ни в crux особо не углублялся, но решение выглядит не очень коряво.
источник