[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: формирование фронтенда принципы
Страницы: 1, 2
vcjaenhy
Всем привет.
Казалось бы задача довольно простая, но столкнулся с пониманием отсутствия опыта. Вопрос вот в чем.

Есть сервер и есть клиентская сторона браузер, необходимо на ajax реализовать получение информации и ее последующее размещение.
Это легко сделать путем реализации базового класса js с обработчиками ответов и последующим разворачиванием функционала через дочерние классы.

Но интерфейс усложняется и

1) требует циклического сбора данных с разных модулей.
2) нагрузка на хост растет
3) взаимодействие модулей все сложнее реализовывать.
4) модули могут возникать и удаляться динамически, а значит реализация взаимодействия между ними усложняется еще раз


И становиться понятно что необходимо внедрять новые сущности:
модуль отвечающий за все циклические вызовы
модуль отвечающий за объединение ajax запросов и последующее разветвление данных ответа
НО самое важное как реализовывать запутанную цепочку связей между модулями. Очевидно что нужно вести учет модулей т.е. получается нужна система установки номеров?

В общем сдается мне, что это уже недетская поделка, и может быть гуру темы подскажут, что можно почитать по данному вопросу
Michael
Сейчас фронт пишется на реактивных вещах типа Vue.js, а не на jquery велосипедится

_____________
There never was a struggle in the soul of a good man that was not hard
vcjaenhy
Michael
а что за тема возникает при загрузке янденкса или майла?
в начале серые блоки -место для будующих элементов, а далее в эти контейнеры подгружаются сами элементы
Michael
Не подскажу насчет тех продуктов, т.к. ими не пользуюсь: они в Украине забанены.

_____________
There never was a struggle in the soul of a good man that was not hard
vcjaenhy
Santehnick
спасибо
sergeiss
vcjaenhy, на самом деле, ты можешь и на jQuery всё сделать. Надо только, как ты же правильно заметил smile.gif, сделать чёткую структуру данных. Которую тебе никто не подскажет, как сделать, т.к. данных явно недостаточно. Какие-то модули, что-то запрашивают, что-то куда-то вставляют.

Цитата (vcjaenhy @ 29.03.2020 - 16:23)
НО самое важное как реализовывать запутанную цепочку связей между модулями. Очевидно что нужно вести учет модулей т.е. получается нужна система установки номеров?

Не знаю, что ты имеешь ввиду под "системой установки номеров". Но связь между модулями, по здравому смыслу, должна быть жестко завязана на их структуру, быть её следствием. Тогда ничего запутанного не будет. Но чего-то более конкретного ни я, ни кто другой на данном этапе точно не подскажет.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sergeiss
Santehnick есть еще такая современная штука в JS, как модули. Которые очень даже помогут структурировать код. Естественно, при желании и возможностях программиста smile.gif Так что я бы не был столь категоричным.
Да и тот же jQuery позволяет очень неплохо структурировать код. "Надо только уметь его готовить" (с).


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vcjaenhy
угу, будет время посвободнее буду изучать
Santehnick
На императивном бизнес-логику пишут, а попытки делать на этом пользовательский интерфейс ведут к спагетти-коду и никакая структура это не исправит.
что такое спагетти код пример можно? и почему вы думаете что это тупиковая ветка?


В общем я понял что он делает, можно кратко чем он лучше чем связка jquery + шаблонизатор на js ?
Тем что логика уже реализована?
И такой вопрос не смущает то что все в html размещается?

<input type="text" ng-model="name" placeholder="Введите имя">

<h1>Добро пожаловать {{name}}!</h1>

как-то хочется , шаблон в одну сторону поместить, каркас html в другую, логику js в третью




sergeiss

модули они же объекты от jquery, должны реагировать на события, происходящие в других подобных им модулях, для этого достаточно хорошо подходит jquery события, но проблема заключается в том, что модули могут формироваться динамически, т.е. их вызов происходит не через костомный код.
К примеру есть блок на странице для вывода графиков, этот блок является так же объектом jqueкy, и этот объект производит добавление дочернего блока/ объекта для конкретного графика.
и Этих графиков-объектов может быть много, они все имеют собственные граф интерфейсы для взаимодейтсмвия пользователя, другими словами в каждом подобном объекте должны происходит события. И окружающие объекты - элементы интерфейса должны знать когда происходит какое либо действие в конкретном объекте на события которого они могут быть подписаны.

Другими словами, здесь формируется связь объектов - многие ко многим.

Но для того что бы привязать срабатываание события, нужен уникальный индетефикатор объекта на события которго будет вешаться тригер, я надеюсь понятно объясняю.

Этим уникальным идентификатором может быть тег id но для него нужно задать уникальное значение, а его получается нужно сгенерировать на стадии формирования объекта и уведомить существующие объекты о рождении нового объекта, если он им нужен они подпишутся на его события.

Но почему из этого получиться вермишель мне пока не ясно.


Есть один косяк, перекресное срабатывание событий в объектах, объект 1 выполняет действие, на него реагирует объект2 и запускает действие, на него реагирует объект 1 и запускает действие и так по кругу, и эта рекурсия может положить систему, интересно как ее обычно предотвращают?
Michael
Santehnick, а как ты смотришь на то что на фронте, вот этих Vue, уже бизнес логику пишут?
Не просто UI, а по сути все туда пихают, а к бэкенду уже чисто как к базе через rest обращаются.

Да и если гуглить, видны вопросики типа DDD на vue и подобное.

