agilecamp'11.code review & pair programming

Post on 01-Dec-2014

1.167 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Code Review &

Pair Programming

01

Паньшин Дмитрий

Code review & pair programming. AgileCamp'11 Новосибирск 02

Code review & pair programming. AgileCamp'11 Новосибирск03

Code review & pair programming. AgileCamp'11 Новосибирск04

• Качество кода сильно отличается по команде

• Изобретение велосипеда

• Код написанный не по стандартам

• Тайные знания

• «Феодальное владение кодом»

Code review & pair programming. AgileCamp'11 Новосибирск05

Проблемы

• Reviewer

• Tech lead?

Code review & pair programming. AgileCamp'11 Новосибирск06

Подготовка: выбор reviewer’a

• Reviewer

• Сосед

• Свежий взгляд со стороны

• Эксперт

• Новичок

• Tech lead

Code review & pair programming. AgileCamp'11 Новосибирск07

Подготовка: выбор reviewer’a

Статический анализатор не ругается, тесты зеленые,…

Code review & pair programming. AgileCamp'11 Новосибирск08

Подготовка кода

Статический анализатор не ругается, тесты зеленые,…

Статические анализаторы помогают найти:

• Ошибки в дизайне

• Дублирование

• Плохое покрытие кода тестами

• Потенциальные ошибки

• Не следование стандартам кодированияCode review & pair programming. AgileCamp'11 Новосибирск09

Подготовка кода

Code Review• Рассказ о задаче• Review– Что это такое? а это что такое?– Вот этот класс отвечает за это, а это новый

интерфейс…

Code review & pair programming. AgileCamp'11 Новосибирск10

Фиксируем• Типы• bug• todo на рефакторинг• велосипед• fast fix

• Способы• лист + ручка• Инструменты

Code review & pair programming. AgileCamp'11 Новосибирск11

Необходимые условия

• Позитивное отношение.• Нацеленность на командный результат. • Любой может быть ревьювером.• Избегать holy war

Code review & pair programming. AgileCamp'11 Новосибирск12

Инструменты

Code review & pair programming. AgileCamp'11 Новосибирск13

TIP:Какие задачи?

Code review & pair programming. AgileCamp'11 Новосибирск14

TIP:Какие задачи?

• Код новичка• сложные задачи• исследовательские задачи• код в котором много багов• новые архитектурные решения• переиспользуемый код• весь код

Code review & pair programming. AgileCamp'11 Новосибирск15

TIP:Когда?

• Часто• Прямо сейчас.• Договориться заранее.• Ежедневно в одно и тоже время• До или после commit’a?

Code review & pair programming. AgileCamp'11 Новосибирск16

TIP:С чего начать?

• Командное решение• С малого и двигаться постепенно. (закон

разбитых окон)• Используйте ретроспективу для улучшения

процесса.

Code review & pair programming. AgileCamp'11 Новосибирск17

TIP: Check list?

• Clarity• Maintainability• Accuracy• Security• Scalability• Reusability• Efficiency• OOP principles, encapsulation

Code review & pair programming. AgileCamp'11 Новосибирск18

TIP: Coding standards?

In a complex program, architectural guidelines give the program structural balance and construction guidelines

provide low-level harmony, articulating each class as faithful part of a comprehensive design… Without a

unifying discipline, your creation will be jumble of sloppy variations in style. Such variations are essentially

arbitrary. One key to successful programming is avoiding arbitrary variations so that your brain can be free to focus on the variations that are really needed.

(Steve McConell)

Code review & pair programming. AgileCamp'11 Новосибирск19

TIP: Coding standards?

• содержат правила организации кода (именования, синтаксис,...)

• содержат правила архитектурных решений• содержат правила использование модулей• содержат правила из всей области (sql, js,

документация, css, ...)• ими пользуются

Code review & pair programming. AgileCamp'11 Новосибирск20

Pair Programming

21

Code review & pair programming. AgileCamp'11 Новосибирск22

Code review & pair programming. AgileCamp'11 Новосибирск23

Code review & pair programming. AgileCamp'11 Новосибирск24

Способы ведения

• Driver and navigator• Ping pong pair programming• Distributed pair programming

Code review & pair programming. AgileCamp'11 Новосибирск25

Основные проблемы

• «сделай мне чашку кофе»• несбалансированная пара• рабочее место не предназначено для

работы в паре• отсутствие дисциплины• Holy war

Code review & pair programming. AgileCamp'11 Новосибирск26

С чего начать

• начните с простого– сложная задача– задача по передаче знаний

• используйте velocity как показатель производительности

Code review & pair programming. AgileCamp'11 Новосибирск27

P.S.

Code review & pair programming. AgileCamp'11 Новосибирск29

vs

Дмитрий Паньшин

Text = Code

David Cohen

В основном мы (сценаристы) занимаемся переписыванием сценария, работая в группе.

В основном мы (разработчики) занимаемся написанием программ, часто проводим рефакторинг

Мы обсуждаем сюжет в маленькой группе, один человек пишет черновик, а потом и сценарий.

На планировании обсуждаем новый функционал. Один из разработчиков создает базовую архитектуру и набрасывает скелет.

Потом мы переписываем его в группеПотом мы проводим code review того что получилось, и реализовываем остальной функционал.

Вклад группы в работу очень велик. Мы сидим за большим столом, а часть сценария, над которой мы работаем, показывается на большом мониторе

Приблизительно раз в неделю мы собираемся вместе с аниматорами и смотрим что у них получилось и в черно-белом предварительном варианте, и в почти готовом цветном.

Мы практикуем парное программирование.

Раз в неделю (две, в зависимости от команды) мы собираемся на Demo, где показываем что получилось. Потом проводим ретроспективу. И начинаем новый спринт.

top related