SlideShare uma empresa Scribd logo
1 de 33
Проблемы и пути их решения при 
командной разработке проектов 
Digital-агентство AlterEGO 
Иван Машканцев, веб-разработчик
Когда пригодятся эти знания? 
 Вы делаете систему со сложной бизнес- 
логикой 
 Функционал богат на сложные решения 
 Вы применяете не только стандартные 
компоненты 
 Планируется длительная поддержка и 
развитие проекта
Зачем работать командно? 
 Современный сайт — результат труда 
нескольких специалистов 
 Современный сайт — большой функционал, 
скрытый от глаз пользователя 
 Разработка в сжатые сроки 
 Нет незаменимых людей
И в чем проблема? 
 Нет единого стандарта — программистам 
трудно работать с кодом друг друга 
 Разработка на ФТП — проблема с 
коллективной работой с файлами 
 Невозможность исправить ошибку быстро и 
безопасно 
 Трудность в дальнейшей поддержке 
 Вносим правки «в базу» вживую
Мужайтесь
А решить-то можно? 
 Разработка стандартов кодирования 
 Документирование кода 
 IDE 
 VCS 
 WIKI 
 Таск-трекер 
 Миграции 
 Тестирование
Разработка стандартов 
кодирования 
 Согласовать или придумать внутри студии 
правила оформления php-кода, отношение к 
коротким тэгам, отступам, определению 
переменных, методов, классов.... 
 … Или взять готовое!
Нужно соглашение о кодировании
IDE 
 Использовать обязательно 
 Индексация структуры проекта — экономит 
время 
 Помогает соблюсти стандарты кодирования 
 Подсветка кода (а вдруг?) 
 Подсказки для разработчика 
 Интеграция с VSC, выгрузка файлов, дебаг
Варианты? 
 Eclipse 
 Netbeans 
 PhpStorm 
 NuSphere PhpED
Какую же выбрать?
Документирование кода 
 Поможет ориентироваться в проекте 
 Ускоряет работу разработчика 
 Написание не занимает много времени
Но как упростить работу с API 
Битрикс? 
 Живое описание АПИ 
 http://www.bxapi.ru/ — веб-версия живого 
описания АПИ 
 Плагин для вашей любимой IDE — 
например, BitrixStorm для PhpStorm 
 BxApiDocs — для Eclipse или для PhpStorm 
 Сниппеты стандартных компонент Bitrix — 
для Eclipse или для PhpStorm
Система контроля версий 
 Имеем историю изменений 
 Можем работать с одним и тем же файлом 
 Не боимся ничего менять — в любой момент 
мы можем откатиться 
 Делаем код чище 
 Полезно даже для одного разработчика 
 SVN, Git или Mercurial
GitHub или Bitbucket для 
командных проектов
WIKI 
 Что вообще происходит с проектом? 
 Какие особенности есть, о чем стоит знать? 
 Механизм тестирования, узкие места, 
критичные вещи 
 Все доступы — в одном месте 
 Повторное использование знаний 
 Легко поделиться
Настройки сайта 
 Храним в WIKI 
 Выносим изменение стандартных настроек 
модулей или сервисов 
 Члены команды знают, почему изменена та 
или иная настройка и не пытаются этого 
поменять
Таск-трекер 
 Задачи не теряются 
 Возможно оценить готовность этапа 
 Есть история действий над задачей 
 Удобство обсуждения 
 Внятное разделение ответственности 
 Учет потраченного времени
Чего изволите? 
 Mantis 
 JIRA 
 Redmine 
 Bitrix24
Как будем работать? 
 Обсуждаем задачи и рабочий процесс 
 Продакшн — непосредственно боевой сайт 
 Тестовый сайт для показа изменений 
 Локальная копия сайта у всех 
разработчиков 
 Каждый разработчик имеет свою ветку в 
VCS 
 Одна задача — новая ветка 
 Каждый разработчик - отдельный 
пользователь на сайтах
А так можно? 
 Да! 
 Битрикс по правилам лицензирования 
позволяет иметь сайты, которые «не 
смотрят» в интернет, т. е. локальные 
 Если нужна более сложная схема — 
есть NFR ключи 
 Поддержка Битрикса склонна идти на 
встречу
Наконец-то начнем 
 Создаем репозиторий 
 Формируем .ignore - файл 
 Делаем первый коммит 
 Инициируем репозиторий на сервере 
