Как стать автором
Обновить

Комментарии 12

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

Что ж вы $mol-то не попробовали, где любой компонент (и даже целые приложения) кастомизируем без разделения на "стандартный" и "обёртку"?

Спасибо, нужно посмотреть. Интересно, какой принцип там используется. Там возможна глубокая кастомизация без изменения исходного кода? По моему опыту слоты и АПИ дают только некое подобие кастомизации

Там все вложенные компоненты и прочие биндинги выносятся в свойства класса и их можно переопределять как при наследовании так и при инстанцировании. Тут об этом рассказывается.

Совсем забыл еще и за такой подход. Помню в 2015 году сталкивался с Sencha Ext JS. Популярности из-за своей сложности он не снискал. Там ребята вместо HTML использовали классы и ООП во всей его красе. Мне кажется, мы с вами используем 2 крайности. Не знаю, уместна ли аналогия, но мне кажется это как если бы я на бекенде старался перетащить больше логики в базу данных. А у вас получается другая крайность.

Без наглядных примеров непонятно ни какой уровень кастомизации достигнут, ни как же, на самом деле, решается проблема обновления.

Спасибо за комментарий. Прямо сейчас это можно увидеть на примере виджета локализации: https://uiwebkit.com/wgt/loc/2/menu/?type=element. Там есть табы, переключаясь между ними можно увидеть разницу. Исходники: https://github.com/uiwebkit/localize. Еще, как писал выше, сейчас я готовлю к публикации проект поменьше и там этот эффект выглядит нагляднее.

Ээээ… я из этого примера не понял ничего.

На сайте, указанном в тексте статьи, на данный момент картинки не прогружались, "красивостей" увидеть не удалось...

а чем вам Web-Components не угодили?

CDD как раз с ними отлично сочетается. Но данный принцип/подход можно использовать не только с Веб-компонентами.

Когда-то размышлял на тему кастомизации, получилась такая картинка.

Место расширения -> в месте определения -> добавления кода: имеется ввиду случай, когда нужно изменить существующий компонент, что-то в него добавив

Аспекты расширения -> компоновка: этот пункт про иерархию вложенности компонентов

Стратегия расширяемости ->...-> DSL: компоненты в определенных терминах, описывается на отдельном декларативном языке, из которого генерируется более низкоуровневое представление, отвечающее требуемым возможностям по расширению, добавлению поведения/оформления

Стратегия расширяемости ->...-> Вручную: это как в пункте выше, но требуемое более низкоуровневое представлении пишется руками

Мне кажется у вас@via-siteсразу две подмены понятий произошло.
Приложение подменилось интерфейсом, а интерфейс подменился компонентом.

более обще - нарушено отношение "целое-часть". т.е. вы кастомизируете часть, но не целое.

100% кастомизируемым приложенией мог бы быть наверное конструктор сайтов (т.е. кастомизируется целое), хотя при этом есть проблемы с кастомизацией частей. Да и то с натяжкой в случае клиент серверный приложений. Разве что клиент - "толстый".

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории