|
2.39, Аноним (39), 17:31, 27/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
А в чем невообразимость? Js при данных подходах все равно нужен, который ещё нужно вытянуть с соответствующих доменов. Достаточно забанить клиентскую часть и все эти свистоперделки превращаются в тыкву.
| |
|
1.2, stillswamp (ok), 11:05, 07/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +2 +/– |
Отвратительность и шпионство создают не решения а люди. Любой сайт можно сделать отвратительным и шпионским вне зависимости от технологии.
| |
1.3, Linuxoid (?), 13:13, 07/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
Хорошая статья. Если обратиться к исследуемым библиотекам, то нужно быть либо скалистом, либо пиэйчпистом. Маловероятно, чтобы один человек, достаточно хорошо разбирался бы в обоих языках одновременно. По поводу исключения js-из разработки, думаю это не правильный пусть. Нужно наоборот, вовлекаться в js-технологии. Зачем придумывать велосипеды? Есть замечательный пример с языком Dart. Есть и другие примеры. Нужно принять, что js-это уже экосистема, которую не получиться игнорировать.
| |
|
2.4, stillswamp (ok), 14:02, 07/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Суть указанных подходов - сокращение средств разработки.
Так как избавиться от девелопинга на бэке невозможно, следует логичное стремление сократить девелопинг на фронте. При этом не просто переместить на бэк JS, а принципиально исключить его.
На чем написан бэкэнд - уже не принципиально.
| |
|
3.12, Аноним (12), 10:30, 11/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> сократить девелопинг на фронте
Нет, теперь бэку, помимо своей основной работы, придется выполнять также и работу фронтендеров, столь заботливо переложенную на них фреймворком Pusa.
DOMBody()->DOMChilds('GUID', self::ID)->DOMValue(clGUID());
Здесь нет ничего, что бы относилось к "бизнес-логике", здесь исключительно гуйная логика, которая выполняется не там, где должна бы.
| |
|
4.15, stillswamp (ok), 12:39, 11/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
>> сократить девелопинг на фронте
> Нет, теперь бэку, помимо своей основной работы, придется выполнять также и работу
> фронтендеров, столь заботливо переложенную на них фреймворком Pusa.
> DOMBody()->DOMChilds('GUID', self::ID)->DOMValue(clGUID());
> Здесь нет ничего, что бы относилось к "бизнес-логике", здесь исключительно гуйная логика,
> которая выполняется не там, где должна бы.
Поясню принцип: если работу можно выполнить одному специалисту одним инструментом без потери качества и времени, это лучше сделать именно так, так как исключает расходы на координацию.
Pusa не про то что "ай бэку нужно делать фронт". Pusa - техническое средство решающее финансовые вопросы унификацией инструментария и специализации.
| |
|
|
6.17, stillswamp (ok), 20:16, 11/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
1. Контекст отображения не имеет принципиально никакого значения с точки зрения фэймворка. Прошу пояснить каким образом конечное устройство влияет на бэк и почему его придется убрать?
2. Повторю ранее заданный в этой же ветке вопрос. Представьте case который не реализуем в Pusa на текущий момент. Он будет либо сделан либо явно включен в ограничения.
3. Разработчк на Pusa НЕ РАБОТАЕТ с DOM. Он оперирует крайне ограниченным набором инструкций которые могут формировать DOM, при этом об его фактическом устройстве знать не обязательно. DOM* функционал Pusa - не более чем набор конечных инструкций. Если вы занимались разработкой под opengl, то подход для вас будет знаком. Разраб работает с инструкциями а не с контекстом. Это принципиально важно.
4. Один разработчик - это крайний пример плоской схемы, когда у вас в наличии вместо нескольких направлений с необходимостью координации линейные бэки. Не погибнет эта схема с расширением бизнеса. Pusa создана масштабированием и под оное.
5. XHR выбран в качестве САМОГО примитивного варианта для демонстрации схемы и доказательства ее работоспособности. Так же была выполнена реализация на iframe, но была отклонена что бы не пугать людей. Мы планируем представить реализации как минимум на ws для golang, java, node.js. При этом мы по прежнему будем настаивать на исключении хранения состояния клиента на бэке.
| |
|
5.49, Бывалый смузихлёб (?), 07:01, 14/03/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Если речь не о самом примитивном конструкторе страниц из готовых блоков, то задача становится совсем непростой.
И тот «один специалист-бэкендер-скалист( такие вообще в природе существуют в ощутимых количествах? )» вмиг превращается в фуллстека, притом не самого плохого с необходимостью понимания очень многих штук.
Нюанс в том, что можно хоть треснуть, но стили на клиенте в итоге все равно будут в CSS ( лучше в файлах, инлайн плохо кешируется и обработка его жрет много ресурсов )
Равно как и основная «динамическая» работа будет на JS. И «не работать» с ним удастся только при применении готовых блоков( в которых уже кто-то поработал ), в иных случаях - по многим причинам придётся ещё и жс как-то заталкивать чтобы он не сломал систему.
И ещё один, но фундаментальный нюанс в том, что сетевые запросы требуют времени и немалого.
В этом смысле нет большой разницы, весит ли скрипт 6кб или 60 - скорее всего, само время сетевых запросов будет больше длительности скачивания.
В данном же случае пользователю, чтоб увидеть первую норм страницу, потребуется ожидание нескольких запросов и отработки скриптов, сама реакция на изменения будет с лагом.
Особенно это критично в случае разных анимаций и проч, завязанных на действия пользователя( где-то что-то начал вводить, где-то провёл мышкой или пальцем по тачскрину - это ж сколько запросов полетит на сервер, итд )
Хотя сама идея, в общем и целом, весьма интересна. Есть подозрение что для внутренних корпоративных систем будет очень даже годно
| |
|
|
|
|
1.5, Аноним (5), 10:58, 08/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
Подход Korolev мне больше нравится. Было бы офигенно, если бы кто-то сделал что-то подобное, но независимое от языка бэкенда.
| |
1.6, Glushko (?), 11:51, 09/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
бредовый подход. но история повторяется: раньше гоняли ajax-ом сгенеренные куски хтмл, теперь пошли дальше: оверинжинирят то же самое через вебсокет и дом-дифф.
а потом эти же люди ноют в комментах к очередному js-фреймворку, якобы вебмакаки зря утилизируют ресурсы компьютеров.
в этих поделках из статьи всё, что можно было применить не по назначению - применено не по назначению.
вобщем, не только в германии сумрачные гении сидят. у нас тоже имеются доктора франкенштейны.. особенно в южных губерниях
| |
|
2.7, stillswamp (ok), 23:23, 09/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
1. Прошу конкретику. Что применено не по назначению? Готовы исправить.
2. Прошу осмотреть вот это изделие без строчки JS кроме самого фреймворка.
https://engram.catlair.net/
3. Прошу изложить вашу концепцию решения аналогичного изделия с применением по назначению JS с сопоставлением результатов.
| |
|
|
4.10, stillswamp (ok), 19:25, 10/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Благодарю за подробный ответ.
Перенос событий из браузера на сервер практичен. Утилизацию следует обсуждать на цифрах. Таковых от вас ожидать мы не в праве, а потому обсуждение лишне. Pusa сейчас для эксперимента трудится на сервере стоимостью 2евро в месяц. Завалить не трудно, но едва ли она покажет себя хуже предложенных вами технологий (скорее всего лучше) :)
В приведенном примере каждый клик отправляется на сервер, так как логика сборки таблицы размещена на сервере. Ее нет в браузере. Касательно скорости соединения, выставив ограничение скорости в первую очередь пострадает загрузка озвучки в mp3. Реакция на события будет минимальной проблемой. Так же учтите факт, что на медленном соединении вы получите для JS решения задержки загрузки фрэймворка и прочей графики.
Если у вас будет желание и возможность, прошу представить случай где Pusa не будет комфортно. Сразу оговорюсь: один из участников обсуждения желал от нас получить сразу некое готовое решение под свои задачи. Естественно мы не стали выполнять чужую работу. Но мы крайне заинтересованы, если вы назовете объективную задачу с которой Pusa не справится. Canvas и массированные mousemove (etc) не являются таковой, это оговорено в ограничениях Pusa.
*** Если вы представите разумный case - мы постараемся сделать демонстрацию решения. Критерий разумности - 1 час исполнения.
И самое главное... Pusa - это радикальное упрощение разработки. Поверьте - вопросы нагрузки на сервера - мелкая мелочь по сравнению с предлагаемыми возможностями.
| |
|
|
6.14, stillswamp (ok), 12:32, 11/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> на медленном соединении вы получите для JS решения задержки загрузки фрэймворка и прочей графики
> Да, один раз. При самом первом заходе на сайт. Дальше браузер все
> закэширует.
Я давно и много смотрю на логи пользовательских запросов. Пользователям нет дела до нюансов реализации и нет дела до времени жизни страницы. Запросы на обновление всей страницы прилетают многократно чаще ожидаемого разработчиком. И... быстродействие продуктового сайта оценивается потребителем по загрузке первой страницы.
>> Если вы представите разумный case - мы постараемся сделать демонстрацию решения. Критерий разумности - 1 час исполнения.
> Предлагаю написать todo list, потому что его я в демках не нашел.
> При сравнении гуйных фреймворков todo list является хелловорлдом, позволяющим оценить
> базовый концепт фреймворка. При этом хочется увидеть демонстрацию виртуализированного
> скролла, потому что в реальном энтерпрайзе данных будет много. А поскольку
> постулируется, что задача "не просто переместить на бэк JS, а принципиально
> исключить его", то виртуализированный скролл следует сделать исключительно средствами
> Pusa, без дополнительных клиентских библиотек.
Case Todo обсуждался нами для демки, но был отклонена в тч мной, так как кода чуть более чем надо для представления элементарных основ. Демка todolist была разбита на форму авторизации (отправка POST), подгружаемый список элементов GUID, и интерактивное добавление элементов графики: https://dev.pusa.catlair.net/?section=Examples. Тем не менее, с учетом нового внешнего мения о необходимости todo list в демонстрации, мы еще раз обсудим это и возможно выложим.
Все же от вас ожидался примитивный но показательный тест, убивающий концепцию Pusa.
| |
|
|
6.24, stillswamp (ok), 21:20, 12/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>>Поверьте - вопросы нагрузки на сервера - мелкая мелочь по сравнению с предлагаемыми возможностями.
> мелочь говорите? :)
Оцените по вашему опыту сумму затрат для публичного ресурса с постоянной доработкой функционала для 1k 10k 100k уникальных визитов ежемесячно по статьям:
- стоимость команды разрабов включая налоги а так же затраты на их координацию;
- стоимость ресурсов для работы проекта на прод;
Данные если пожелаете, можно сложить сюда. :)
| |
|
7.27, Sw00p aka Jerom (?), 00:13, 13/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Оцените по вашему опыту сумму затрат
зачем мне оценивать сумму затрат, меня интересует вопрос нагрузки, какую нагрузку способно держать ваше решение для минимум одной ноды (одной запущенной версии приложения).
| |
|
|
|
|
|
|
1.34, mos87 (ok), 10:14, 17/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
т.е. он всю клиентскую часть хранит на сервере, а на клиент спускает её в готовом виде.
отлично.
остался 1 вопрос - нафейхуа нам этот Веб
вообще, если фактически мы уже честно признаёмся себе, что желательно все его концепции обходить вокруг?
Может пусть ОС будет ОС, а эту прослойку выкинуть уже
| |
|
2.50, Аноним (50), 11:49, 13/04/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Web нужен для связи - это связь. Всё. Веб - только канал передачи данных.
"Все его концепции" - это придумки способа использования канала связи. Затеи отдельные от веба. Часто затеи невыгодны конечному клиенту, т.к. приводят к необоснованным тратам. Люди исследуют альтернативные способы.
Существование альтернативы развивает и укрепляет.
| |
|
3.52, mos87 (ok), 18:21, 13/05/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
вэб [единственное что щас примечательно в нём технологически] - это реализация той самой "мечты" о компонетном погромировании. Все эти лежащие на публичных хостах жабаскрипты которые можно заюзать у себя.
COM done... не right конечно, а просто done. Со всеми ужосами (в первую голову безО) которые и предрекали компонетнке.
он в такое развился просто потому что был распространён вэб в своём изначальном виде. и поверх него выросло нынешнее чудо.
| |
|
|
1.35, gred (ok), 13:21, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
я бы сказал, что для каких-то чисто внутрикорпоративных вещей, почти идеально.
осталось накрутить вокруг этого какой-то действительно удобный RAD.
| |
|
2.43, stillswamp (ok), 19:39, 29/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> я бы сказал, что для каких-то чисто внутрикорпоративных вещей, почти идеально.
> осталось накрутить вокруг этого какой-то действительно удобный RAD.
Если вы храните состояние DOM на сервере - то действительно это не для выпуска наружу.
Держать DOM для каждого внешнего пользователя крайне затратно.
Но Pusa как раз не хранит состояния пользователя на сервере. Чистый REST.
| |
|
1.38, онанимус (?), 12:59, 27/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
шикарная идея, подобные сайты будут быстро работать даже на сименсе м65.
меня волнует совместимость с кравлерами поисковых движков - гугол сотоварищи нормально их индексирует?
в яваскрипт все кравлеры умеют, даже богомерзкий wix хорошо индексируется. а вот будет ли кравлер заполнять и отправлять все аяксовые формы - вопрос.
| |
|
2.42, stillswamp (ok), 19:37, 29/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> шикарная идея, подобные сайты будут быстро работать даже на сименсе м65.
> меня волнует совместимость с кравлерами поисковых движков - гугол сотоварищи нормально
> их индексирует?
> в яваскрипт все кравлеры умеют, даже богомерзкий wix хорошо индексируется. а вот
> будет ли кравлер заполнять и отправлять все аяксовые формы - вопрос.
Да. Pusa работает даже на "тапке". Причем как клиент так и сервер.
| |
|
1.51, Аноним (51), 09:08, 27/04/2022 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +/– |
Опять пытаются сэкономить на разработчиках за счёт комфорта пользователя.
Теперь сетевые лаги будут на каждый клик и ховер?
И да, разделение труда не просто так придумали.
| |
|