1 / 51

Организация командной разработки с использованием D7

Организация командной разработки с использованием D7. Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс. О чем поговорим. Что такое «персональная» и «командная разработка». Зачем все усложнять? О пользе инструментов, посчитаем деньги

miron
Download Presentation

Организация командной разработки с использованием D7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Организация командной разработкис использованием D7 Александр Сербул Руководитель направленияконтроля качества интеграции и внедрений 1С-Битрикс

  2. О чем поговорим • Что такое «персональная» и «командная разработка». Зачем все усложнять? • О пользе инструментов, посчитаем деньги • О подводных камнях • Научимся грамотно организовывать процесс для любого проекта

  3. Программа минимум • Скачиваем демоверсию • Проект интегрирует один человек где и как ему удобно • Создаем архив файлов и БД • Выгружаем архив на хостинг клиента • Задача – выполнена! 

  4. Спасибо за внимание! Вопросы? 

  5. Программа минимум - издержки • Контроль версий – быстрый откат, восстановление файла • Подсветка кода – резко снижает число ошибок • Подсказки параметров функций/методов • Встроенная справка по PHP • Дерево проекта, классов • Codestyle • Встроенная работа с удаленными серверами • Время – деньги!

  6. Личные предпочтения …

  7. IDE – must have

  8. Среда разработки – must have • Использовать – современные инструменты IDE (IntegratedDevelopmentEnvironment) • Выберите полезный IDE, изучите и внедрите

  9. IDE – продайте себе и клиенту • Себе – код стоит денег, пишется один раз, поддерживается долго • Себе – скорость разработки и поддержки, меньше ошибок, более качественный продукт на выходе • Себе – мотивация программистов, обучение, новые горизонты • Клиенту – скорость разработки • Клиенту – стабилизация решения идет быстрее

  10. PhpStorm + ООП Подсказки по PHP и вашим функциям/классам, подсветка ошибок

  11. PhpStorm Встроенный help по PHP – немного корявый, но работает (Ctrl + B)

  12. PhpStorm + ООП Подсказки структуры классов

  13. PhpStorm + ООП Структура сущностей, теги PhpDocumentor

  14. PhpStorm + ООП Связь с удаленными серверами, контроль версий

  15. Zend Studio

  16. Eclipse PDT

  17. PhpED

  18. NetBeans

  19. IDE – платные и бесплатные • С платными – «проще» на крупных проектах, средних/больших командах • Платные – «проще» настраивать • Отладка, профилировка, контроль версий • «Скупой - платит дважды» • Выбор – есть

  20. Отладочка

  21. Отладка • echo, die – популярно , но медленно и чревато ошибками • Xdebug – уже установлен в виртуальной машине Bitrix • Настраиваем Xdebug на сервере:

  22. Отладка • Устанавливаем breakpoints в скрипте • Начинаем сессию отладки (руками или плагином)

  23. Отладка • Отслеживаем значения переменных «в памяти» • Меняем значения переменных, добавляем watches и т.п.

  24. Отладка • Плагины Xdebug для браузеров • Ничего нового, но удобнее, чем вводить ручками

  25. Контроль версий (персональный)

  26. Контроль версий • Код – под контролем, можно откатиться • Видно, что и когда делал • Легче добавлять функционал, экспериментировать • Можно добавлять в VCS – компоненты, шаблоны, модули

  27. Контроль версий

  28. Bitrix Frameworkи разработчик

  29. Особенности • Не добавляйте Битрикс в контроль версий! • Используйте IDE для своего репозитория, модулей • Обновляйте Битрикс – отдельно, как «библиотеку» • Для контента и файлов прав – делаем инкрементальный бэкап

  30. Особенности • В Битрикс – МНОООГО кода и файлов! • Добавим исходники linux в svn? ;-) • IDE и индексация файлов • Подсветка классов и функций Битрикс vs online help • Где разрабатывать – windows, linux, виртуалки, серверы …

  31. Битрикс и IDE. «Персональный сервер разработчика» Персональный сервер разработчика(Windows, Linux) • Самая быстрая индексация кода как веб-проекта, так и ядра Битрикс • Автоматический «деплой» на веб-сервер Среда выполнения (apache, php-fpm) Проект IDE Контроль версий Код веб-проекта Ядро Битрикс БД

  32. Удаленный сервер разработчика(Windows, Linux) Среда выполнения (apache, php-fpm) Рабочее место разработчика(Windows, Linux) Проект IDE Контроль версий Код веб-проекта Код веб-проекта Ядро Битрикс Ядро Битрикс ftp, sftp БД • Медленное обновление локального ядра Битрикс для подсветки • Тормоза при индексациях по сети Битрикс и IDE. «Удаленный сервер разработчика – локальные файлы проекта»

  33. Удаленный сервер разработчика(Windows, Linux) Среда выполнения (apache, php-fpm) Рабочее место разработчика(Windows, Linux) Проект IDE Контроль версий Код веб-проекта Ядро Битрикс ftp, ssh, shared disk БД • Тормоза при индексациях по сети Битрикс и IDE. «Удаленный сервер разработчика»

  34. Удаленный сервер разработчика(Windows, Linux) Среда выполнения (apache, php-fpm) Рабочее место разработчика(Windows, Linux) Проект IDE Контроль версий Код веб-проекта Код веб-проекта Ядро Битрикс ftp, ssh, shared disk БД • Быстрая индексация веб-проекта • Нет подсветки ядра Битрикс, но можно зайти в онлайн api или установить/написать плагин Битрикс и IDE. «Удаленный сервер разработчика – локальные файлы проекта»

  35. Модуль партнера для PhpStorm - BitrixStorm

  36. Командная разработка

  37. Особенности • Ядро D7 и контроль версий, папка “/local” • Ветки DVCS • Аудит кода • Аудит безопасности • Конфигурации разработки: персональная, тестовая, боевая • Deploy • NFR-ключи, одна база/много «ядер»

  38. Локализация изменений, папка «local» activities - действия БП components - компоненты; gadgets - гаджеты рабочего стола modules - модули php_interface - init.php, папка user_lang templates - шаблоны сайтов, шаблоны компонентов, шаблоны страниц

  39. Разработчик 1 Разработчик 2 Разработчик 3 Ветка 1 Ветка 2 Ветка 3 Вед. разработчик Ветка DEV Изменения в ветки DEV/TESTING переносит опытный разработчик Серверы разработки Ветка TESTING Ветка PRODUCTION На «бой» протестированные изменения выкладывает сисадмин. Вед. разработчик Серверы тестирования Серверы в production Сисадмин Тестировщик 1 Тестировщик 2 Управление версиями

  40. Wiki • Это удобнее, чем «кидаться» письмами и документами • Сохраняется история изменений страницы • Можно задать права • Легко создать древовидную структуру проектов • Легко искать по информации • Можно прикреплять файлы/изображения

  41. Wiki: redmine, confluence

  42. Трекеры задач и багов • Задачи не теряются • Можно отследить общение по задаче • В Wiki можно сослаться на задачи и баги и их статус • Удобно состыковать с гибким процессом разработки – ссылка на коммит

  43. Трекеры задач и багов

  44. Трекеры задач и багов

  45. Трекеры задач и багов

  46. Обзор инструментов для команды Раб. группа: Битрикс24/Корппортал Redmine Confluence Mercurial SVN Git Track Excel MediaWiki Bazaar Управление требованиями Управление версиями кода Раб. группа: Битрикс24/Корппортал Jira Redmine ZendStudio PhpStorm Eclipse PDT TrackStudio Track Mantis PhpED NetBeans Управление задачами, временем, рисками, документами, проектом Среды разработки Xdebug XHProf Pinba Средства отладки для разработчиков

  47. Deploy, Continuous Integration • Код – в контроле версий • Контент в файлах и контроль версий • Как передавать изменения в БД? • Экспорт/импорт инфоблоков, пользователей, веб-форм • Сисадмин и пиво 

  48. Скрипты миграции • Скрипт пишет программист • Добавляет в контроль версий • Скрипт выполняет сисадмин на удаленном сервере • Еще вопросы есть?  //добавление свойства типа HTML $arFields = Array( "NAME" => "Итог", "ACTIVE" => "Y", "SORT" => "600", "CODE" => "ITOG", "PROPERTY_TYPE" => "S", "USER_TYPE" => "HTML”, "IBLOCK_ID" => $arParams["IBLOCK_ID"] ); $ibp = new CIBlockProperty; $PropID = $ibp->Add($arFields); //создание группы $group = new CGroup; $arFields = Array( "ACTIVE" => "Y", "C_SORT" => 100, "NAME" => "Имя группы", "DESCRIPTION" => "Описание группы", "STRING_ID" => "GROUP_1" ); $NEW_GROUP_ID = $group->Add($arFields); if ( strlen($group->LAST_ERROR)>0 ) ShowError($group->LAST_ERROR);

  49. Обновление Битрикс • Версия ядра на «бою» и сервере разработки • Резервное копирование • Методика обновления «боевого» сервера • Как обновлять сервера разработки – база и файлы?

  50. Как доработать проект клиента? • Идентичность ядер, дистрибутивы - обновления • Дамп файлов и БД • Репликация БД • Модульное и функциональное тестирование – сетка безопасности

More Related