Особенности проектирования под Битрикс Александр Сербул Руководитель направления контроля качества интеграции и внедрений @AlexSerbul Прежде всего… Пройти курсы (http://dev.1c-bitrix.ru/learning/): Администратор. Базовый Администратор. Модули Администратор. Бизнес Администратор «1С-Битрикс: Корпоративный портал» Контент-менеджер Многосайтовость Причины большинства «кривых» проектов: - Проектировщик не читал курсы по Битриксу - Разработчикам дали полную свободу Кто проектирует веб-систему? Проектировать может: - Менеджер проекта вместе с Клиентом - Аналитик Разработчики могут, но обычно занимаются реализацией задач. Обязательно подключается дизайнер/юзабилист. Риски Проектировщиков: Менеджер – пытается угодить Клиенту в ущерб архитектуре Аналитик – старается все сделать чересчур правильно Разработчик – чтобы было удобно программировать Сделайте правильный выбор! Проектирование под Битрикс Права и роли – кто и что может делать и где Структура контента сайта – список страниц и разделов Шаблоны сайта и их динамика Меню Свойства страниц и разделов, управление ими Модели данных и работа с ними – инфоблоки и админки к ним Компоненты и их размещение на страницах Поиск на сайте, выгрузка во внешние системы Веб-сервисы Синхронизация данных с внешними системами Многосайтовость Структура информации Главная О компании Руководство Новости Фотогалерея Каталог Детальная продукта Дерево разделов и страниц Шаблоны Типы управляемого меню в шаблонах Главная страница Вложенная статика Вложенная каталога Для печати PDA Праздничный на новый год Верхнее Левое Нижнее и т.п. Структура веб-страницы Компонент – это кирпичик с динамическим функционалом. Страница сайта Компонент: «Список новостей» Настраивается: -Кол-во на странице -Число слов краткого описания до «…» -Формат даты и .т.п. Компонент 2 Компонент 3 Стандартных компонентов в продукте больше трехсот. Структура проекта на Битрикс Стандартный компонент Стандартный компонент Стандартный компонент Стандартный компонент Стандартная страница/раздел Стандартная страница/раздел Стандартная страница/раздел Стандартный Стандартный модуль Стандартный модуль Стандартный модуль модуль Кастомная страница/раздел Кастомная страница/раздел Кастомные обработчики событий Кастомный компонент Кастомный компонент Кастомный компонент Кастомный компонент Кастомный компонент Кастомный модуль Кастомный модуль Кастомный модуль Компоненты Страница /раздел проекта Свои таблицы в СУБД Контроллеры ajax Кастомный инфоблок Кастомный инфоблок Кастомные типы свойств Модули Страница /раздел проекта Кастомная форма Кастомная инфоблокаформа элемента инфоблока Веб-сервисы Публичная часть Многочисленные настройки и объекты проекта Админка Особенности составления ТЗ Публичная часть веб-системы модифицируется очень гибко можно написать все, что угодно Административная часть Битрикс – модифицируется ограниченно, далеко не везде Имеется много стандартных, обновляемых компонентов Имеется много стандартных админок для модулей В ТЗ описываем, что то-то и то-то будет реализовано через стандартные возможности Битрикс Иногда «стандарт» приходится описывать в ТЗ Основное время тратим на риски «нестандартного» функционала Структура ТЗ Краткое описание реализации на стандартных возможностях Битрикс – публичка и админка Даем ссылки на официальную техдокументацию и курсы Подробное описание нестандартного функционала Детальное описание и прототипы кастомных админок Если Заказчик активно хочет менять стандартные админки – пишем для него персональный кастомный административный раздел: “htdocs/customer_admin/…” Структура ТЗ на Битриксе ТЗ на интернет-проект Шаблон 1 Шаблон 2 Шаблон 3 Компонент 1 Компонент 2 Компонент 3 Группы пользователей и политика разделения доступа Компонент N Типы меню Типы справочников/списков (инфоблоки) Дерево разделов и страниц «Нестандарт» Типичный проект среднего размера: -2-3 шаблона -20-30 компонентов -50 разделов и страниц -5 групп пользователей с разными правами -10-20 инфоблоков -«нестандарт» Права и роли в ТЗ Описываем роли и их иерархию Настраиваем права в админке: на модули, файлы и т.п. Добавляем свои уровни доступа Создаем учетки в созданных группах Проверяем доступы в публичной части, кнопки на административной панели Инфоблоки в ТЗ Типы инфоблоков Типы полей инфоблоков Модель сущностей, логическая модель данных Кто знает о ком – направление связей Денормализация данных Права на сущности Обработчики событий Риски: «Глубокие выборки» Обновление данных Целостность данных Компоненты в ТЗ Описываем все компоненты и их размещение на страницах – подробно Описываем связи компонентов с инфоблоками Описываем все свойства нестандартных компонентов Логика работы, как управляется Полезные компоненты можно добавлять в свою библиотеку Сложные компоненты «нравятся» разработчикам – мотивация Когда кода слишком много – делайте свой модуль E-commerce в ТЗ Обычно, самое сложное именно тут Интернет-магазин или торговый каталог? Хочу много корзин Логика формирования нестандартных цен и скидок – корзина, события … Товары, цены, SKU, остатки … и инфоблоки Статусы заказов – State Machine Diagram Проектируем формат импорта/экспорта Веб-сервисы в ТЗ Нестандарт с 1С Интеграция с SAP SOAP, REST – веб-сервисы CSV и XML – когда и зачем Может файликами на FTP? ;-) Очереди сообщений – нужны ли? Обновление инфоблоков по событию Управляемый кэш Deployment Diagram Спасибо за внимание! Вопросы? Александр Сербул serbul@1c-bitrix.ru @AlexSerbul