LINUX.ORG.RU

И вновь организация кода на js..

 , , , размышлений тред


1

2

Реализую вот следующую схемку, ищу слабые места.
Существуют обертки вокруг дом элеметов (я называю их виджеты (и где-то мы уже это проходили)) и существую обсерверы с глобальной видимостью (я называю их менеджеры).
В виджетах находится элементарный функционал визуализации (как добавление css классов). В менеджерах находится весь функционал касающийся инициализации виджетов, их добавления/удаления, доступа к виджетам (при необходимости). Как правило менеджер является коллекцией виджетов. Виджет не содержит конкретной реакции на события элементов, вместо этого виджет генерирует событие в менеджере, и помещая в него все что требуется (себя, дом элемент, дочерний виджет). Т.о. вся бизнес логика находится в менеджере. Одновременно с этим (ведь менеджер это обсервер), на эти события могут подписываться другие объекты (в первую очередь другие менеджеры).

Т.о. менеджеры взаимодействуют между собой (им это удобно, ведь они глобальны (причем, как правило, с помощью событий)), а виджеты взаимодействуют только со своим менеджером. Менеджеры могут не иметь виджетов, а, например, только получать данные от сервера и генерировать связанные с этим события.

В общем, я пробую эту схемку и мне нравится, то самое чувство как будто это то, что должно быть.

пс
я понимаю, что каждое первое сообщение будет отправкой к либе типа бигбон, но мало ли.

Ответ на: комментарий от vertexua

Ну, если бы было можно, я бы не валил :)

zz ★★★★
()
Ответ на: комментарий от Vit

:) А какие правила, я могу менять дом структуру? Поддержка каких браузеров необходима? И какой вообще функционал у выделения? Я заметил, что выделение сохраняется в хранилище, что оно еще делает?

А кнопку «снять выделение» вы удачно поставили ^_^.

special-k ★★★
() автор топика
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

Поддержка каких браузеров необходима?
Desktop is fully supported. IE6-7 requires alternate CSS.
Mobiles - all modern systems work without problems. There are limits on very old androids and rare browsers. Also, Windows Mobile IE9 sucks, as IE usually does :) . See details.

Так.. это понятно.

special-k ★★★
() автор топика
Ответ на: комментарий от special-k

Можно делать все что не усложнит поддержку проекта. Например, поменять кнокают на ангуляр - теоретически можно. Единиться с природой Писать вообще все с нуля, так что потом этот код никто не сможеть поменять - не стоит.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Запилю ангуляр версию на выходных. Нокаут так то сам не особо быстр, у меня там был порядочный пачсет против мастера, чтобы все хоть как то работало нормально на большом количестве биндов.

zz ★★★★
()
Ответ на: комментарий от Vit

Там все сложно: ломающие правки, убирающие функционал правки, ad hoc костыли. Я сейчас за ним особо не слежу, но вроде там собирались в 2.4 замержить несколько патчей которые улучшают код и в общем поведение, но деградируют производительность. Сам в настоящий момент в основном на ангуляре все делаю, но ничего особо большого пока не довелось.

zz ★★★★
()
Ответ на: комментарий от Vit

за прямую реализацию

а за кривую тоже? :-) Например, чтобы это было не совсем выделение... А то два килобакса не лишние

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

У меня еще не закрыта третья вакансия, если чо.

На самом деле, есть куча хвостов, до которых не доходят руки, но которые хотелось бы добить. Например, переделать парсер ямла в очередной раз. Я не против за это все выдавать бонусы, если результат будет качественный.

Vit ★★★★★
()
Ответ на: комментарий от Vit

ссылка с инфой есть? Я гитхаб глянул немножко, но гитхаб-гитхабом, неплохо бы понять подробней что ты именно хочешь и какие задачи, технологии. Пример какой-нибудь задачи, а то вдруг сильно сложно.

stevejobs ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.