ндекс
Maintainer» кода в большом
проекте
Сергей Сергеев
руководитель группы разработки интерфейсов
Я.Субботник, Санкт-Пете...
И было всё просто
← develop
← testing
← release
2
И стало чуть сложнее
← hotfix, V0.3
← V1
← V2
← testing
← rel-V2
← testing-V1
← rel-V1, HEAD
3
И стало чуть сложнее
4
OpenSource
Требования к процедурам:
— формирования патчей
— оформления изменений
— предложения правок
6
Закрытый»
проект
«
Особенности:
— «упрощённый» рабочий процесс
— нет внешних разработчиков
— нацеленость на быстрое решение продуктовой задач...
SCM —
source code
management
Git
Git — the stupid content tracker
Linus Torvalds
“
10
Регламент работ
А зачем нам регламент?
— ЗНАЕМ! что происходит
— понимаем когда релизим
— понимаем где брать свежий код
— понимаем куда из...
Git-Flow
Git-Flow — наш выбор
— как вести разработку и не бояться «закопаться» в процедуре
формирования релиза
— как и когда формир...
GitHub
GitHub и pull-request'ы
— pull-request для ревью
— один pull-request на одну задачу
— указываем id задачи
— причёсываем ис...
История
Бывает и такое
19
Мы же получаем
20
Журнал Капитана
abc2390 багфикс 2 [captain]
eec5401 багфикс [captain]
53aeex5 добавил файлы [captain]
04012ea минорные изм...
git rebase --interactive
reword cade034 убрал ненужное
reword 04012ea минорные изменения
reword 53aeex5 добавил файлы
fixu...
Журнал Maintainer'а
eac0403 slider: убрать рывки в анимации [gurugray]
35feea5 core: добавить обработку команды «save» [gu...
git cherry-pick (reset, rebase)
|
| * dc1a212 карты: убрать табличную раскладку
| * af06df3 добавить конфиг для сборки
| *...
git cherry-pick (reset, rebase)
|
| * dc1a212 карты: убрать табличную раскладку
|/
| * af06df3 добавить конфиг для сборки
...
git merge --no-ff
* 78c8724 Merge pull request #1
|
| * dc1a212 карты: убрать табличную раскладку
|/
* 44eebab view: хендл...
Maintainer
В нашей команде отвечает за:
— сохранение общей структуры проекта (Maintainer)
— лёгкое внесение изменений в код (Maintain...
Вопросы?
Cергей Сергеев
руководитель группы разработки интерфейсов
gurugray@yandex-team.ru
@gurugray
Я
Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проекте
Upcoming SlideShare
Loading in …5
×

Сергей Сергеев — Maintainer кода в большом проекте

976 views

Published on

Команда разработки интерфейсов поиска у нас большая и распределённая. Maintainer кода — кто он в нашей команде? Какие задачи решает? Как использует Git и GitHub для решения этих задач? Об этом рассказывается в докладе.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
976
On SlideShare
0
From Embeds
0
Number of Embeds
530
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Сергей Сергеев — Maintainer кода в большом проекте

  1. 1. ндекс Maintainer» кода в большом проекте Сергей Сергеев руководитель группы разработки интерфейсов Я.Субботник, Санкт-Петербург, 15 июня 2013 года Я «
  2. 2. И было всё просто ← develop ← testing ← release 2
  3. 3. И стало чуть сложнее ← hotfix, V0.3 ← V1 ← V2 ← testing ← rel-V2 ← testing-V1 ← rel-V1, HEAD 3
  4. 4. И стало чуть сложнее 4
  5. 5. OpenSource
  6. 6. Требования к процедурам: — формирования патчей — оформления изменений — предложения правок 6
  7. 7. Закрытый» проект «
  8. 8. Особенности: — «упрощённый» рабочий процесс — нет внешних разработчиков — нацеленость на быстрое решение продуктовой задачи 8
  9. 9. SCM — source code management
  10. 10. Git Git — the stupid content tracker Linus Torvalds “ 10
  11. 11. Регламент работ
  12. 12. А зачем нам регламент? — ЗНАЕМ! что происходит — понимаем когда релизим — понимаем где брать свежий код — понимаем куда изменения «вливать» и откуда «отпочковывать» 12
  13. 13. Git-Flow
  14. 14. Git-Flow — наш выбор — как вести разработку и не бояться «закопаться» в процедуре формирования релиза — как и когда формировать релиз — как внешнему (для проекта) пользователю понять где брать стабильный релиз и релиз более старой версии — как делать hotfix'ы тогда, когда основная ветвь разработки ушла уже далеко 15
  15. 15. GitHub
  16. 16. GitHub и pull-request'ы — pull-request для ревью — один pull-request на одну задачу — указываем id задачи — причёсываем историю до подачи pull-request'а 17
  17. 17. История
  18. 18. Бывает и такое 19
  19. 19. Мы же получаем 20
  20. 20. Журнал Капитана abc2390 багфикс 2 [captain] eec5401 багфикс [captain] 53aeex5 добавил файлы [captain] 04012ea минорные изменения [captain] cade034 убрал ненужное [captain] 21
  21. 21. git rebase --interactive reword cade034 убрал ненужное reword 04012ea минорные изменения reword 53aeex5 добавил файлы fixup eec5401 багфикс reword abc2390 багфикс 2 22
  22. 22. Журнал Maintainer'а eac0403 slider: убрать рывки в анимации [gurugray] 35feea5 core: добавить обработку команды «save» [gurugray] 14512aa code-style: заменить табуляции на пробелы [gurugray] aaee154 main-page: убрать блок новостей [gurugray] 23
  23. 23. git cherry-pick (reset, rebase) | | * dc1a212 карты: убрать табличную раскладку | * af06df3 добавить конфиг для сборки | * 7462c2a реализовать базовые блоки | * 91e3997 .gitignore: добавить собраные файлы |/ * 46c9ce8 TeamCity build autocommit 24
  24. 24. git cherry-pick (reset, rebase) | | * dc1a212 карты: убрать табличную раскладку |/ | * af06df3 добавить конфиг для сборки | * 7462c2a реализовать базовые блоки | * 91e3997 .gitignore: добавить собраные файлы |/ * 46c9ce8 TeamCity build autocommit 25
  25. 25. git merge --no-ff * 78c8724 Merge pull request #1 | | * dc1a212 карты: убрать табличную раскладку |/ * 44eebab view: хендлер для тестовой страницы | | * af06df3 добавить конфиг для сборки | * 7462c2a реализовать базовые блоки | * 91e3997 .gitignore: добавить собраные файлы |/ * 46c9ce8 TeamCity build autocommit 26
  26. 26. Maintainer
  27. 27. В нашей команде отвечает за: — сохранение общей структуры проекта (Maintainer) — лёгкое внесение изменений в код (Maintainer) — релизный цикл (Release engineer) — сопровождение истории проекта (Release engineer) 28
  28. 28. Вопросы?
  29. 29. Cергей Сергеев руководитель группы разработки интерфейсов gurugray@yandex-team.ru @gurugray Я

×