Разработка для высокой производительности
Планируем и проектируем для высокой производительности
- Ориентируемся на производительность с самого первого дня
- Тесно работаем с дизайнерами и менеджерами продукта
- Понимаем рациональность дизайна
- Объясняем компромиссы между дизайном и производительностью
- Предлагаем альтернативы и показываем, что еще возможно (на уровне прототипа)
- Пробуем силы в реализации нетривиального дизайна (нельзя сразу говорит «нет»)
- Помогаем упростить дизайн и взаимодействие с пользователем (добиваемся компромисса)
Разрабатываем высокопроизводительные системы: несколько базовых правил
- Лучше меньше — да лучше
- Не делайте ничего ненужного.
- Не делайте ничего, пока это не станет по-настоящему необходимым.
- Нарушайте правила
- Добивайтесь компромиссов и нарушайте сложившиеся методики (best practices), но только в качестве последнего средства!
- Работайте над улучшением ощущаемой производительности
- Пользователи могут немного подождать, если:
- их уведомили соответствующим образом о том, что операция задерживается.
- Пользовательский интерфейс постоянно реагирует на действия пользователя.
- Можно схитрить, если все операции проделать уже после обновления интерфейса пользователя.
- Нужно «заблокировать» все части интерфейса.
- Пользователи могут немного подождать, если:
Измеряемая производительность
- Тестируйте производительность, используя окружение, аналогичное пользовательскому
- Отлаживайте ваш код в процессе разработки
- Автоматизируйте функциональное тестирование и проверку производительности
- Сохраняйте историю изменений, как быстро функционируют различные возможности
- Может быть, стоит оставить некоторое (небольшое) количество отладочного кода на «боевом» сервере