Fork me on GitHub
#clojure-russia
<
2016-10-25
>
maxim04:10:27

Парни, проконсультируйте по следующему вопросу. Собираюсь делать проект в области страхования. Для конечных пользователей будет сделано несколько десятков специфичных rails приложений, которые будут содержать пошаговые формы с сотнями полей. Данные со всех этих приложений будут передаваться на clojure приложение, которое будет их обрабатывать по-всякому и, в конечном счете, отправлять дальше на сервера страховых компаний (интерпрайз, стандраты, xml). А теперь вопрос: есть ли смысл использовать edn или transit вместо json как формат передачи данных между rails и clojure?

malch04:10:33

С моей точки зрения - не очень большой. Данные практически всегда можно легко с помощью json перегнать, а уже на стороне clojure привести в нужную форму (json array -> set и тд)

malch04:10:56

Ну и зависит от данных, конечно

niwinz06:10:33

@mkaschenko I think yes, json has a limited set of types that it supports and transit will allow pass more complex types such as dates and uuids as example

niwinz06:10:45

without an additional conversion step

niwinz06:10:19

transit is a very big step over json

niwinz06:10:39

And it is extensible to other types of your domain...

maxim06:10:50

one of reasons I started to think about edn is dates and records...

misha09:10:53

Лучше бы спросил "есть ли смысл писать кучу рельсовых приложений вместо кложаскрипта?" )

potapenko11:10:33

А мне кажется лучше обычный json/rest. Не нужно придумывать себе велосипед, который потом в будущем, на коньках (например, с node.js) кто будет пытаться садиться (интегрироваться). Если по websoсket какой, то да, а вот обычный http - rest и json однозначно.

potapenko11:10:07

Плюс рест - это скорее всего какая автоматическая документация (swagger) и возможность просто это дело тестировать.

misha11:10:16

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

misha11:10:18

@potapenko а свагер разве с транзитом не умеет работать?

potapenko11:10:19

Ибо серверщики умеют рельсы писать, я полагаю.

misha11:10:27

мидлварой какой-нибудь

misha11:10:56

ну рельсы, это ж сразу и js в браузере, получается 3 языка вместо 1, там как раз транзит был бы ништяком, с нуля если писать, а не переводить на транзит что-то готовое

edbond11:10:05

ну да, будут валидации форм в жс, такие же нужно будет тащить в руби и возможно в кложу

misha11:10:06

вообще, надо представлять, сколько % системы (и команды) кложа. по формулировке мне показалось, что основная - кложа, а рельсы - мелочи. Может это и не так, и тогда возможно стоит по правилам рельс играть

misha11:10:48

но это же тогда so 2015 kappa

maxim12:10:14

> Лучше бы спросил "есть ли смысл писать кучу рельсовых приложений вместо кложаскрипта?" ) Пока на 100% не знаю всех требований заказчика, но, вроде, это будут приложения, написанные разными командами с разными требованиями. Я же буду иметь дело только с clojure. > И мне прям очень интересно, почему рельсы? Я бы сам, конечно, один язык везде бы использовал. А причины такие, что не все умеют clojurescript и, скорее, эти рельсовые “веб-морды" будут заутсорсены. Да и рельсовиков много сейчас как и джаваскриптеров, да и подешевле будут. > что основная - кложа, а рельсы - мелочи. Да, так и задумывается.

maxim12:10:05

Хотя с другой стороны денег на проект должны выделить много да и времени тоже, может стоит научить пару другую рельсовиков кложуре? Но я пока даже и не представляю чем это может обернуться… Было бы больше кложуристов, было бы попроще 😞

rkosenko12:10:49

да... будут вероятно на аутсорсе рубисты материть Вас за edn. У нас вот похожий проект, формочки для страховщиков с кучей полей, но backend на clojure, frontend на clojurescript, потому выбор json vs edn не стоял.

maxim12:10:07

@rkosenko а ваша система общается с какой-нибудь другой системой, например, через которую осуществляется покупака страховок?

maxim12:10:58

Вообще, конечно JSON + Transit + XML… мне уже умереть хочется

rkosenko12:10:11

у нас нет покупок страховок, у нас формочки для медицинских учреждений, которые хотят с нами работать. Есть некоторый legacy на рельсах из которого данные импортируются и есть интеграция с некоторыми API третьих компаний, там везде json. А внутри своей системы edn.

shinych13:10:15

есть кто отсюда на EuroClojure?

artemyarulin15:10:53

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

artemyarulin15:10:51

кста - один из авторов RSpec счас в когнитеке работает, тесты за Ричи пишет наверно :))

kronos_vano15:10:04

а потом сразу на ocaml 🙂

artemyarulin15:10:12

а про edn/json - дак а чо не оба? Сделать миддлваре которое если Accept application/json то конветнуть уж в JSON, в других случаях чистый EDN

artemyarulin15:10:27

или я чота не понимаю? Сори, я про EDN тока краем уха слышал

niquola18:10:05

Use transit

niquola18:10:51

+ content negotiation для отсталых ;)