Технологии разработки программного обеспечения
(практика)
Мартынов Семён, Хозяинов Иван
Санкт-Петербургского политехнического университета Петра Великого
Института компьютерных наук и технологий
Кафедра компьютерных систем и программных технологий
2 декабря 2017 г.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 1 / 27
Содержание
1 Итоги прошлого семинара
Итоги теста
Тестирование
2 Redmine
3 GitLab
4 Atlassian Jira
5 Заключение
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 2 / 27
Итоги теста
Всего сдано работ: 15 (-7)
Приступили к ДЗ: 13 человек (в git 10 репо и 3 PR)
Уровень владения Makefile – большой разброс. Среди ответов, 4
человека заявили 0, 1 человек оценил себя в 7.
git vs svn: 7+, 8-. Давайте обсудим.
Задача на поиск числа: 13 решений нормальные (опять 13!)
Решение конфликтов в git: 8+, 7-.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 3 / 27
Тестирование
ФИО, Группа?
Участвовал(а) ли я в командной разработке с применением
системы управления задачами?
Чем CMake отличается от Make?
Чем Gradle отличается от Maven?
Задача: Задан массив чисел от 1 до 1 000 000 (1,2,3 ... 1 000 000),
и в этот массив вставили дубликат одного из чисел в произвольное
место. Написать программу которая считает массив из файла
(произвольный формат) и выведет число которое повторилось в
массиве. Плюсом будет вывести позицию данного числа в массиве.
Вход: ’./array.txt’
Выход: ’5’, index - 1 005
Чем управление ошибками отличается от управления задачами?
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 4 / 27
Redmine
Redmine (красная шахта) – открытое веб-приложение для отслеживания
ошибок и управления проектами/задачами. Написан на Ruby (Ruby on
Rails) и распространяется согласно GNU General Public License.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 5 / 27
Redmine: плюсы
единый интерфейс для множества проектов;
разграничение доступа на основе ролей;
диаграммы Ганта и календарь;
модули для ведение блога проекта, новостей проекта, управления
документацией;
RSS-уведомления, в дополнение к почте;
форум каждого проекта;
учёт затрат времени;
интеграция с кучей систем управления версиями (SVN, CVS, Git,
Mercurial, Bazaar);
создание записей об ошибках на основе полученных писем;
многоязычный интерфейс (в том числе русский);
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 6 / 27
Redmine: минусы
нет управления доступа к отдельным файлам;
нет управления доступа на уровне отдельных полей задачи (но есть
управление видимостью);
нельзя скрыть внутреннюю переписку))))))))))))
в список задач не выводится общая трудоёмкость задач;
нет возможности дать пользователю роль во всей системе;
подключить git репозиторий возможно только в случае, если и
Redmine, и репозиторий находятся на одном сервере (?)
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 7 / 27
рабочий стол Redmine
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 8 / 27
Redmine и Agile
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 9 / 27
Redmine диаграмма Гантта
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 10 / 27
Redmine и Docker
Всё как мы любим ;)
$ docker run -d --name some-redmine redmine
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 11 / 27
Redmine
GitLab – платформа управления Git-репозиториями, анализа кода,
отслеживания ошибок, тестирования, деплоя, ведения каналов и
вики-страниц. Создана Дмитрием Запорожцем и Валерием Сизовым из
Украины.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 12 / 27
Ключевые возможности GitLab
Организация публичных и приватных репозиториев.
Управление правами, группами.
Импорт проектов, в том числе с GitHub.
Вики.
API.
Доска идей и задач.
Лейблы, вехи, шаблоны, поиск.
Комментирование, объединение.
Интеграция с Jenkins CI.
Отслеживание изменений и прогресса.
Отслеживание времени.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 13 / 27
GitLab плюсы и минусы
Основные плюсы, как и минусы, вытекают из self-hosted!
Прочее:
+ Готовое решение для создания закрытого хранилища команды.
+ Красивый и понятный интерфейс
- Багтрекер тормозит
- Иногда падает
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 14 / 27
GitLab
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 15 / 27
GitLab
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 16 / 27
GitLab
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 17 / 27
GitLab и Docker
$ docker run --detach 
--hostname gitlab.example.com 
--publish 443:443 --publish 80:80 --publish 22:22 
--name gitlab 
--restart always 
--volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 18 / 27
JIRA – таск трекер на стеройдах
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 19 / 27
Jira
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 20 / 27
JIRA особенности
В сравнении с другими продуктами имеет ярко выраженные
особенности:
Тесно интегрирована с BitBacket (под тесно следует понимать -
другого не дано)
Сносный дизайн и поддержка, множество аддонов, софт к примеру
приложения для айфонов
Можно развернуть как в облаке, так и на сервере у себя....и даже
при определенном желании в своем дата центре
JIRA Workflow - наглядный и удобный способ описания жизненного
цикла любого дефекта или фичи
нормальный role-based access control
поддержка agile
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 21 / 27
Jira Workflow
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 22 / 27
Спринт с тасками и категориями
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 23 / 27
Перегруженный интерфейс Jira
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 24 / 27
Реальный Workflow
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 25 / 27
Jira и Docker
Ho! Требует платную лицензию!
НЕ оффициальный образ:
$ docker run --detach --publish 8080:8080 
cptactionhank/atlassian-jira:latest
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 26 / 27
ДЗ: будет на GitHub.
Вопросы?
Замечания?
Дополнения?
Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 27 / 27