его на сервере 
 Добавляем разработчиков, раздаем 
права
Что не нужно выносить в 
репозиторий? 
 Резервные копии 
 Данные кэша 
 Логи 
 Пользовательские данные (загружаемые 
файлы, картинки и.т.п) 
 Конфиг — подключение к БД 
 Все прочие файлы, не имеющие отношения 
к коду - *.txt, *.xml и.т.п.
Как обновлять систему? 
 С большой осторожностью — что-то 
может отвалиться 
 Делать бэкапы 
 Обновлять тестовую площадку, 
смотреть, затем переносить изменения 
всюду
Перенос изменений БД 
 В Битрикс нет встроенного механизма 
миграций
Houston, we have a problem
И что делать? 
 Смириться 
 Собирать изменения структуры, а 
затем рассылать изменения всем 
участникам 
 Назначить ответственного «повелителя 
проекта», который будет проводить все 
манипуляции с БД 
 Написать механизм миграции самому 
или найти готовый:)
Зачем выбирать механизм 
миграций? 
 Это удобно 
 Экономит время разработчика 
 Возможность «откатиться» обратно 
 Помогает участникам вносить 
изменения, не боясь что-то поломать 
 Снижает риск ошибок
Но помни! 
 Любое внесение критичных изменений 
в структуру базы данных боевого сайта 
должно сопровождаться созданием 
бэкапа 
 Трата 10 минут — потенциальная 
экономия нескольких часов на 
восстановление данных и потерянного 
доверия клиента
Тестирование 
 Ручное тестирование — хорошо, но 
мало 
 Сложные места хорошо тестировать 
автоматизированно 
 Стандартный инструмент — Selenium
Что лучше тестировать 
автоматически? 
 Длинные сценарии 
 Многовариантное заполнение форм 
 Критичный функционал, ошибка в 
котором недопустима
Все получилось! Как ускорить 
работу над следующим 
проектом? 
 Продумай перечень стандартных задач 
 Заведи общую базу знаний 
 Заведи общую базу кода со стандартными 
решениями для использования в будущих 
проектах 
 Вершина дао — свой модуль Marketplace — 
помощь сообществу и удобство доступа
Спасибо за внимание! 
Остались вопросы? 
Email: depechemodefan@alterego.biz.ua 
Skype: depechemode_fan1

Mais conteúdo relacionado

Mais procurados

Разработка high load системы на .NET Core
Разработка high load системы на .NET CoreРазработка high load системы на .NET Core
Разработка high load системы на .NET CoreAndrew Gubskiy
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...Sergey Ponomarev
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12HappyDev
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Moscow js node.js enterprise development
Moscow js node.js enterprise developmentMoscow js node.js enterprise development
Moscow js node.js enterprise developmentPavel Tiunov
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureSergey Baranov
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?DotNetConf
 
Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015Alexey Lustin
 
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON
 
Nival: Как не увлечься погоней за универсализацией компонент
Nival: Как не увлечься погоней за универсализацией компонентNival: Как не увлечься погоней за универсализацией компонент
Nival: Как не увлечься погоней за универсализацией компонентDevGAMM Conference
 

Mais procurados (19)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Разработка high load системы на .NET Core
Разработка high load системы на .NET CoreРазработка high load системы на .NET Core
Разработка high load системы на .NET Core
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Moscow js node.js enterprise development
Moscow js node.js enterprise developmentMoscow js node.js enterprise development
Moscow js node.js enterprise development
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015
 
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
 
Nival: Как не увлечься погоней за универсализацией компонент
Nival: Как не увлечься погоней за универсализацией компонентNival: Как не увлечься погоней за универсализацией компонент
Nival: Как не увлечься погоней за универсализацией компонент
 

Destaque

Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара мектеби".)
Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара  мектеби".)       Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара  мектеби".)
Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара мектеби".) ayxan12
 
Sinif 11
Sinif 11Sinif 11
Sinif 11ayxan12
 
Heal the world
Heal  the worldHeal  the world
Heal the worldNataljjja
 
中国联通沃商店客户端功能特色
中国联通沃商店客户端功能特色中国联通沃商店客户端功能特色
中国联通沃商店客户端功能特色ocean1110
 
Quba üsyanı
Quba üsyanıQuba üsyanı
Quba üsyanıayxan12
 
