Разработка приложений со 100%-й кастомизацией. Customization Driven Development (CDD)
В данной статье я хочу поделиться своим опытом разработки интерфейсов с уровнем кастомизации вплоть до 100% (реальные 100%). При этом сохраняется обратная совместимость и возможность апдейтов. Магия? — Нет, это CDD!

Все началось еще в 2018 году в одной крупной международной компании. Меня пригласили в главный офис для объяснения топ руководству как мы будем решать проблему кастомизации нашего продукта, а конкретно UI части. Клиентам необходимо было немного изменить его под себя и кое-что добавить. Нужно было сохранить обратную совместимость, чтобы клиенты могли получать обновления продукта. Тогда я знал только про возможности добавления “дыр” в коде (slots), в которые можно добавить любой функционал. Ну еще и про API, уже для изменения функциональности. Понятно что ни о какой возможности кастомизации на все 100% речи не шло, ведь тогда нужно изменять исходный код, а это само собой потеря обратной совместимости.
Конечно CDD нужен далеко не всем. Эта техника будет крайне полезна при разработке продукта, клиентам которого необходима глубокая кастомизация. Я имею ввиду, не просто поменять логотип и название, а поменять абсолютно все что душе угодно. И при этом не потерять возможность будущих апдейтов продукта.
Как же добиться практически 100%-й кастомизации и без единого разрыва без потери обратной совместимости?
В CDD используется «декларативная кастомизация», т.е. все представление с логикой должны быть вывернуты наружу для возможности полной кастомизации. Если необходимо кастомизировать определенные части довольно сложной компоненты, тогда мы просто отображаем ее более простые внутренние компоненты. Эти компоненты могут быть упакованы в так называемый “черный ящик” с богатым API и “дырами” (slots), либо также отображены еще более простыми компонентами. Представление с логикой любых компонент (кроме примитивных) всегда можно вывернуть наружу, для получения 100% доступа.
И здесь вы можете возразить: “Но как же, ведь когда мы используем внутреннее содержимое, тогда мы теряем возможность апдейтов!”. Нет, это не совсем так, и вот почему:
- Компонента любой сложности (кроме примитивной) — это всего лишь набор более простых компонент, который всегда есть в свободном доступе и при ее апдейте, мы наглядно видим что и где в этом наборе изменилось и можем очень просто и быстро проапдейтить ее вручную (если это нужно);
- Сложная компонента состоит из менее сложных компонент, которые мы можем оставить в их стандартном, упакованном виде, если нам не нужна их глубокая кастомизация и естественно будем получать их апдейты автоматически;
Хорошо. А как же этого добиться? Какие шаги?
Сначала нужно разработать самые примитивные компоненты. Они могут, а некоторые из них даже должны иметь по 2 варианта:
- Стандартный компонент, “черный ящик” с богатым API и “дырами” (slots), удобен в использовании, но имеет ограниченные возможности кастомизации ;
- Компонент-обертка, расширяет возможности контента, который вы сами помещаете внутрь. Менее удобен в использовании, но имеет гораздо большие возможности кастомизации, вплоть до 100%. Обязательно для стандартных HTML элементов: , , , , , , …
Затем, при разработке более сложных компонент, нужно использовать набор из более простых. Как и примитивные компоненты, более сложные компоненты могут иметь 2 версии. Но компонент-обертку можно не создавать, если получится упаковать в стандартный компонент только декларативный шаблон из более простых компонент, без кода для управления им. И затем можно просто использовать внутреннее содержимое, когда нужна кастомизация.
В теории все хорошо. А как дела обстоят на практике?
Я создал технологию https://uiwebkit.com, которая уже делает это на практике. Еще, я сейчас готовлю к публикации проект поменьше и он уже полностью Open Source. Вот там уже наглядно видны все плюсы CDD. Проект будет крайне полезен тем, кто часто работает со сложными, кастомными HTML формами с динамическими полями и валидациями. Хотелось бы рассказать о нем подробнее, но это тема уже другой статьи.

