Максим Гуртовенко - The future is wild | HappyDev'12

29
The Future is Wild Максим Гуртовенко Jar Soft @ksarn1 [email protected] Что случится с вашим проектом за 10 лет

description

 

Transcript of Максим Гуртовенко - The future is wild | HappyDev'12

Page 1: Максим Гуртовенко - The future is wild | HappyDev'12

The Future is Wild

Максим ГуртовенкоJar Soft

@[email protected]

Что случится с вашим проектом за 10 лет

Page 2: Максим Гуртовенко - The future is wild | HappyDev'12

Пара слов о себе

Page 3: Максим Гуртовенко - The future is wild | HappyDev'12
Page 4: Максим Гуртовенко - The future is wild | HappyDev'12

За 10 лет:100 loc в день ~ 200k locs1 фича в 5 дней ~ 400 фич2 бага в день ~ 2000 багов

Page 5: Максим Гуртовенко - The future is wild | HappyDev'12

Как избежать?Переписать с нуля?Рефакторить?Оставить как есть?Достроить сбоку?

Page 6: Максим Гуртовенко - The future is wild | HappyDev'12

Почему проекты развиваются

● Внешние обстоятельства● Изменения бизнеса● Запросы клиентов● Технологические изменения

Page 7: Максим Гуртовенко - The future is wild | HappyDev'12

Что мешает изменениям

● Обратная совместимость● Инерция пользователей● Технические ограничения● Внешняя интеграция● Недостаток ресурсов

Page 8: Максим Гуртовенко - The future is wild | HappyDev'12

Период полураспадаУ разных частей проекта разный срок жизни

Page 9: Максим Гуртовенко - The future is wild | HappyDev'12

Метафоры

Page 10: Максим Гуртовенко - The future is wild | HappyDev'12

Модель данных-1 это 0, а 0 это бесконечность

Page 11: Максим Гуртовенко - The future is wild | HappyDev'12

Бизнес-логикаВечные ценности и быстрые эксперименты

Page 12: Максим Гуртовенко - The future is wild | HappyDev'12

Интерфейс

Page 13: Максим Гуртовенко - The future is wild | HappyDev'12

APIМеняется с каждой версией

Page 14: Максим Гуртовенко - The future is wild | HappyDev'12

Экосистема

Page 15: Максим Гуртовенко - The future is wild | HappyDev'12

Требования

Page 16: Максим Гуртовенко - The future is wild | HappyDev'12

Требования● Интеграция VCS с багтрекером● Периодическая ревизия бэклога● Гайдлайны

Page 17: Максим Гуртовенко - The future is wild | HappyDev'12

Библиотеки

Page 18: Максим Гуртовенко - The future is wild | HappyDev'12

Тестирование

Page 19: Максим Гуртовенко - The future is wild | HappyDev'12

Тестирование● Автоматические тесты для того что нельзя

проверить руками● Инструменты для полуавтоматического

тестирования● Внутренние sanity checks

Page 20: Максим Гуртовенко - The future is wild | HappyDev'12
Page 21: Максим Гуртовенко - The future is wild | HappyDev'12

Управление знаниями● Менторы (люди занимающиеся вводом

новичков в проект)● Code review (блокирующий и неблокирующий)● Чеклисты

Page 22: Максим Гуртовенко - The future is wild | HappyDev'12

Code ReviewPro:● Отлавливает часть ошибок в коде● Помогает передавать знания● Заставляет писать читаемый код

Cons:● Отнимает время у лучших разработчиков● Пропускает сложные ошибки● Увеличивает сроки

Page 23: Максим Гуртовенко - The future is wild | HappyDev'12

Чеклисты● Системное администрирование● Добавление новых сущностей● Выпуск новой версии● Проектирование

Page 24: Максим Гуртовенко - The future is wild | HappyDev'12

Мертвый код

Page 25: Максим Гуртовенко - The future is wild | HappyDev'12

Мертвый код● Любой формат должен включать версию● Включая API● Код, работающий с форматами, должен быть

изолирован● Периодические ревизии

Page 26: Максим Гуртовенко - The future is wild | HappyDev'12

Расследование инцидентов

Page 27: Максим Гуртовенко - The future is wild | HappyDev'12

Расследование инцидентов

● Логгирование● Протокол действий пользователя● Мониторинг● Отладочный доступ к внутреннему состоянию

Page 28: Максим Гуртовенко - The future is wild | HappyDev'12
Page 29: Максим Гуртовенко - The future is wild | HappyDev'12

Спасибо

Максим ГуртовенкоJar Soft

@[email protected]

Комментарии? Пожелания? Дополнения?