Изоморфные веб-приложения: скорее нет, чем да

Mar 01, 2015 21:48


С тотальной победой React-а и функционального подхода на клиенте может показаться, что будущее одностраничных веб-приложений светло и безоблачно. Однако, даже если предположить, что у нас есть хорошая клиентская база данных навроде DataScript, и мы грамотно организовали потоки данных в приложении, остается вопрос сервера.

Как бы нам этого ни ( Read more... )

не может быть все так плохо, веб-шмеб, девелопмент, инструментарий, формула успеха

Leave a comment

ermouth March 1 2015, 18:40:20 UTC
http://cloudwall.me - ещё пример no backend, типа hoodie, сразу со встроенной IDE есчо.

Насчёт изоморфоности - тут у комьюнити en masse наблюдается серьёзное недопонимание, _что именно_ должно быть изоморфным и зачем это нужно вообще. Это то, что ты назвал «туманно очерченным».

Изоморфизм по html-представлению - это полная ерунда, потому что свет клином на HTML не сошёлся. На клиенте может быть обычный winform exe-шник или iOS app, это раз. Индексация гуглом состояний UI приложения нахрен низачем вообще не нужна, это два.

В самом деле, достаточно изоморфизма по данным и валидаторам. Для клиентских веб-фреймворков тогда задача звучит так:

Как, имея документ и описание приложения, узнать, мог ли этот док получится из этого приложения, и что бы сказало приложение, если в него засунуть такой док. Всё это не запуская само приложение. Это с учётом того, что внутрь приложения могут быть встроены другие приложения, оно может данные подгружать, и прочая, и прочая ( ... )

Reply

p1r4nh4 March 1 2015, 18:51:09 UTC
> Индексация гуглом состояний UI приложения нахрен низачем вообще не нужна, это два.

Это если у тебя админка энтерпрайзная, да. А если магазин?

Reply

ermouth March 1 2015, 19:04:03 UTC
Гугл должен проиндексировать вашу базу, и для этого ему надо эту базу скормить в формате HTML.

По-хорошему, это не имеет прямого отношения к состоянию UI приложения.

Reply

zupernintendo March 2 2015, 09:23:34 UTC
Магазин как single app? но зачем?
Каталог товаров в статику в html наебашили, отдает через nginx, сайт летает и гугл его индексирует ок. Подрубили js-скрипты в страницу - там уже делаем чо хош. Кому к примеру нужна индексация корзины, избранное и все такое из личного кабинета? Думаю что нахер не нужна.

Reply

p1r4nh4 March 2 2015, 09:28:01 UTC
Корзины и профиля не нужна, а каталог товаров... Ну да, в статику его можно скомпилить, но без жс всë равно не обойдëшься - и получается опять тот же рендеринг + жквери какой-нить, и через время всë начинает распадаться.

Reply

ermouth March 2 2015, 10:40:20 UTC
http://formoza29.ru/3f8crg8t - пример так выполненной системы. Отключите скрипты - увидите как это всё выглядит с точки зрения гугла.

Может, это и jquery какой-нибудь - но ничего там не распадается уже последние года 4, причём этот сайт не требует обслуживания, там каталог из 1С.

Reply

tonsky March 2 2015, 10:49:36 UTC
Сделать можно, но это подход по-старинке. Тут немножко другая мотивация. У нас есть классный тул для сложных, динамичных веб-приложений. Как бы его так приспособить и для обычных индексируемых страниц. Чтобы систему не из двух кусков строить, а из одного, не старыми методами, а современными. Оказалось, что это не так-то и просто.

Reply

ermouth March 2 2015, 12:25:22 UTC
Мы тоже к этой задаче делали довольно много подходов с разных сторон. Думаю, я твой пост разовью и напишу свои соображения с конкретными примерами и pro/cons-ами.

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

За пиар, кста, спасибо.

Reply

zupernintendo March 3 2015, 04:45:44 UTC
а почему html и веб сервер не может быть классным тулом?
набор html-файлов + схема разметка для метаданных = nosql
иерархическая многопользовательская БД нового поколения.
причем без фатального недостатка - "наше приложение не индексирует гугол".
отличие лишь будет в способе представления html vs json/js или клжур код или че там используется в datascript.

Reply

tonsky March 3 2015, 08:24:13 UTC
потому что html не динамичный, а хочецца чтобы все прыгало-скакало

Reply

p1r4nh4 March 2 2015, 11:08:07 UTC
Да куча примеров сайтов, которые работают с jquery. Но я больше не хочу такой жизни.

Reply

tonsky March 1 2015, 18:56:16 UTC
А я там где-то поставил ссылку и на тебя тоже, если что :) На пост в ЖЖ правда

Про валидацию согласен - но концептуально это констрейнт предметной области и выражаться должен на языке базы данных. Те сервер опять же не нужен

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

Ну да, JS как общий знаменатель.

Reply


Leave a comment

Up