Software engineering seminars: jira

  • 1.
    Технологии разработки программногообеспечения (практика) Мартынов Семён, Хозяинов Иван Санкт-Петербургского политехнического университета Петра Великого Института компьютерных наук и технологий Кафедра компьютерных систем и программных технологий 2 декабря 2017 г. Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 1 / 27
  • 2.
    Содержание 1 Итоги прошлогосеминара Итоги теста Тестирование 2 Redmine 3 GitLab 4 Atlassian Jira 5 Заключение Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 2 / 27
  • 3.
    Итоги теста Всего сданоработ: 15 (-7) Приступили к ДЗ: 13 человек (в git 10 репо и 3 PR) Уровень владения Makefile – большой разброс. Среди ответов, 4 человека заявили 0, 1 человек оценил себя в 7. git vs svn: 7+, 8-. Давайте обсудим. Задача на поиск числа: 13 решений нормальные (опять 13!) Решение конфликтов в git: 8+, 7-. Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 3 / 27
  • 4.
    Тестирование ФИО, Группа? Участвовал(а) лия в командной разработке с применением системы управления задачами? Чем CMake отличается от Make? Чем Gradle отличается от Maven? Задача: Задан массив чисел от 1 до 1 000 000 (1,2,3 ... 1 000 000), и в этот массив вставили дубликат одного из чисел в произвольное место. Написать программу которая считает массив из файла (произвольный формат) и выведет число которое повторилось в массиве. Плюсом будет вывести позицию данного числа в массиве. Вход: ’./array.txt’ Выход: ’5’, index - 1 005 Чем управление ошибками отличается от управления задачами? Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 4 / 27
  • 5.
    Redmine Redmine (красная шахта)– открытое веб-приложение для отслеживания ошибок и управления проектами/задачами. Написан на Ruby (Ruby on Rails) и распространяется согласно GNU General Public License. Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 5 / 27
  • 6.
    Redmine: плюсы единый интерфейсдля множества проектов; разграничение доступа на основе ролей; диаграммы Ганта и календарь; модули для ведение блога проекта, новостей проекта, управления документацией; RSS-уведомления, в дополнение к почте; форум каждого проекта; учёт затрат времени; интеграция с кучей систем управления версиями (SVN, CVS, Git, Mercurial, Bazaar); создание записей об ошибках на основе полученных писем; многоязычный интерфейс (в том числе русский); Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 6 / 27
  • 7.
    Redmine: минусы нет управлениядоступа к отдельным файлам; нет управления доступа на уровне отдельных полей задачи (но есть управление видимостью); нельзя скрыть внутреннюю переписку)))))))))))) в список задач не выводится общая трудоёмкость задач; нет возможности дать пользователю роль во всей системе; подключить git репозиторий возможно только в случае, если и Redmine, и репозиторий находятся на одном сервере (?) Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 7 / 27
  • 8.
    рабочий стол Redmine МартыновСемён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 8 / 27
  • 9.
    Redmine и Agile МартыновСемён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 9 / 27
  • 10.
    Redmine диаграмма Гантта МартыновСемён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 10 / 27
  • 11.
    Redmine и Docker Всёкак мы любим ;) $ docker run -d --name some-redmine redmine Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 11 / 27
  • 12.
    Redmine GitLab – платформауправления Git-репозиториями, анализа кода, отслеживания ошибок, тестирования, деплоя, ведения каналов и вики-страниц. Создана Дмитрием Запорожцем и Валерием Сизовым из Украины. Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 12 / 27
  • 13.
    Ключевые возможности GitLab Организацияпубличных и приватных репозиториев. Управление правами, группами. Импорт проектов, в том числе с GitHub. Вики. API. Доска идей и задач. Лейблы, вехи, шаблоны, поиск. Комментирование, объединение. Интеграция с Jenkins CI. Отслеживание изменений и прогресса. Отслеживание времени. Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 13 / 27
  • 14.
    GitLab плюсы иминусы Основные плюсы, как и минусы, вытекают из self-hosted! Прочее: + Готовое решение для создания закрытого хранилища команды. + Красивый и понятный интерфейс - Багтрекер тормозит - Иногда падает Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 14 / 27
  • 15.
    GitLab Мартынов Семён, ХозяиновИван ТРПО (практика) 2 декабря 2017 г. 15 / 27
  • 16.
    GitLab Мартынов Семён, ХозяиновИван ТРПО (практика) 2 декабря 2017 г. 16 / 27
  • 17.
    GitLab Мартынов Семён, ХозяиновИван ТРПО (практика) 2 декабря 2017 г. 17 / 27
  • 18.
    GitLab и Docker $docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 18 / 27
  • 19.
    JIRA – тасктрекер на стеройдах Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 19 / 27
  • 20.
    Jira Мартынов Семён, ХозяиновИван ТРПО (практика) 2 декабря 2017 г. 20 / 27
  • 21.
    JIRA особенности В сравнениис другими продуктами имеет ярко выраженные особенности: Тесно интегрирована с BitBacket (под тесно следует понимать - другого не дано) Сносный дизайн и поддержка, множество аддонов, софт к примеру приложения для айфонов Можно развернуть как в облаке, так и на сервере у себя....и даже при определенном желании в своем дата центре JIRA Workflow - наглядный и удобный способ описания жизненного цикла любого дефекта или фичи нормальный role-based access control поддержка agile Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 21 / 27
  • 22.
    Jira Workflow Мартынов Семён,Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 22 / 27
  • 23.
    Спринт с таскамии категориями Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 23 / 27
  • 24.
    Перегруженный интерфейс Jira МартыновСемён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 24 / 27
  • 25.
    Реальный Workflow Мартынов Семён,Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 25 / 27
  • 26.
    Jira и Docker Ho!Требует платную лицензию! НЕ оффициальный образ: $ docker run --detach --publish 8080:8080 cptactionhank/atlassian-jira:latest Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 26 / 27
  • 27.
    ДЗ: будет наGitHub. Вопросы? Замечания? Дополнения? Мартынов Семён, Хозяинов Иван ТРПО (практика) 2 декабря 2017 г. 27 / 27