Setting jaringan warnet berbasis windows xp
Setting jaringan warnet berbasis windows xpSetting jaringan warnet berbasis windows xp
Setting jaringan warnet berbasis windows xpToto Sunarto Sunarto
 
James Weldon Johnson
James Weldon JohnsonJames Weldon Johnson
James Weldon Johnsonms_ethomas
 
5 sinif Azerbaycan tarixi tekrar
5 sinif Azerbaycan tarixi tekrar5 sinif Azerbaycan tarixi tekrar
5 sinif Azerbaycan tarixi tekrarayxan12
 

Destaque (15)

Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара мектеби".)
Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара  мектеби".)       Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара  мектеби".)
Нефтяной Баку.(Гасанова Наиля,школа-лицей" Анкара мектеби".)
 
Sinif 11
Sinif 11Sinif 11
Sinif 11
 
Slideshow.com
Slideshow.comSlideshow.com
Slideshow.com
 
Heal the world
Heal  the worldHeal  the world
Heal the world
 
中国联通沃商店客户端功能特色
中国联通沃商店客户端功能特色中国联通沃商店客户端功能特色
中国联通沃商店客户端功能特色
 
Quba üsyanı
Quba üsyanıQuba üsyanı
Quba üsyanı
 
Setting jaringan warnet berbasis windows xp
Setting jaringan warnet berbasis windows xpSetting jaringan warnet berbasis windows xp
Setting jaringan warnet berbasis windows xp
 
Misir
MisirMisir
Misir
 
Lecture10
Lecture10Lecture10
Lecture10
 
Lecture14
Lecture14Lecture14
Lecture14
 
Lecture13
Lecture13Lecture13
Lecture13
 
James Weldon Johnson
James Weldon JohnsonJames Weldon Johnson
James Weldon Johnson
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture12
Lecture12Lecture12
Lecture12
 
5 sinif Azerbaycan tarixi tekrar
5 sinif Azerbaycan tarixi tekrar5 sinif Azerbaycan tarixi tekrar
5 sinif Azerbaycan tarixi tekrar
 

Semelhante a презентация.1

метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3rit2011
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко2ГИС Технологии
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Ontico
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Ontico
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Tatyanazaxarova
 
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...Конфигурационное управление и управление изменениями с IBM Rational ClearCase...
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...Александр Шамрай
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Василий Савунов
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.Igor Shkulipa
 
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...borovoystudio
 

Semelhante a презентация.1 (20)

метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++
 
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...Конфигурационное управление и управление изменениями с IBM Rational ClearCase...
Конфигурационное управление и управление изменениями с IBM Rational ClearCase...
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
 

