Проблемы и пути их решения при командной разработке...

33
Digital-агентство AlterEGO Иван Машканцев, веб-разработчик Проблемы и пути их решения при командной разработке проектов

Upload: -alterego

Post on 16-Jul-2015

100 views

Category:

Internet


7 download

TRANSCRIPT

Page 1: Проблемы и пути их решения при командной разработке проектов

Digital-агентство AlterEGO

Иван Машканцев, веб-разработчик

Проблемы и пути их решения при командной разработке проектов

Page 2: Проблемы и пути их решения при командной разработке проектов

Когда пригодятся эти знания?

Вы делаете систему со сложной бизнес-

логикой

Функционал богат на сложные решения

Вы применяете не только стандартные

компоненты

Планируется длительная поддержка и

развитие проекта

Page 3: Проблемы и пути их решения при командной разработке проектов

Зачем работать командно?

Современный сайт — результат труда

нескольких специалистов

Современный сайт — большой функционал,

скрытый от глаз пользователя

Разработка в сжатые сроки

Нет незаменимых людей

Page 4: Проблемы и пути их решения при командной разработке проектов

И в чем проблема?

Нет единого стандарта — программистам трудно работать с кодом друг друга

Разработка на ФТП — проблема с коллективной работой с файлами

Невозможность исправить ошибку быстро и безопасно

Трудность в дальнейшей поддержке

Вносим правки «в базу» вживую

Page 5: Проблемы и пути их решения при командной разработке проектов

Мужайтесь

Page 6: Проблемы и пути их решения при командной разработке проектов

А решить-то можно?

Разработка стандартов кодирования Документирование кода IDE VCS WIKI Таск-трекер Миграции Тестирование

Page 7: Проблемы и пути их решения при командной разработке проектов

Разработка стандартов кодирования

Согласовать или придумать внутри студии

правила оформления php-кода, отношение к

коротким тэгам, отступам, определению

переменных, методов, классов....

… Или взять готовое!

Page 8: Проблемы и пути их решения при командной разработке проектов

Нужно соглашение о кодировании

Page 9: Проблемы и пути их решения при командной разработке проектов

IDE

Использовать обязательно

Индексация структуры проекта — экономит

время

Помогает соблюсти стандарты кодирования

Подсветка кода (а вдруг?)

Подсказки для разработчика

Интеграция с VSC, выгрузка файлов, дебаг

Page 10: Проблемы и пути их решения при командной разработке проектов

Варианты?

Eclipse

Netbeans

PhpStorm

NuSphere PhpED

Page 11: Проблемы и пути их решения при командной разработке проектов

Какую же выбрать?

Page 12: Проблемы и пути их решения при командной разработке проектов

Документирование кода

Поможет ориентироваться в проекте Ускоряет работу разработчика Написание не занимает много времени

Page 13: Проблемы и пути их решения при командной разработке проектов

Но как упростить работу с API Битрикс?

Живое описание АПИ http://www.bxapi.ru/ — веб-версия живого

описания АПИ Плагин для вашей любимой IDE —

например, BitrixStorm для PhpStorm BxApiDocs — для Eclipse или для PhpStorm Сниппеты стандартных компонент Bitrix —

для Eclipse или для PhpStorm

Page 14: Проблемы и пути их решения при командной разработке проектов

Система контроля версий

Имеем историю изменений Можем работать с одним и тем же файлом Не боимся ничего менять — в любой момент

мы можем откатиться Делаем код чище Полезно даже для одного разработчика SVN, Git или Mercurial

Page 15: Проблемы и пути их решения при командной разработке проектов

GitHub или Bitbucket для командных проектов

Page 16: Проблемы и пути их решения при командной разработке проектов

WIKI

Что вообще происходит с проектом? Какие особенности есть, о чем стоит знать? Механизм тестирования, узкие места,

критичные вещи Все доступы — в одном месте Повторное использование знаний Легко поделиться

Page 17: Проблемы и пути их решения при командной разработке проектов

Настройки сайта

Храним в WIKI

Выносим изменение стандартных настроек

модулей или сервисов

Члены команды знают, почему изменена та

