5 (1) PPTX, 4 МБ

advertisement
Организация командной разработки
с использованием D7
Александр Сербул
Руководитель направления
контроля качества интеграции и внедрений 1С-Битрикс
О чем поговорим
Что такое «персональная» и «командная разработка». Зачем все
усложнять?
О пользе инструментов, посчитаем деньги
О подводных камнях
Научимся грамотно организовывать процесс для любого проекта
Программа минимум
Скачиваем демоверсию
Проект интегрирует один человек где и как ему удобно
Создаем архив файлов и БД
Выгружаем архив на хостинг клиента
Задача – выполнена! 
Спасибо за
внимание!
Вопросы? 
Программа минимум - издержки
Контроль версий – быстрый откат, восстановление файла
Подсветка кода – резко снижает число ошибок
Подсказки параметров функций/методов
Встроенная справка по PHP
Дерево проекта, классов
Codestyle
Встроенная работа с удаленными серверами
Время – деньги!
Личные предпочтения …
IDE – must have
Среда разработки – must have
Использовать – современные инструменты IDE (Integrated Development
Environment)
Выберите полезный IDE, изучите и внедрите
IDE – продайте себе и клиенту
Себе – код стоит денег, пишется один раз, поддерживается долго
Себе – скорость разработки и поддержки, меньше ошибок, более
качественный продукт на выходе
Себе – мотивация программистов, обучение, новые горизонты
Клиенту – скорость разработки
Клиенту – стабилизация решения идет быстрее
PhpStorm + ООП
Подсказки по PHP и вашим функциям/классам, подсветка ошибок
PhpStorm
Встроенный help по PHP – немного корявый, но работает (Ctrl + B)
PhpStorm + ООП
Подсказки структуры классов
PhpStorm + ООП
Структура сущностей, теги PhpDocumentor
PhpStorm + ООП
Связь с удаленными серверами, контроль версий
Zend Studio
Eclipse PDT
PhpED
NetBeans
IDE – платные и бесплатные
С платными – «проще» на крупных проектах, средних/больших командах
Платные – «проще» настраивать
Отладка, профилировка, контроль версий
«Скупой - платит дважды»
Выбор – есть
Отладочка
Отладка
echo, die – популярно , но медленно и чревато ошибками
Xdebug – уже установлен в виртуальной машине Bitrix
Настраиваем Xdebug на сервере:
Отладка
Устанавливаем breakpoints в скрипте
Начинаем сессию отладки (руками или плагином)
Отладка
Отслеживаем значения переменных «в памяти»
Меняем значения переменных, добавляем watches и т.п.
Отладка
Плагины Xdebug для браузеров
Ничего нового, но удобнее, чем вводить ручками
Контроль версий
(персональный)
Контроль версий
Код – под контролем, можно откатиться
Видно, что и когда делал
Легче добавлять функционал, экспериментировать
Можно добавлять в VCS – компоненты, шаблоны, модули
Контроль версий
Bitrix Framework
и разработчик
Особенности
Не добавляйте Битрикс в контроль версий!
Используйте IDE для своего репозитория, модулей
Обновляйте Битрикс – отдельно, как «библиотеку»
Для контента и файлов прав – делаем инкрементальный бэкап
Особенности
В Битрикс – МНОООГО кода и файлов!
Добавим исходники linux в svn? ;-)
IDE и индексация файлов
Подсветка классов и функций Битрикс vs online help
Где разрабатывать – windows, linux, виртуалки, серверы …
Битрикс и IDE. «Персональный сервер разработчика»
Персональный сервер разработчика
(Windows, Linux)
Среда выполнения (apache, php-fpm)
Самая быстрая индексация кода как вебпроекта, так и ядра Битрикс
Автоматический «деплой» на веб-сервер
Проект IDE
Контроль версий
Код веб-проекта
Ядро Битрикс
БД
Битрикс и IDE. «Удаленный сервер разработчика –
локальные файлы проекта»
Удаленный сервер разработчика
(Windows, Linux)
Среда выполнения
(apache, php-fpm)
Рабочее место разработчика
(Windows, Linux)
Проект IDE
Контроль версий
Код веб-проекта
Код веб-проекта
Ядро Битрикс
Ядро Битрикс
ftp, sftp
Медленное обновление локального ядра Битрикс для
подсветки
Тормоза при индексациях по сети
БД
Битрикс и IDE. «Удаленный сервер разработчика»
Удаленный сервер разработчика
(Windows, Linux)
Среда выполнения
(apache, php-fpm)
Рабочее место разработчика
(Windows, Linux)
Проект IDE
Контроль версий
Код веб-проекта
ftp, ssh, shared disk
Ядро Битрикс
Тормоза при индексациях по сети
БД
Битрикс и IDE. «Удаленный сервер разработчика –
локальные файлы проекта»
Удаленный сервер разработчика
(Windows, Linux)
Среда выполнения
(apache, php-fpm)
Рабочее место разработчика
(Windows, Linux)
Проект IDE
Контроль версий
Код веб-проекта
Код веб-проекта
ftp, ssh, shared disk
Ядро Битрикс
Быстрая индексация веб-проекта
Нет подсветки ядра Битрикс, но можно зайти в онлайн api
или установить/написать плагин
БД
Модуль партнера для PhpStorm - BitrixStorm
Командная
разработка
Особенности
Ядро D7 и контроль версий, папка “/local”
Ветки DVCS
Аудит кода
Аудит безопасности
Конфигурации разработки: персональная, тестовая,
боевая
6) Deploy
7) NFR-ключи, одна база/много «ядер»
1)
2)
3)
4)
5)
Локализация изменений, папка «local»
activities - действия БП
components - компоненты;
gadgets - гаджеты рабочего стола
modules - модули
php_interface - init.php, папка user_lang
templates - шаблоны сайтов, шаблоны компонентов,
шаблоны страниц
Управление версиями
Разработчик 1
Разработчик 2
Разработчик 3
Ветка 1
Ветка 2
Ветка 3
Вед. разработчик
Изменения в ветки
DEV/TESTING переносит
опытный разработчик
Ветка
DEV
Серверы разработки
Ветка
TESTING
Ветка PRODUCTION
На «бой» протестированные изменения выкладывает
сисадмин.
Вед. разработчик
Серверы тестирования
Тестировщик 1
Тестировщик 2
Серверы в production
Сисадмин
Wiki
Это удобнее, чем «кидаться» письмами и документами
Сохраняется история изменений страницы
Можно задать права
Легко создать древовидную структуру проектов
Легко искать по информации
Можно прикреплять файлы/изображения
Wiki: redmine, confluence
Трекеры задач и багов
Задачи не теряются
Можно отследить общение по задаче
В Wiki можно сослаться на задачи и баги и их статус
Удобно состыковать с гибким процессом разработки – ссылка на
коммит
Трекеры задач и багов
Трекеры задач и багов
Трекеры задач и багов
Обзор инструментов для команды
Раб. группа:
Битрикс24/Корппортал
Track
Excel
Redmine
Confluence
Mercurial
SVN
Media
Wiki
Bazaar
Управление требованиями
Раб. группа:
Битрикс24/Корппортал
Track
TrackStudio
Git
Управление версиями кода
Jira
Redmine
ZendStudio
PhpStorm
Eclipse PDT
Mantis
PhpED
Управление задачами, временем,
рисками, документами, проектом
Xdebug
NetBeans
Среды разработки
XHProf
Pinba
Средства отладки для
разработчиков
Deploy, Continuous Integration
Код – в контроле версий
Контент в файлах и контроль версий
Как передавать изменения в БД?
Экспорт/импорт инфоблоков, пользователей, веб-форм
Сисадмин и пиво 
Скрипты миграции
Скрипт пишет
программист
//добавление свойства типа HTML
//создание группы
$arFields = Array(
$group = new CGroup;
"NAME" => "Итог",
$arFields = Array(
Добавляет в контроль
"ACTIVE" => "Y",
"ACTIVE" => "Y",
версий
"SORT" => "600",
"C_SORT" => 100,
"CODE" => "ITOG",
"NAME" => "Имя группы",
Скрипт выполняет
"PROPERTY_TYPE" => "S",
"DESCRIPTION" => "Описание
сисадмин на удаленном
"USER_TYPE" => "HTML”,
группы",
"IBLOCK_ID" => $arParams["IBLOCK_ID"]
"STRING_ID" => "GROUP_1"
сервере
Еще вопросы есть?

);
);
$ibp = new CIBlockProperty;
$NEW_GROUP_ID = $group-
$PropID = $ibp->Add($arFields);
>Add($arFields);
if ( strlen($group->LAST_ERROR)>0 )
ShowError($group->LAST_ERROR);
Обновление Битрикс
Версия ядра на «бою» и сервере разработки
Резервное копирование
Методика обновления «боевого» сервера
Как обновлять сервера разработки – база и файлы?
Как доработать проект клиента?
Идентичность ядер, дистрибутивы - обновления
Дамп файлов и БД
Репликация БД
Модульное и функциональное тестирование – сетка
безопасности
Спасибо за внимание!
Вопросы?
Александр Сербул
serbul@1c-bitrix.ru
@AlexSerbul
Download