Максим Гуртовенко - The future is wild | HappyDev'12
description
Transcript of Максим Гуртовенко - The future is wild | HappyDev'12
The Future is Wild
Максим ГуртовенкоJar Soft
Что случится с вашим проектом за 10 лет
Пара слов о себе
За 10 лет:100 loc в день ~ 200k locs1 фича в 5 дней ~ 400 фич2 бага в день ~ 2000 багов
Как избежать?Переписать с нуля?Рефакторить?Оставить как есть?Достроить сбоку?
Почему проекты развиваются
● Внешние обстоятельства● Изменения бизнеса● Запросы клиентов● Технологические изменения
Что мешает изменениям
● Обратная совместимость● Инерция пользователей● Технические ограничения● Внешняя интеграция● Недостаток ресурсов
Период полураспадаУ разных частей проекта разный срок жизни
Метафоры
Модель данных-1 это 0, а 0 это бесконечность
Бизнес-логикаВечные ценности и быстрые эксперименты
Интерфейс
APIМеняется с каждой версией
Экосистема
Требования
Требования● Интеграция VCS с багтрекером● Периодическая ревизия бэклога● Гайдлайны
Библиотеки
Тестирование
Тестирование● Автоматические тесты для того что нельзя
проверить руками● Инструменты для полуавтоматического
тестирования● Внутренние sanity checks
Управление знаниями● Менторы (люди занимающиеся вводом
новичков в проект)● Code review (блокирующий и неблокирующий)● Чеклисты
Code ReviewPro:● Отлавливает часть ошибок в коде● Помогает передавать знания● Заставляет писать читаемый код
Cons:● Отнимает время у лучших разработчиков● Пропускает сложные ошибки● Увеличивает сроки
Чеклисты● Системное администрирование● Добавление новых сущностей● Выпуск новой версии● Проектирование
Мертвый код
Мертвый код● Любой формат должен включать версию● Включая API● Код, работающий с форматами, должен быть
изолирован● Периодические ревизии
Расследование инцидентов
Расследование инцидентов
● Логгирование● Протокол действий пользователя● Мониторинг● Отладочный доступ к внутреннему состоянию