Комментарии 49
Привет, claygod недавно интересовался изоморфным фреймворком RiftJS, который использует cellx для реактивности. Если захотите встроить cellx в свой фреймворк — спрашивайте, попробую помочь, чем смогу)) Ну и сам RiftJS стоит поковырять, там много интересных идей, я его к сожалению забросил в пользу чисто клиентского фреймворка.
оперделенной привилегией
За что Вы ее так? )
Хотя насчёт изоморфности не могу не согласиться в том, что это протекающая абстракция.
Речь максимум может идти о частичной изоморфности — у клиента и сервера разные задачи и разные возможности.
У "изоморфности" двя плюса с которыми, как по мне, сложно спорить: переиспользование кода и скорость отображения контента.
Ну не скажите, а утилиты, хэлперы, сервисы? А если строить систему на интерфейсах с внедрением зависимостей? А юнит-тесты? В любом случае, валидаторами дело не заканчиваеться, поэтому зря вы ими ограничиваетесь. По второму пункту: с чего вы взяли что клиент отресует картинку быстрее? Даже если скрипты закешированы их нужно вытащить-распарсить; шаблоны закешированы? и сново достать распарсить, без этого шаблонизатор не начинает создавать dom/html; также для рендеринга нужны данные, и за ними обычно идут по http. Как бы вы не противились, если трезво оценить ситуацию, это действительно два плюса. Я не утверждаю, что это прям всем нужно и без этого никак, но от этого они не перестают быть плюсами)
Если считать, что на сервере нет рендеринга, то они оказываются ненужными.
> Я не утверждаю, что это прям всем нужно и без этого никак, но от этого они не перестают быть плюсами)
Если что-то кажется вам (или вашей команде разработчиков) более привычным, чем какие-то абстрактные идеалы и сферические архитектуры в вакууме, то нет особого смысла пытаться оправдать свой выбор технологий чем-то ещё.
Во-вторых, индексация сайтов с клиентским рендерингом (то есть в случае, когда от сервера приходит JSON) работает только у гугла и недавно. Даже если забыть, что в РФ у него даже не половина поискового рынка, то подгрузка содержимого нужна еще фейсбуку, вконтакту, скайпу, твиттеру и еще хреновой туче сайтов.
Ну и в третьих
Также советую посмотреть в сторону Progressive Web Application от Google один из основных принципов данной парадигмы также является Progressive enhancement. И опять же без какого-либо упоминания про использование этого принципа только в рамках CSS.
What is a Progressive Web App?
A Progressive Web App is:
Progressive — Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet.
Responsive — Fits any form factor: desktop, mobile, tablet, or whatever is next.
Connectivity independent — Enhanced with service workers to work offline or on low-quality networks.
App-like — Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model.
Fresh — Always up-to-date thanks to the service worker update process.
Safe — Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with.
Discoverable — Is identifiable as an «application» thanks to W3C manifest and service worker registration scope, allowing search engines to find it.
Re-engageable — Makes re-engagement easy through features like push notifications.
Installable — Allows users to «keep» apps they find most useful on their home screen without the hassle of an app store.
Linkable — Easily share via URL, does not require complex installation.
Меня не оставляет ощущение, что вы даете свою интерпретацию всем понятиям, при этом даже не изучаете материалы. Уж извините, но по-моему «Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet.» достаточно конкретно, чтобы сказать что концепция PWA не просто включает в себя принцип «progressive enhancement», но и базируется на нем. В связи с этим, все что вы написали — это не более чем ваше личное видение. Да и Полимер тут совсем не при чем. Мы же говорим о принципах и концепциях.
Последовательно улучшать можно очень разные аспекты и очень по-разному, но на словах эти улучшения, как это ни удивительно, можно во всех случаях назвать прогрессивными/постепенными. Факт (а не моё видение) заключается в том, что разработка PWE не начинается со статичных страниц без CSS и JS для lynx, а сразу стартует с композиции «умных» базовых компонентов. Уж извините, но не очень похоже, что вы практически понимаете, о чём эти баззворды и теория.
Никто не мешает вашей собственной реализации сделать более продвинутые вариант «progressive enhancement» и дать возможность приложению работать без js/css/internet/etc. Именно поэтому я и считаю, что концепция PWA и изоморфный способ создания приложений очень даже хорошо дружатся между собой.
> Уж извините, но не очень похоже, что вы практически понимаете, о чём эти баззворды и теория.
Уж извините, но я в последние 1,5 года только так и пишу веб-приложения, а вы похоже что нет, потому что сами заявили, что считаете это «костылем для поисковиков» и вообще ненужным подходом. Мой опыт показывает обратное. И чтобы дальше не спорить о пустом, еще раз выскажу свое мнение:
«Progressive enhancement — это про способ достижения максимальной доступности приложения для различных групп пользователей. Изоморфность, которая по умолчанию позволяет пользователям без клиентского js или с его ограниченными возможностями получить полноценный доступ к вашему веб-приложению, вполне себе ложиться на эту парадигму. „
PS. Спрут у вас, конечно, милашка! Только, вот, в английском такого слова нет (там это обычно octopus), но, думаю, это вы так специально :)
Вставьте кто-нибудь картинку
Sprute.js. Ещё один изоморфный JavaScript фреймворк