презентация.1

  • 1. Проблемы и пути их решения при командной разработке проектов Digital-агентство AlterEGO Иван Машканцев, веб-разработчик
  • 2. Когда пригодятся эти знания?  Вы делаете систему со сложной бизнес- логикой  Функционал богат на сложные решения  Вы применяете не только стандартные компоненты  Планируется длительная поддержка и развитие проекта
  • 3. Зачем работать командно?  Современный сайт — результат труда нескольких специалистов  Современный сайт — большой функционал, скрытый от глаз пользователя  Разработка в сжатые сроки  Нет незаменимых людей
  • 4. И в чем проблема?  Нет единого стандарта — программистам трудно работать с кодом друг друга  Разработка на ФТП — проблема с коллективной работой с файлами  Невозможность исправить ошибку быстро и безопасно  Трудность в дальнейшей поддержке  Вносим правки «в базу» вживую
  • 6. А решить-то можно?  Разработка стандартов кодирования  Документирование кода  IDE  VCS  WIKI  Таск-трекер  Миграции  Тестирование
  • 7. Разработка стандартов кодирования  Согласовать или придумать внутри студии правила оформления php-кода, отношение к коротким тэгам, отступам, определению переменных, методов, классов....  … Или взять готовое!
  • 8. Нужно соглашение о кодировании
  • 9. IDE  Использовать обязательно  Индексация структуры проекта — экономит время  Помогает соблюсти стандарты кодирования  Подсветка кода (а вдруг?)  Подсказки для разработчика  Интеграция с VSC, выгрузка файлов, дебаг
  • 10. Варианты?  Eclipse  Netbeans  PhpStorm  NuSphere PhpED
  • 12. Документирование кода  Поможет ориентироваться в проекте  Ускоряет работу разработчика  Написание не занимает много времени
  • 13. Но как упростить работу с API Битрикс?  Живое описание АПИ  http://www.bxapi.ru/ — веб-версия живого описания АПИ  Плагин для вашей любимой IDE — например, BitrixStorm для PhpStorm  BxApiDocs — для Eclipse или для PhpStorm  Сниппеты стандартных компонент Bitrix — для Eclipse или для PhpStorm
  • 14. Система контроля версий  Имеем историю изменений  Можем работать с одним и тем же файлом  Не боимся ничего менять — в любой момент мы можем откатиться  Делаем код чище  Полезно даже для одного разработчика  SVN, Git или Mercurial
  • 15. GitHub или Bitbucket для командных проектов
  • 16. WIKI  Что вообще происходит с проектом?  Какие особенности есть, о чем стоит знать?  Механизм тестирования, узкие места, критичные вещи  Все доступы — в одном месте  Повторное использование знаний  Легко поделиться
  • 17. Настройки сайта  Храним в WIKI  Выносим изменение стандартных настроек модулей или сервисов  Члены команды знают, почему изменена та или иная настройка и не пытаются этого поменять
  • 18. Таск-трекер  Задачи не теряются  Возможно оценить готовность этапа  Есть история действий над задачей  Удобство обсуждения  Внятное разделение ответственности  Учет потраченного времени
  • 19. Чего изволите?  Mantis  JIRA  Redmine  Bitrix24
  • 20. Как будем работать?  Обсуждаем задачи и рабочий процесс  Продакшн — непосредственно боевой сайт  Тестовый сайт для показа изменений  Локальная копия сайта у всех разработчиков  Каждый разработчик имеет свою ветку в VCS  Одна задача — новая ветка  Каждый разработчик - отдельный пользователь на сайтах
  • 21. А так можно?  Да!  Битрикс по правилам лицензирования позволяет иметь сайты, которые «не смотрят» в интернет, т. е. локальные  Если нужна более сложная схема — есть NFR ключи  Поддержка Битрикса склонна идти на встречу
  • 22. Наконец-то начнем  Создаем репозиторий  Формируем .ignore - файл  Делаем первый коммит  Инициируем репозиторий на сервере его на сервере  Добавляем разработчиков, раздаем права
  • 23. Что не нужно выносить в репозиторий?  Резервные копии  Данные кэша  Логи  Пользовательские данные (загружаемые файлы, картинки и.т.п)  Конфиг — подключение к БД  Все прочие файлы, не имеющие отношения к коду - *.txt, *.xml и.т.п.
  • 24. Как обновлять систему?  С большой осторожностью — что-то может отвалиться  Делать бэкапы  Обновлять тестовую площадку, смотреть, затем переносить изменения всюду
  • 25. Перенос изменений БД  В Битрикс нет встроенного механизма миграций
  • 26. Houston, we have a problem
  • 27. И что делать?  Смириться  Собирать изменения структуры, а затем рассылать изменения всем участникам  Назначить ответственного «повелителя проекта», который будет проводить все манипуляции с БД  Написать механизм миграции самому или найти готовый:)
  • 28. Зачем выбирать механизм миграций?  Это удобно  Экономит время разработчика  Возможность «откатиться» обратно  Помогает участникам вносить изменения, не боясь что-то поломать  Снижает риск ошибок
  • 29. Но помни!  Любое внесение критичных изменений в структуру базы данных боевого сайта должно сопровождаться созданием бэкапа  Трата 10 минут — потенциальная экономия нескольких часов на восстановление данных и потерянного доверия клиента
  • 30. Тестирование  Ручное тестирование — хорошо, но мало  Сложные места хорошо тестировать автоматизированно  Стандартный инструмент — Selenium
  • 31. Что лучше тестировать автоматически?  Длинные сценарии  Многовариантное заполнение форм  Критичный функционал, ошибка в котором недопустима
  • 32. Все получилось! Как ускорить работу над следующим проектом?  Продумай перечень стандартных задач  Заведи общую базу знаний  Заведи общую базу кода со стандартными решениями для использования в будущих проектах  Вершина дао — свой модуль Marketplace — помощь сообществу и удобство доступа
  • 33. Спасибо за внимание! Остались вопросы? Email: depechemodefan@alterego.biz.ua Skype: depechemode_fan1