или иная настройка и не пытаются этого

поменять

Page 18: Проблемы и пути их решения при командной разработке проектов

Таск-трекер

Задачи не теряются

Возможно оценить готовность этапа

Есть история действий над задачей

Удобство обсуждения

Внятное разделение ответственности

Учет потраченного времени

Page 19: Проблемы и пути их решения при командной разработке проектов

Чего изволите?

Mantis JIRA Redmine Bitrix24

Page 20: Проблемы и пути их решения при командной разработке проектов

Как будем работать? Обсуждаем задачи и рабочий процесс Продакшн — непосредственно боевой сайт Тестовый сайт для показа изменений Локальная копия сайта у всех

разработчиков Каждый разработчик имеет свою ветку в

VCS Одна задача — новая ветка Каждый разработчик - отдельный

пользователь на сайтах

Page 21: Проблемы и пути их решения при командной разработке проектов

А так можно?

Да!

Битрикс по правилам лицензирования

позволяет иметь сайты, которые «не

смотрят» в интернет, т. е. локальные

Если нужна более сложная схема —

есть NFR ключи

Поддержка Битрикса склонна идти на

встречу

Page 22: Проблемы и пути их решения при командной разработке проектов

Наконец-то начнем

Создаем репозиторий

Формируем .ignore - файл

Делаем первый коммит

Инициируем репозиторий на сервере

его на сервере

Добавляем разработчиков, раздаем

права

Page 23: Проблемы и пути их решения при командной разработке проектов

Что не нужно выносить в репозиторий?

Резервные копии Данные кэша Логи Пользовательские данные (загружаемые

файлы, картинки и.т.п) Конфиг — подключение к БД Все прочие файлы, не имеющие отношения

к коду - *.txt, *.xml и.т.п.

Page 24: Проблемы и пути их решения при командной разработке проектов

Как обновлять систему?

С большой осторожностью — что-то

может отвалиться

Делать бэкапы

Обновлять тестовую площадку,

смотреть, затем переносить изменения

всюду

Page 25: Проблемы и пути их решения при командной разработке проектов

Перенос изменений БД

В Битрикс нет встроенного механизма

миграций

Page 26: Проблемы и пути их решения при командной разработке проектов

Houston, we have a problem

Page 27: Проблемы и пути их решения при командной разработке проектов

И что делать?

Смириться

Собирать изменения структуры, а

затем рассылать изменения всем

участникам

Назначить ответственного «повелителя

проекта», который будет проводить все

манипуляции с БД

Написать механизм миграции самому

или найти готовый:)

Page 28: Проблемы и пути их решения при командной разработке проектов

Зачем выбирать механизм миграций?

Это удобно Экономит время разработчика Возможность «откатиться» обратно Помогает участникам вносить

изменения, не боясь что-то поломать Снижает риск ошибок

Page 29: Проблемы и пути их решения при командной разработке проектов

Но помни!

Любое внесение критичных изменений

в структуру базы данных боевого сайта

должно сопровождаться созданием

бэкапа

Трата 10 минут — потенциальная

экономия нескольких часов на

восстановление данных и потерянного

доверия клиента

Page 30: Проблемы и пути их решения при командной разработке проектов

Тестирование

Ручное тестирование — хорошо, но

мало

Сложные места хорошо тестировать

автоматизированно

Стандартный инструмент — Selenium

Page 31: Проблемы и пути их решения при командной разработке проектов

Что лучше тестировать автоматически?

Длинные сценарии

Многовариантное заполнение форм

Критичный функционал, ошибка в

котором недопустима

Page 32: Проблемы и пути их решения при командной разработке проектов

Все получилось! Как ускорить работу над следующим

проектом? Продумай перечень стандартных задач

Заведи общую базу знаний

Заведи общую базу кода со стандартными

решениями для использования в будущих

проектах

Вершина дао — свой модуль Marketplace —

помощь сообществу и удобство доступа

Page 33: Проблемы и пути их решения при командной разработке проектов

Спасибо за внимание!

Остались вопросы?

Email: [email protected]

Skype: depechemode_fan1