LINUX.ORG.RU

Где есть человеческое управление компонентами (интерфейса)?

 ,


1

5

Вроде уже многие сталкивались с тем, что веб-страничку удобнее рассматривать не как «шаблончик полюс скриптик», а как набор самодостаточных компонетов (виджетов?). Где каждый компонент содержит все что ему надо - шаблон, стили, переводы, скрипты.

В принципе многие движутся в этом направлении - react, angular и т.п. Но вот чего я пока не нашел - как обеспечить изменение внешнего вида. Типовые задачи:

1. Допустим я хочу другой скин для сайта. Хорошо если мне повезет и достаточно изменить CSS. А если еще и верстку?
2. Допустим я хочу что-то добавить в существующий компонент из внешнего. Например, был форум. Добавили модуль блогов и на карточку юзера понадобилось добавить ссылки из бложика.

Появились ли какие-то методологии, как красиво разруливать подобные вещи? Пока приходилось сталкиваться с такими вещами:

- Накладывание текстовых diff на шаблоны. Стрёмная по жизни штука.
- Модификация DOM ручками через яваскрипт. Можно, но неудобно и в использовании и в поддержке.
- BEM XLST. Рабочая штука, но очень высокая цена входа. Сделано не для людей.
- Можно еще втыкать всякие хуки для иньекций, но это часто решает проблему уже после того как она случилась, а не заранее.

В основном все эти проблемы касаются только шаблонов:

- на CSS при БЕМ-овских именах классов подкрутить текущие стили не проблема.
- на JS в принципе медиатор c responsibility chains позволяет особо не париться о расширяемости. То, что много подписчиков могут образовать помойку разруливается разбивкой одной большой цепочки на несколько вложенных.

Возвращаясь к шаблонам - где придумали что-нибудь простое и удобное, чтобы подкручивать выхлоп «веб-компонент»? Яндексовский БЕМ ни на простое ни на удобное не тянет.

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

Не пробовал. Там все кроме именования CSS как-то не для людей сделано. От перестановки шаблонизаторов это не меняется IMHO.

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

Готов согласится, что там тяжело с документацией и примерами, что покрывается быстрой реакцией от комьюнити на форуме. Но, если вы владеете принципами шаблонизации XML/XSLT, то BEMHTML это её эволюционное продолжение в сторону JS. BH — это ответвление, ещё более упрощённое и ещё более JS-like.

В полном стеке БЭМ реализуется и модульность, и i18n, и шаблонизация как в рантайме на сервере, так и на клиенте. + методология, которая упорядочивает, что в свою очередь приводит к отказу от копипаста, выделяя повторяющийся код в библиотеки, изменения мейкапа без драм на нескольких проектах одновременно за счет АНБ и уровней переопределения, возможности длительной поддержки всего хозяйства.

Кажется, что вся сложность входа заключается только в принятии методологии, далее всё становится понятно и просто. Но я не уговариваю, просто делюсь опытом.

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

Дело не в документации. Мне не нравится, что там высокая цена входа и замена верстки программированием. Плюс не очень понятно как такое потом сочетать с другими технологиями, например react.

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

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