LINUX.ORG.RU

Веб-фреймворк Phoenix 1.6.0

 ,


0

2

Phoenix — веб-фреймворк на языке программирования Elixir, призванный обеспечить высокую производительность веб-приложений.

Основой фреймворка является движок LiveView, который обеспечивает возможность обновления DOM на стороне сервера с помощью долгоиграющего WebSocket-соединения, что позволяет писать интерактивные веб-приложения без использования JavaScript.

Нововведения:

  • Команда phx.gen.auth, позволяющая добавить готовые функции аутентификации в приложение.
  • В состав Phoenix включена библиотека для работы с электронной почтой Swoosh.
  • Вместе с обновлённой LiveView 0.16 Phoenix получил новый движок для рендера HTML-шаблонов — HEEx. В сравнении со старым движком (EEx), HEEx предоставляет:
    • Поддержку HTML-атрибутов. Т.к. HEEx должен разбирать и проверять структуру HTML, конструкции <%= ... %> и <%= ... %> нужно использовать только для интерполяции содержимого тегов и не могут применяться в самой разметке. Вместо: <div class="<%= @class %>">...</div>, следует писать: <div class={@class}>...</div>.
    • Проверку структуры шаблона на этапе компиляции.
    • Минимизацию количества передаваемых данных.
    • HTML-подобную нотацию, для вставки функциональных компонентов. Пример:
<MyApp.Weather.city name="Kraków"/>

# где сам компонент имеет следующий вид:

defmodule MyApp.Weather do
  use Phoenix.Component

  def city(assigns) do
    ~H"""
    The chosen city is: <%= @city %>.
    """
  end

  def country(assigns) do
    ~H"""
    The chosen country is: <%= @country %>.
    """
  end
end
  • Появился механизм привязки к этапам жизненного цикла LiveView (lifecycle hooks).

  • Новый макрос live_session, позволяющий осуществлять навигацию через существующие WebSocket-соединения, что помогает избежать лишних HTTP-запросов и значительно ускоряет навигацию.

  • Сборка JS и CSS теперь осуществляется без Node и Webpack, которые годами создавали проблемы в части поддержки проекта.

>>> Подробности

★★★★★

Проверено: Satori ()
Последнее исправление: sudopacman (всего исправлений: 2)

Ответ на: комментарий от Gukl

Многие проекты с радостью выкинули бы js (вместе с смузихлёбами) из своего стека имей они альтернативу. Конечно есть вещи где без дрессировки скриптовых жаб не обойтись, но подобные решения уменьшают долю таких вещей.

perl5_guy ★★★★★
() автор топика
Ответ на: комментарий от perl5_guy

Многие проекты с радостью выкинули бы js (вместе с смузихлёбами) из своего стека имей они альтернативу.

И наняли других смузихлебов, на эликсире. Но нафига, а главное, зачем?

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Но нафига, а главное, зачем?

Эликсир таки сильно гибче и удобнее чем js, можно писать большие системы надёжно без боли. Типизация только куцая, но при желании можно извернуться.

ddidwyll ★★★★
()
Последнее исправление: ddidwyll (всего исправлений: 1)
Ответ на: комментарий от ddidwyll

Эликсир таки сильно гибче

Видимо, это зависит от того, что понимать под словом «гибче». По-моему, жопаскрипт уже достаточно гибкий, местами даже слишком.

и удобнее чем js

А это вообще матерая субъективщина.

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Ок, «мощнее» пойдёт?

Паттерн-матчинг, иммутабельность, мега-удобная работа с параллельными вычислениями, устойчивость за счет системы супервизоров, масштабируемость из коробки, горячая замены кода без простоя, макросы с гигиеной по умолчанию, типы таки есть. Синтаксис приятный, пайпы, все дела.

Преимущества перед js достаточно объективны? :)

ddidwyll ★★★★
()
Последнее исправление: ddidwyll (всего исправлений: 1)
Ответ на: комментарий от ddidwyll

Паттерн-матчинг, иммутабельность, мега-удобная работа с параллельными вычислениями, устойчивость за счет системы супервизоров, масштабируемость из коробки, горячая замены кода без простоя, макросы с гигиеной по умолчанию, типы

Приемлемо.

Синтаксис приятный

А вот тут категорически не согласен %)

Nervous ★★★★★
()
Ответ на: комментарий от ddidwyll

Почти все «плюсы» из OTP.. ;-D остальное субьективно.

Ниразу не любитель жс кстати.

umren ★★★★★
()
Ответ на: комментарий от kto_tama

дом на стороне сервера ?

Серверные теги уже давно придумали в IIS.

Весело, когда сотня пользователей проводят над элементом мышкой а событие over каждый раз обрабатывается на серваке.

Psilocybe ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.