Хотелось бы еще вспомнить нашумевший проект кастомизируемых мобильных телефонов Project Ara. На его примере можно увидеть что в принципе кастомизация нужна не всем и не всегда. Да и переплачивать за возможность кастомизации мало кто хочет. Но те немногие, кому действительно нужна кастомизация, готовы экспериментировать и пробовать разные подходы, чтобы получить именно тот результат, который соответствует именно их ожиданиям.
Буду рад вашим комментариям и мнению на этот счет, либо можете смело писать в личку. Спасибо!
- кастомизация
- веб-сайт
- интерфейсы
- интерфейс
- программирование
- технологические процессы
Кастомизация

Кастомизация — это методика адаптации продуктов, предназначенных для массового использования под индивидуальные потребности конкретного покупателя путем изменения товара, например, комплектация дополнительными элементами.
Термин заимствован с английского языка и образован от слов «customise», «customer». Кастомизация означает в буквальном переводе «клиент», «потребитель», «покупатель».
Для чего осуществляется кастомизация?
![]()
Свяжите сервисы между собой без программистов за 5 минут!

Подключение Dukaan

Подключение Monobank
Результат кастомизации (кастом) представляет собой штучный товар, изготовленный в единственном экземпляре или в небольшом количестве. Кастомизация используется, чтобы дифференцировать предложение, создать уникальные условия для определенной целевой аудитории. Например, привлечь требовательных покупателей, готовых заплатить больше за уникальные характеристики.
Массовая кастомизация — это изготовление товаров для узкой целевой аудитории под ее потребности, после чего меняется сам основной продукт. Кастомизацию используют в тех рыночных сегментах, где потребление является публичным и позволяет сделать персональное предложение. Работа с этим методом состоит в выявлении потребностей пользователей, формировании коммуникационных каналов и продукции под их потребности.
Настроить интеграцию без программистов ApiX-Drive
Статьи о маркетинге, автоматизации и интеграциях в нашем Блоге
Что такое кастомизация в программировании
Каталог курсов
Направления обучения
Бесплатный курс
начало карьеры
IT-профессии
Как выбрать направление и реализовать себя
Кастомизация
Кастомизация (от англ. customer — клиент, потребитель) в общеупотребительном смысле — это изготовление массовой продукции под конкретный заказ потребителя путем её комплектации дополнительными элементами или принадлежностями. Можно сказать иначе: кастомизация — это адаптирование имеющегося продукта под конкретного потребителя.
Или запишитесь на наши бесплатные занятия по теме дизайна и UX.
Кастомизация — что это такое и как создать индивидуальный продукт

В период массового производства и стандартизации, выделиться среди других нелегко. И часто проблема продукта может быть не в цене или функциональности, а отсутствии гибкости.
Удовлетворение предпочтений каждого клиента помогает компаниям обходить конкурентов. С этим им помогают возможности “кастомизации”, которая позволяет создавать уникальные продукты под любой запрос. В статье разберём, что это за возможности, в чём отличие кастомизации от персонализации, а также раскроем алгоритм создания кастомного продукта.
Что такое кастомизация

Протестируйте сервис бесплатно!
Пройдите регистрацию, получите бонусные звонки и консультацию менеджера!














Вам также может понравиться

Автоматизированные воронки продаж являются эффективным маркетинговым инструментом для увеличения конверсии

В настоящее время рынок программного обеспечения сталкивается с неопределенностью: западные сервисы могут

Сегментация целевой аудитории представляет собой процесс классификации потенциальных клиентов на определенные

Оптимальное время для отправки сообщений, информационных писем и e-mail или сообщения зависит от целевой

Жажда увеличения прибыли подталкивает предпринимателей к применению различных методов. При этом основными

При переносе информации из одного облачного хранилища в другое необходимо предварительно подготовиться

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

Завершение сделки представляет собой один из наиболее значимых моментов в сфере коммерческой деятельности.

В мире бизнеса понятия маржи и маржинальности часто смешиваются или воспринимаются как взаимозаменяемые.

Ввиду активной политики поддержки отечественных продуктов и замещения импортных аналогов российские разработчики

Работа с клиентами — важная часть деятельности любой коммерческой организации. И не последнюю роль во

Изобретение механизмов сильно изменило деятельность человека, даже в тех сферах, где люди считались незаменимыми