GitHub обновил архитектуру навигации для раздела Issues, что позволило повысить процент мгновенных переходов с 4% до 22%. Эти изменения значительно уменьшают воспринимаемое время ожидания для разработчиков, что особенно важно для продуктивной работы с большими проектами.
Новый подход и его преимущества
Инженеры GitHub внедрили такие технологии, как клиентское кэширование и предсказательная подгрузка данных, чтобы оптимизировать скорость навигации. Главная цель заключалась в том, чтобы свести к минимуму задержки, вызванные многократными сетевыми запросами при повторяющихся рабочих процессах. Например, пользователи стали получать доступ к ранее загруженной информации сразу, а новые данные подгружаются в фоновом режиме.
Теперь GitHub использует локально ориентированный подход: данные рендерятся сразу в браузере, а за обновлениями следят фоновыми процессами. Вся система основана на нескольких уровнях клиентского хранения, включая IndexedDB для постоянного хранения и кэширование для часто запрашиваемой информации.
Замеры улучшения производительности
Команда GitHub провела ряд тестов, и результаты являются впечатляющими: P10 время ответа сократилось с 600 мс до 70 мс, а медиана уменьшилась с 1,200 мс до 700 мс. Это говорит о том, что система не только стала быстрее, но и значительно снизила вероятность задержек при навигации.
По словам Александра Лелидиса, старшего инженер-программиста GitHub, недостаток времени ожидания — это не просто метрика, а контекстный переход, который влияет на пользователях. Модели кэширования и новые архитектурные решения позволяют эмоционально улучшить общее восприятие приложения.
Значение для разработчиков и компаний
Результаты реформы навигации имеют практическое значение для разработчиков, особенно тех, кто работает с крупными проектами и регулярно использует GitHub Issues. Увеличение скорости доступа к информации и снижение времени ожидания могут привести к росту продуктивности на 20-30%, что актуально в условиях конкурентной разработки.
Следующий шаг для GitHub связан с дальнейшим улучшением синхронизации данных, что сделает взаимодействие с платформой ещё более эффективным. Обновления в будущем продолжат ориентироваться на улучшение пользовательского опыта.