graalvm теоретически может помочь
Пролистываю книгу "Designing Event-Driven Systems". В первой же главе ссылка на Рича "Deconstructing the Database". Можно продолжать читать 🙂
а ссылочку можно?
https://www.confluent.io/wp-content/uploads/confluent-designing-event-driven-systems.pdf
@serioga звучит аппетитно, а есть примерчик?
примерчик, наверное, готовить надо
не вижу у себя подходящего кода можно взять какой-нибудь пример на flow и переписать у меня это где-то пробегало, когда я делал google авторизацию, но похоже этот код «ушёл» а для валидации форм у меня сложился другой подход, не связанный ни с исключениями, ни с flow
@fmnoise если дашь пример кода под flow, который можно перефразировать, то я может на выходных набросал бы
@serioga а что за подход к валидации форм?
функция применяет набор правил к данным формы и возвращает тупл с конформленными данными формы + данные об ошибках формы [form-params form-errors]
как-то так
(let [[form-params
form-errors] (form-validation/validate-form-params
(validation-rules)
(transit/read-transit-stream (:body request)))]
(if (empty? form-errors)
(let [_ (db-create-user form-params)]
(transit-response
[:run-cmd [[:redirect (config/path-for-route :route--login)]]]))
(transit-response
[:update-form
{:form-params (dissoc form-params :password :password-confirm)
:form-errors form-errors}])))
(defn validation-rules
[]
(list
(form-validation/validate-not-blank
:first_name "First name is required.")
(form-validation/validate-not-blank
:last_name "Last name is required.")
(form-validation/validate-email :email)
(form-validation/validate-new-login :login)
(form-validation/validate-new-password :password :password-confirm)))
(defn validate-not-blank
[field-id error-message]
[[:conform #(update % field-id cuerdas/clean)]
[:validate (fn [form-params errors]
(let [value (get form-params field-id)]
(cond-> errors
(or (cuerdas/empty-or-nil? value)
(cuerdas/blank? value))
(conj [field-id error-message]))))]])
можно тут на форму логина посмотреть https://backend-auth-dev.vonstierlitz.com/
в консоли видно общение с сервером и форматы данных
как-то так...
а я вот такую штуку для форм делал https://github.com/darkleaf/form-ujs можно посмотреть тут: https://darkleaf-publicator2.herokuapp.com/register https://github.com/darkleaf/publicator/blob/master/web/src/publicator/web/forms/user/register.clj
там тоже с бэкенда описание подтягивается
как и у тебя в примере
ну у меня само описание форм не подтягивается, только данные
данные и ошибки, точно
это я начал в этом году реакт осваивать 🙂
заодно поднял весь стек на кложуре, до этого на https://www.liftweb.net/ вся разработка была...