Вот по сути если взять какое то android приложение, оно также само с сервером будет через rest общаться, а логику иметь у себя, а не на сервере.

Понятно что вопросы безопасности, но может и это уже научились как то решать.

Не совсем понятно вот на этих Дядя Бобовских слоях , где Vue приложение должно размещаться?

_____________
There never was a struggle in the soul of a good man that was not hard
vcjaenhy
я понимаю так, что есть мода в кодинге - за последние 10 лет
руби, питон, нод джс и все равно все вернулось к PHP и видимо это определяется позицией рынка.

драг-энд-дроп на jquery UI можно подтянуть.
Мне вообще никак не нравится идея склеивания html и инструкций для Js решения.
sergeiss
Цитата (Michael @ 2.04.2020 - 11:10)
Santehnick, а как ты смотришь на то что на фронте, вот этих Vue, уже бизнес логику пишут?
Не просто UI, а по сути все туда пихают, а к бэкенду уже чисто как к базе через rest обращаются.

Только потом, по мере развития проекта, хватаются за голову и стараются эту бизнес-логику убрать с фронта smile.gif Потому что приложение становится тяжелым. И грузится начально долго, и работает неторопливо. И если в системе имеются не только веб-приложение, но и нативные приложения для смартфонов... То количество гимора возрастает квардратично. Собственно, немалая часть моей нынешней работы - это перетаскивание этой самой бизнес-логики с фронта на миддл-варе сервер.


Цитата (vcjaenhy @ 2.04.2020 - 13:14)
руби, питон, нод джс и все равно все вернулось к PHP и видимо это определяется позицией рынка

Откуда такое мнение? Node JS очень даже крепко стоит на ногах. Она помогает делать, например, Universal Application. Это когда начальный рендеринг делается на сервере, всё грузится на клиента, а потом уже приложение работает как SPA (Single Page Application). И - внезапно - Нода позволяет использовать один и тот же файл ренедеринга (реактовский) для рендеринга на сервере. И потом этот же файл используется на клиенте, когда юзер гуляет по сайту и переходит на эту страницу. То есть, тебе не надо делать два разных рендеринга и поддерживать их одинаковость.
Если же делается классический SPA, то на бэкэнде очень даже Java используется.

Цитата (vcjaenhy @ 2.04.2020 - 13:14)
Мне вообще никак не нравится идея склеивания html и инструкций для Js решения.

Смотря что ты имеешь ввиду. В том же Реакте, например, очень даже неплохо они сосуществуют. И еще заодно CSS может быть с ними в связке.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vcjaenhy
sergeiss
Откуда такое мнение? Node JS очень даже крепко стоит на ногах. Она помогает делать, например, Universal Application. Это когда начальный рендеринг

Наверно имеется ввиду совмещение технологий, а не полная замена php на ноду?


Смотря что ты имеешь ввиду. В том же Реакте, например, очень даже неплохо они сосуществуют. И еще заодно CSS может быть с ними в связке.

даже не знаю)

<input type="text" ng-model="name" placeholder="Введите имя">

<h1>Добро пожаловать {{name}}!</h1>



sergeiss
Цитата (vcjaenhy @ 3.04.2020 - 16:25)
Наверно имеется ввиду совмещение технологий, а не полная замена php на ноду?

Я что-то говорил про замену одного на другое? Нет, я говорил именно про Ноду. Не надо её с ПХП совмещать. И учти, кстати, что изначально ПХП создавался для "домашних страничек", а не для больших сайтов.
Еще раз повторю, что преимущество Универсального Приложения в том, что рендеринг и на сервере, и на клиенте делается на основе одного и того же шаблона. И в том, и другом случае работает JS. В данном случае не надо ПХП "притягивать за уши" и создавать себе проблемы на ровном месте.

Цитата (vcjaenhy @ 3.04.2020 - 16:25)
даже не знаю)

Дело привычки smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vcjaenhy
sergeiss

Мы речь ведем о высоконагруженых отказоустойчивых приложениях? и ты говоришь о том что часть серверных задач можно переложить на клиентскую сторону?

Приложения лучше писать на нод джс, а браузерную часть делать на реакте? Я верно понимаю?
sergeiss
Цитата (vcjaenhy @ 4.04.2020 - 19:01)
Мы речь ведем о высоконагруженных отказоустойчивых приложениях?

Да.

Цитата (vcjaenhy @ 4.04.2020 - 19:01)
и ты говоришь о том что часть серверных задач можно переложить на клиентскую сторону?

Я не совсем это имел ввиду smile.gif Почитай про Универсальные Приложения. Вот нашел неплохую ссылку https://habr.com/ru/post/259625/
Похоже, правда, что в англоязычной среде это называется Universal Application, а в русской среде Изоморфные Приложения. Судя по обилию ссылок с такими словами smile.gif Я просто привык больше на английском инфу искать, вот и сказал Универсальные.
Если дружишь с английским, то вот неплохое описание https://www.toptal.com/front-end/client-sid...e-pre-rendering

Цитата (vcjaenhy @ 4.04.2020 - 19:01)
Приложения лучше писать на нод джс, а браузерную часть делать на реакте? Я верно понимаю?

Это действительно лучше в том случае, если ты собрался делать Изоморфное Приложение. Если же просто "обычный" сайт, то серверную часть можешь делать на чём угодно.
Вообще, при использовании Реакта куча логики может переноситься на клиента. Вплоть до того, что серверу остаётся роль простого поставщика данных. Но по мере роста сайта это приводит к куче проблем - это из личного опыта.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.