Size: a a a

2021 January 12

LL

Lama Lover in pro.elixir
Aaron Delarge
Можете подробнее рассказать о том, по какому принципу устроено типичное веб-приложение на фениксе? У нас фронтенд на реакте крутится обособленно и обращается к бэкенду по апи, но я так понял, в фениксе есть некая киллер-фича LiveView, и разработка с использованием шаблонизатора вроде как нормальной практикой считается. Это так?
Можно фронт и бэк через апи. Апи может быть и REST, и GraphQL и вебсокеты
Можно классический SSR с темплейтами, можно LiveView, который как SSR, но интерактивный на вебсокетах
источник

AD

Aaron Delarge in pro.elixir
Aldar
Как захотите, так и будет устроено
Джанговский шаблонизатор становится невозможно поддерживать на более-менее больших проектах, и приходится отказываться от практики использования шаблонизатора. Здесь та же история?
источник

LL

Lama Lover in pro.elixir
Aaron Delarge
Джанговский шаблонизатор становится невозможно поддерживать на более-менее больших проектах, и приходится отказываться от практики использования шаблонизатора. Здесь та же история?
Каждому своё. Если у вас очень большой проект, который собирается жить очень долго, я бы выбрал GraphQL и вебсокеты через Phoenix.Channel

Если нагрузка не велика, и не хочется много времени и сил тратить, но нужна интерактивность, то выбирайте LiveView
источник

AB

Alex Bubnov in pro.elixir
Aaron Delarge
Можете подробнее рассказать о том, по какому принципу устроено типичное веб-приложение на фениксе? У нас фронтенд на реакте крутится обособленно и обращается к бэкенду по апи, но я так понял, в фениксе есть некая киллер-фича LiveView, и разработка с использованием шаблонизатора вроде как нормальной практикой считается. Это так?
liveview - это сервер-сайд virtual dom. типа, диффы делаются на сервере, дельты стримятся на клиент и там применяются.
источник

AL

Anton Lapshin in pro.elixir
всё зависит от самой сути проекта. если это для публичного использования что-то, где фронтенд пилится под конкретные требования - тогда да, лучше делать по уму. и наверное толковей даже с дополнительным фронтовым приложением.
если это просто миллион всяких крудов в админке - по-моему, вообще пофиг что там за шаблонизатор, накидал кое-как пару раз, раз в год какую-нибудь мелочь докрутил и сойдёт
источник

AL

Anton Lapshin in pro.elixir
тут как обычно - единого решения нет, всё индивидуально подбирается под нужды. в вашем кейсе имея реакт-приложение я бы с ним бы и продолжал работать
источник

((

(fun () -> ()) in pro.elixir
Не совсем понимаю в чём суть создания changeset функции, если есть put_assoc, insert_all и другие которые вставляют напрямую мапки и ничего не валидируют. Разве не в этом суть changeset?
источник

LL

Lama Lover in pro.elixir
(fun () -> ())
Не совсем понимаю в чём суть создания changeset функции, если есть put_assoc, insert_all и другие которые вставляют напрямую мапки и ничего не валидируют. Разве не в этом суть changeset?
Не понял вопроса
источник

IA

Ivan Ananev in pro.elixir
(fun () -> ())
Не совсем понимаю в чём суть создания changeset функции, если есть put_assoc, insert_all и другие которые вставляют напрямую мапки и ничего не валидируют. Разве не в этом суть changeset?
ну тебе ж не во всех кейсах валидация нужна. в рельсах тоже можно объехать валидацию,  и это вроде норм
источник

((

(fun () -> ()) in pro.elixir
"не во всех кейсах" подразумевает и другие кейсы где нужна)
источник

IA

Ivan Ananev in pro.elixir
changeset это скорее form_object, нежели дефолтная валидация которая юзается в моделях рельсы
источник

((

(fun () -> ()) in pro.elixir
нет, я понимаю как это можно сделать, но на костыль похоже
источник

((

(fun () -> ()) in pro.elixir
почему бы insert_all не работало с changeset-ом например
источник

((

(fun () -> ()) in pro.elixir
помимо мап
источник

IA

Ivan Ananev in pro.elixir
потому что это функциональный подход, и здесь так не принято
источник

((

(fun () -> ()) in pro.elixir
причем тут функциональный подход?
источник

((

(fun () -> ()) in pro.elixir
это мешает иммутабельности, выражениям, чистым функциям?
источник

B

Bogdan in pro.elixir
MrFlorius
Я пробовал, отличная штука
Спасибо) щас попробую
источник

M

MrFlorius in pro.elixir
Bogdan
Спасибо) щас попробую
Если вы хотите разные админки для разных ролей, то в kaffy есть  авторизация
источник

AD

Anastasiya Dyachenko in pro.elixir
(fun () -> ())
почему бы insert_all не работало с changeset-ом например
ты можешь пропустить список строк через changeset и достать из него изменения и вставить уже insert_all, просто обычно подразумевается что для массовой вставки валидация не нужна
источник