Size: a a a

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

2020 May 24

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Pavel Peganov
Если проводить аналогию с рубями, то Jetty это вебсервер, в одной лиге с Puma, Thin, Passenger, и т. д. А Ring по назначению и сути идентичен Rack. Так что вопросы о том, как разные веб-либы отличаются от них вызывают вполне справедливое недоумение/удивление — либы как правило ими пользуются.
Ух, я в рубинах не силен, вот в явах есть сервлеты и контейтеры типа томкатов, йетти.. а естьть типа spring, javalin, jooby... одну полноценные, вторые заточены в виде фреймворков...
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Alexey Cheremisin
Ух, я в рубинах не силен, вот в явах есть сервлеты и контейтеры типа томкатов, йетти.. а естьть типа spring, javalin, jooby... одну полноценные, вторые заточены в виде фреймворков...
А, прошу прощения, выше просто упоминали, а у меня тогда не было времени ответить.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Ring это такой стандартный интерфейс, который поддерживается всякими вебсерверами и реализуется самыми разными библиотеками, в теории обеспечивая переносимость между серверами, но на практике, что наверное даже интереснее, обеспечивает сочетаемость разных серверных веб-библиотек для Clojure между собой.

Он довольно простой, и в принципе можно писать и непосредственно под него, просто синтаксис может быть не очень красивый. Поэтому обычно собираются более сложные штуки, которые выдают совместимые с ним функции, потому запускабельные везде где поддерживается Ring (вродную или через адаптер).
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Pavel Peganov
Ring это такой стандартный интерфейс, который поддерживается всякими вебсерверами и реализуется самыми разными библиотеками, в теории обеспечивая переносимость между серверами, но на практике, что наверное даже интереснее, обеспечивает сочетаемость разных серверных веб-библиотек для Clojure между собой.

Он довольно простой, и в принципе можно писать и непосредственно под него, просто синтаксис может быть не очень красивый. Поэтому обычно собираются более сложные штуки, которые выдают совместимые с ним функции, потому запускабельные везде где поддерживается Ring (вродную или через адаптер).
Да, спасибо! Про ринг уже понял. А pedestal, это же просто вебсервер в формате ring?
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Он с обратной стороны. Он собирает функцию в формате ring из красивого синтаксиса. А вебсервер (например, Jetty) уже занимается доставкой в подобные функции настоящих HTTP-запросов и отправкой из них ответов.
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Да, ринг, это такой сервлет и интерфейс для всего остального, фактически просто мапа.
источник

S

Seryh in Clojure — русскоговорящее сообщество
NW
Здравствуйте! Пытаюсь сбилдить/запустить проект: https://github.com/seryh/example-selenium-project

Пока безуспешно:  
https://pastebin.com/raw/THcGeD7q

gosuslugi-reg-form-webtest присутствует в файле src/example_selenium_project/tests/gosuslugi_reg.clj

Скрин проекта с подсвеченным проблемным местом: https://i.vgy.me/drdKjq.png

Собираю на линуксе в корне проекта с помощью команды: lein uberjar (как, собственно, и написано в ридми)

ЧЯДНТ?
не нужно импортить тест, там определен макрос loading-my-tests который все сам подключит, иначе была бы портянка импортов
источник

D

Dameda in Clojure — русскоговорящее сообщество
Раз уж пошли вопросы, в блоге у Гришаева прочел про то что под кложу не нужны очереди, брокеры вот это все. Это не было преувеличением? То есть не понимаю немного как работать без них.
источник

N

NW in Clojure — русскоговорящее сообщество
Seryh
не нужно импортить тест, там определен макрос loading-my-tests который все сам подключит, иначе была бы портянка импортов
в любом случае, git clone https://github.com/seryh/example-selenium-project.git (ваш чистый проект, я ничего не менял, никаких изменений туда не вносил от слова совсем) и затем lein uberjar даёт мне вышеописанный exception... Если нужна какая-то доп. инфа для расследования, то с радостью предоставлю.
P.S.: спасибо за ваш проект и что поделились им со всеми! Он бы мне очень пригодился в качестве отправной точки для написания автотестов для нашей Web-версии приложения, т.к. не хочется изучать кложу на искусственных примерах и хочется продемонстрировать коллегам мощь языков Lisp-ового семейства)
источник

S

Seryh in Clojure — русскоговорящее сообщество
NW
в любом случае, git clone https://github.com/seryh/example-selenium-project.git (ваш чистый проект, я ничего не менял, никаких изменений туда не вносил от слова совсем) и затем lein uberjar даёт мне вышеописанный exception... Если нужна какая-то доп. инфа для расследования, то с радостью предоставлю.
P.S.: спасибо за ваш проект и что поделились им со всеми! Он бы мне очень пригодился в качестве отправной точки для написания автотестов для нашей Web-версии приложения, т.к. не хочется изучать кложу на искусственных примерах и хочется продемонстрировать коллегам мощь языков Lisp-ового семейства)
вышеописанный эксепшен дает строка 6 https://i.vgy.me/drdKjq.png, которой в проекте нет
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Pavel Peganov
Он с обратной стороны. Он собирает функцию в формате ring из красивого синтаксиса. А вебсервер (например, Jetty) уже занимается доставкой в подобные функции настоящих HTTP-запросов и отправкой из них ответов.
если что pedestal НЕ работает по ring спецификации и у него все немного свое для чего в ринг забыли изначально подумать
источник

AR

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
однако request-map и response-map у (http://pedestal.io/reference/context-map) совместимы (во всяком случае в основном) с ring-спецификацией, что делает конвертацию ring-мидлваря или хэндлера делом тривиальным
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
My bad. Слишком долго возился с Compojure, теперь повсюду мерещится.
Тем не менее, суть та же. Интерфейс другой, это да.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
сейчас обсуждается ring 2, который должен пофиксить основные проблемы ring (прежде всего несовместимость с асинхронными флоу, конечно) и тогда, возможно, веб кложа экосистема получит новый буст к развитию https://github.com/ring-clojure/ring/issues/393
источник

A

Alexander in Clojure — русскоговорящее сообщество
пажжи, ринг же асинхронный давно
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
где он давно асинхронный?
источник

A

Alexander in Clojure — русскоговорящее сообщество
since 1.6.0
источник

A

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
а, ну да, там что-то впилили, но я кстати даже хз что это поддерживает, какие мидлвари?
источник