<?xml version="1.0" encoding="utf-8"?>
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
  <title>Мультиблог 4X_Pro : Web-приложения без деления на frontend и backend</title>
  <link>https://4xpro.ru/webdev/3050/</link>
  <description></description>
  <lastBuildDate>Fri, 23 Oct 2026 00:24:38 +0000</lastBuildDate>
  <atom:link href="https://4xpro.ru/webdev/3050/rss.htm" rel="self" type="application/rss+xml" />
  <generator>Intellect Board 3 Pro</generator> <item>
          <title>Оказывается, есть решения…</title>
          <link>https://4xpro.ru/webdev/3050/post-12117.htm</link>
          <description><![CDATA[<div class="p_data"><img src="https://4xpro.ru/f/av/4.jpg" alt="4X_Pro" style="height: 24px; width: 24px; float: left" height="24" width="24"/><strong>4X_Pro</strong><br /></div><br /><div class="p_text"><p>Оказывается, есть решения, которые устраняют деление на frontend и backend, и позволяют писать всё Web-приложение на одном языке. Это <a rel="ugc" rel="ugc" href="https://phoenix-live-view.hexdocs.pm/welcome.html">Phoenix LiveView</a> для elixir и <a rel="ugc" rel="ugc" href="https://hlive.thefam.uk/#intro">HLive </a>для Go. Вроде бы есть еще HotWire для Ruby on Rails и что-то похожее для Laravel. Схема взаимодействия при этом такая же, как в библиотеке HTMX &mdash; куски кода, которые нужно заменить, рендерятся на сервере, отсылаются на клиент через WebSocket и вставляются в нужное место, только всё это берёт на себя framework.&nbsp;<br><br>
На первый взгляд, для разработки в одиночку &mdash; хорошее решение уже хотя бы тем, что не нужно дублировать валидацию на стороне клиента и сервера и вручную писать логику передачи данных по WebScoket. Но вот конструкции вида&nbsp;<br><br>
<br><br>
</p><p class="intb_wrap_code"><code>
page.DOM().Body().Add(
 &nbsp;Header(
 &nbsp; H1("Form Data Initial Sync"),
 &nbsp; P("Some browsers, life FireFox, don't clear form field data after a page reload. "+
 &nbsp; &nbsp;"HLive will send this data to relevant inputs when this happens."),
&nbsp; ),
 &nbsp;Main(
 &nbsp; P("To test, using FireFox, change the fields below then reload."),
 &nbsp; H2("Form"),
&nbsp; Div(
 &nbsp; &nbsp;Label("Text"),
 &nbsp; &nbsp;Br(),
&nbsp; ),
&nbsp;)
)

</code></p><br><br>
&nbsp;<br><br>
немного мозголомные. Сейчас пробую осваивать HLive, позже отпишусь о впечатлениях более детально.</div>]]></description>
          <dc:creator>4X_Pro</dc:creator>
          <pubDate>Fri, 23 Oct 2026 00:24:38 +0000</pubDate><guid>https://4xpro.ru/webdev/3050/post-12117.htm</guid>
          </item></channel></rss>