Документирование туров — ключевой аспект поддержки и масштабирования интерфейсных сценариев. В проектах с использованием Shepherd.js грамотная фиксация структуры туров позволяет упростить сопровождение, ускорить онбординг разработчиков и обеспечить единообразие пользовательского опыта.
Тур в Shepherd.js представляет собой последовательность шагов, каждый из которых содержит настройки отображения и поведения. Для документирования важно фиксировать не только код, но и смысл каждого шага.
Базовые элементы тура:
Пример структурированного описания:
const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: { enabled: true },
classes: 'shepherd-theme-default',
scrollTo: true
}
});
Документация должна содержать:
Каждый шаг — самостоятельная единица, требующая детального описания.
tour.addStep({
id: 'step-1',
text: 'Описание элемента интерфейса',
attachTo: {
element: '.selector',
on: 'bottom'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
1. Идентификатор шага
profile-settings-button)2. Назначение
3. Привязка (attachTo)
top, bottom, left,
right)4. Контент
5. Кнопки
next, back,
cancel, кастомные функции)Рекомендуется использовать единый формат, например Markdown или JSDoc-подобный стиль.
### Шаг: profile-settings-button
**Описание:** Объясняет кнопку перехода к настройкам профиля
**Селектор:** `.profile-settings`
**Позиция:** bottom
**Текст:** Кликните для изменения настроек профиля
**Кнопки:**
- Далее → следующий шаг
- Отмена → завершение тура
**Условия отображения:**
- Пользователь авторизован
В крупных приложениях туры разбиваются на модули:
export const dashboardTour = () => {
const tour = new Shepherd.Tour();
tour.addStep(...);
return tour;
};
Документация должна отражать:
Туры редко являются линейными. Часто используются условия:
if (user.isAdmin) {
tour.addStep(adminStep);
}
В документации фиксируется:
Shepherd.js предоставляет события, которые важно документировать:
startshowhidecompletecanceltour.on('complete', () => {
console.log('Тур завершен');
});
Документация должна включать:
При изменении интерфейса туры требуют обновления. Без версионирования возникает рассинхронизация.
1. Версия в коде
const TOUR_VERSION = '1.2.0';
2. Хранение версии в localStorage
localStorage.setItem('tourVersion', TOUR_VERSION);
3. Документирование изменений
## Изменения
### v1.2.0
- Добавлен шаг для новой панели фильтров
### v1.1.0
- Обновлён текст шага onboarding
Туры — часть пользовательского опыта, поэтому документация должна синхронизироваться с UX-описаниями:
Важно фиксировать:
Для крупных проектов полезно генерировать документацию автоматически.
1. Аннотации в коде
/**
* @step profile-settings-button
* @description Переход к настройкам профиля
*/
2. Генерация Markdown
Скрипты могут извлекать шаги и формировать документацию.
Отсутствие описания логики
Неактуальные селекторы
Дублирование шагов
Отсутствие условий отображения
Эффективный подход включает:
Минимальный набор для каждого тура:
Документирование туров облегчает:
Рекомендуется:
Документация должна отражать реальное поведение тура.
Проверяется:
Автоматизированные тесты могут:
Грамотно оформленная документация туров превращает Shepherd.js из простого инструмента подсказок в полноценную систему сопровождения пользовательского опыта, устойчивую к изменениям интерфейса и масштабированию проекта.