Upload
oleksiy-rezchykov
View
2.603
Download
3
Embed Size (px)
DESCRIPTION
My XPDays presentation
Citation preview
Психология Code Reviewили
что делать, если в вашей команде есть люди, которые "пишут код без багов"
Алексей Резчиков 2011
Обо мне
10 лет программирую за деньги
4 года тим лид
Много шишек
Просьба к аудитории
Задавайте вопросы!
О чем я НЕ буду говорить сегодня
что такое плохой код
что такое хороший код
как писать хороший код
как поставлять качественный продукт
почему надо проводить Code Review
О чем мы сегодня поговорим
Проблемы связанные с CodeReview
Практические рекомендаций как их
преодолеть
Истории из реальной жизни
Что такое Code Review?
Code review is systematic examination (often as peer review) of computer source code. It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.(Wikipedia)
Проблема №1
Внедрение
вводные совещания
Шаг №1
Шаг №2
Шаг №3
Стандарты кодирования
Правила именования
Стратегия развития проекта
Шаг №4
принятие
Совместное владение кодом
Шаг №5
Шаг №6
Code Review
TestDeploy
Implementation
Проблема №2
Поддержание
Автоматизируйте
Redmine
Инструменты
gerritGerrit Code Review
Их очень много
Выбор за вами
Будьте гибкими
Подходы к организации
Определяем понятия
Разделяйте Code Review и Solution Review
Не пишите код!!!
Немного практики
Ситуация №1
Я пишу код без багов
Чем плохо?
Совместное владение кодом не работает
Подрывает командную работу
Проблемы с тестированием
Что делать?
Понять причину
Объяснить что это миф
«Вернуть в семью»
Ситуация №2
Код должен быть среднего качества или я отрефакторю потом
Чем плохо?
Падение дисциплины
Принцип разбитого окна
Что можно сделать?
Показать что не бывает «потом»
Бывает или хорошо или плохо
Ситуация №3
Тут надо все отрефакторить!
Чем плохо?
Преждевременная оптимизация
Избыточная сложность
Что можно сделать?
Примеры преждевременной оптимизации
Избыточная сложность и принципы KISS иYAGNI
То, что просто – легко тестируется
Ситуация №4
"Тимлид не умеет писать транзакции"
Чем плохо?
Хамство
Нарушение субординации
Плохой прецедент для командной работы
Что можно сделать?
«Хирургическое вмешательство»
Авторитет и субординация
Арбитраж
Общие советы
Общие правила на видном месте,
понятные всем, с которыми все согласны
Оценивайте код, а не человека
Оперируйте фактами, а не суждениями
Старайтесь быть предельно точными
Четкий и прозрачный арбитраж