38
Когда команда распределена по «островам» Семенов Артем Руководитель группы Я.Субботник в Санкт-Петербурге, 15 июня 2013 года

Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

  • Upload
    yandex

  • View
    586

  • Download
    1

Embed Size (px)

DESCRIPTION

Команда разработки интерфейсов поиска состоит из 50 человек и находится в четырёх разных городах России и Украины: в Москве, Санкт-Петербурге, Киеве и Симферополе. В докладе рассказывается о том, как организована разработка интерфейсов поиска в распределенной команде. В частности, как помогают БЭМ-методология и инструменты в процессе разработки, как используются системы контроля версий, как устроен обмен информацией внутри отдела — и как с помощью всего этого разрабатывается анонсированная в мае 2013 года новая поисковая платформа «Острова», которая помогает представить интернет-сайты в результатах поисковой выдачи в виде интерактивных ответов.

Citation preview

Page 1: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Когда команда распределена по «островам» Семенов Артем Руководитель группы Я.Субботник в Санкт-Петербурге, 15 июня 2013 года

Page 2: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

2 Яндекс.Острова

Page 3: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

3 «Острова в Турции»

Page 4: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Команда

Page 5: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

5

Команда

• 50 человек (поисковая выдача ~20) • 2 страны: Россия, Украина • 4 города: Москва, Санкт-Петербург, Симферополь, Киев

• Еще множество разработчиков из других отделов

Отдел разработки интерфейсов поисковых сервисов:

Page 6: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

6 Поисковые сервисы Яндекса

Page 7: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

7

Распределенность

• Расширенная география поиска разработчиков

• Стабильность разработки • Удешевление затрат

Page 8: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Четкий процесс

Роли

Обучение

Качества кода

Page 9: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

9

Дежурство

• Дежурный разработчик • Релиз-инженер

Page 10: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

10 Дежурный разработчик

Page 11: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

11 Релиз-инженер

Page 12: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

12

Еженедельное планирование

Пн.  Планы  на  неделю  

Ср.  Корректировка  

Page 13: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

13 Обучение

Page 14: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

14 Документация

Page 15: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

15

Встречи

• Внешние конференции • Внутренние конференции • Внутренние встречи групп

Page 16: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Код

Page 17: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

17

Code Style

clck.ru/8cn-Q

Page 18: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

18

Code Review

clck.ru/8cmzq

Page 19: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

19

VCS flow

clck.ru/8cn-q

Page 20: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

20 Единая методология кода

Page 21: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

21

Page 22: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

22

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

• Упрощение разработки и поддержки • Переключение между проектами • Повторное использование кода

Page 23: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

23

BEM для команды

• Быстрое подключение человека к команде • Совместная работа с кодом • Независимая работа над частями проекта

Page 24: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

24

Библиотеки блоков

• Общепортальная • Поисковая • Контрибы

Page 25: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

25 Контриб маркета

Page 26: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

26

Пример контрибов

map news market time audio traffic video turkish-university address weather afisha wikifacts images yaca-games lingvo

Page 27: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

27 Контриб видео и карт

Page 28: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

28

blocks!!.bem!! !level.js!!b-menu!! !_type!! ! !b-menu_type_taxi-switcher.css!!z-taxi!! !z-taxi.bemhtml!! !z-taxi.css!! !z-taxi.deps.js!! !z-taxi.ie.css!! !z-taxi.js!! !z-taxi.priv.js!!GNUmakefile!

Контриб такси

Page 29: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

29

Уровни переопределения

Общая  библиотека  

Ядро  проекта  

Контрибы  

Результат  

Page 30: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

30

Единая экосистема

• Все технологии в BEM терминах • Библиотеки блоков • Шаблонизатор • Иструменты

Page 31: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

31

bem.info

Page 32: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Комьюнити

•  @bem_ru •  fb.com/groups/bem.info •  github.com/bem

Page 33: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Итоги

Page 34: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

34

Процесс

• Четкие роли • Проработанный рабочий процесс • Удобные коммуникации • Налаженный vcs flow

Page 35: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

35

Обучение

• Документация • Внешние и внутренние конференции • Обмен знаниями между группами

Page 36: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

36

Код

• Единая методология разработки • Code Style • Code Review

Page 37: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

37

Page 38: Артём Семенов — Яндекс.Поиск: когда команда распределена по «островам»

Артем Семенов

Руководитель группы

[email protected]