Конфигурационный менеджмент: организуй свой репозиторий<br />Шмаркатюк Сергей (EPAM Systems)<br />
Управление конфигурациями<br /><ul><li>Управление выпуском (release management)
Наладка поставок (delivery)
Организация налаженных процессов разработки
Согласование способа взаимодействия разных частей программного проекта</li></ul>2<br />
Классификация инструментов управления конфигурациями<br />Контроль версий (version control)<br />Юнит-тестирование<br />Ан...
Контроль версий(version control)<br /><ul><li> Используют ВСЕ!
Но не всем нравится
 Кому не нравится, тот изобретает свою СКВ
 Почему может не нравиться?
Из-за слияний (merge)
Без слияний жизнь проще
Но и без них – никак
Можно минимизировать количество слияний
Как?
 Раз: уменьшить количество веток
 Два: определить то, когда слияния возможны, а когда - нет</li></ul>4<br />
Гибкая разработка(agile development)<br />http://agilemanifesto.org<br /><ul><li>Итеративность
 Адаптирующийся процесс
Upcoming SlideShare
Loading in …5
×

Организуй свой репозиторий

1,336 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,336
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
23
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Организуй свой репозиторий

  1. 1. Конфигурационный менеджмент: организуй свой репозиторий<br />Шмаркатюк Сергей (EPAM Systems)<br />
  2. 2. Управление конфигурациями<br /><ul><li>Управление выпуском (release management)
  3. 3. Наладка поставок (delivery)
  4. 4. Организация налаженных процессов разработки
  5. 5. Согласование способа взаимодействия разных частей программного проекта</li></ul>2<br />
  6. 6. Классификация инструментов управления конфигурациями<br />Контроль версий (version control)<br />Юнит-тестирование<br />Анализ покрытия кода<br />Непрерывная интеграция (continuous integration)<br />Статический анализ кода<br />Генерация документации<br />Управление сборками (build management)<br />…<br />
  7. 7. Контроль версий(version control)<br /><ul><li> Используют ВСЕ!
  8. 8. Но не всем нравится
  9. 9. Кому не нравится, тот изобретает свою СКВ
  10. 10. Почему может не нравиться?
  11. 11. Из-за слияний (merge)
  12. 12. Без слияний жизнь проще
  13. 13. Но и без них – никак
  14. 14. Можно минимизировать количество слияний
  15. 15. Как?
  16. 16. Раз: уменьшить количество веток
  17. 17. Два: определить то, когда слияния возможны, а когда - нет</li></ul>4<br />
  18. 18. Гибкая разработка(agile development)<br />http://agilemanifesto.org<br /><ul><li>Итеративность
  19. 19. Адаптирующийся процесс
  20. 20. Самоорганизация
  21. 21. Продуктивность
  22. 22. Непрерывная поставка
  23. 23. Изменяющиеся требования
  24. 24. Внимание к деталям
  25. 25. Простота</li></ul>Agile<br />
  26. 26. Конфигурационные элементы<br />Исходный код<br />Библиотеки (бинарные файлы)<br />Конфигурационные файлы<br />Документация<br />Файлы ресурсов (изображения, иконки)<br />Структура БД<br />Данные и словари данных<br />Тесты (юнит-тесты)<br />Исполняемые файлы и инсталляционные пакеты<br />
  27. 27. Элементы идентификации<br />Сборки<br />Типы сборок<br />Релизы<br />Типы релизов<br />Платформы<br />Компоненты (third-party)<br />Экспериментальные разработки<br />7<br />
  28. 28. Типы сборок и релизов<br />Сборки<br /><ul><li>PA – пре-альфа(тестирование производится разработчиками, smoke testing)
  29. 29. A – альфа (тестирование производится тестировщиками)
  30. 30. B – бета (тестирование производится тестировщиками и пользователями)</li></ul>Релизы<br /><ul><li>AR – альфа-релиз
  31. 31. BR – бета-релиз
  32. 32. RC – релиз-кандидат
  33. 33. ST – стабильная версия</li></li></ul><li>Стандартные директории репозитория<br />Репозиторий<br />/<br />/trunk<br />/branches<br />/tags<br />Ствол<br />Директория тегов<br />Директория веток<br />9<br />
  34. 34. Обобщенная структура директорий проекта<br />[codebase]<br />файлы сборок, развертывания<br />спецификации, проектная документация<br />исходный код<br />svn:externals – библиотеки, компоненты<br />файлы конфигурации<br />sql-файлы инициализации БД<br />файлы локализации<br />файлы ресурсов<br />юнит-тесты<br />утилиты<br />
  35. 35. Менеджмент веток<br />Директория веток<br />/branches<br />/experimental<br />/maintenance<br />/releases<br />11<br />
  36. 36. Менеджмент тегов<br />Директория тегов<br />/tags<br />/builds<br />/releases<br />/PA<br />/A<br />/B<br />/AR<br />/BR<br />/RC<br />/ST<br />
  37. 37. Именование версий<br />1.2.3_x64<br />([1-9]d*).([1-9]d*|[0x]).([1-9]d*|[0x])(_.*)?<br />Минорная версия (номер итерации)<br />Номер сборки<br />Мажорная версия<br />Платформа<br />13<br />
  38. 38. Шаблоны именования директорий<br />Директориябазисаисходногокода (codebase)<br />14<br />Шаблон именованиядиректории<br />
  39. 39. Правила наследования номеров версий<br />1.x.x<br />2.x.x<br />3.x.x<br />…<br />N.x.x<br />N.x.x<br />3.x.x<br />2.x.x<br />1.x.x<br />Мажорной версии (N.x.x)соответствуют отрезки:<br />В стволе: от места ответвления предыдущей мажорной версии (N-1) доответвления текущей версии (N)<br />В ветке поддержки версии: вся ветка N.x.x<br />15<br />
  40. 40. Иерархия типов элементов дерева репозитория<br />Директория программногопроекта в репозиторииисходногокода<br />Директорияальфа-сборок<br />Директориябета-сборок<br />Ствол (основноенаправлениеразработки)<br />Директорияпре-альфасборок<br />Директориятегов<br />Директория альфа-релизов<br />Директориясборок<br />Директориярелизов<br />Директориябета-релизов<br />Директорияветок<br />Директориякандидат-релизов<br />Директорияветок, соответствующихэкспериментальнымразработкам<br />Директориястабильных релизов<br />Директорияветок, соответствующихдлительнымразработкам (веткиподдержки)<br />Директори ветокподдержкиверсий<br />Директорияветок платформ<br />Директорияветок, ориентированных на релиз<br />
  41. 41. Организация интеграции релизов и сборок<br />1.x.x<br />2.x.x<br />1.x.0<br />1.x.3<br />2.x.0<br />1.x.1<br />2.x.1<br />1.x.4<br />1.x.2<br />1.x.5<br />2.x.2<br />/branches/maintenance/versions/1.x.x<br />1.0.0<br />1.0.1<br />1.0.2<br />1.0.3<br />1.0.4<br />/branches/releases/1.0.x<br />17<br />
  42. 42. Зависимость содержимого директорий репозитория от номера ревизии<br />1.x.x<br />2.x.x<br />1.x.0<br />1.x.3<br />2.x.0<br />1.x.1<br />2.x.1<br />1.x.4<br />1.x.2<br />1.x.5<br />2.x.2<br />/branches/maintenance/versions/1.x.x<br />1.0.0<br />1.0.1<br />1.0.2<br />1.0.3<br />1.0.4<br />/branches/releases/1.0.x<br />Номера ревизий<br />1<br />12<br />39<br />52<br />73<br />79<br />93<br />112<br />126<br />139<br />155<br />170<br />193<br />201<br />215<br />230<br />140<br />18<br />
  43. 43. А ТЫ<br />организовал свой репозиторий?<br />

×