ВКонтакте ускорила веб-версию на 25% после перехода на SPA

ВКонтакте ускорила веб-версию на 25% после перехода на SPA

ВКонтакте ускорила веб-версию на 25% после перехода на SPA

«ВКонтакте» провела одну из самых масштабных технических модернизаций своей веб-версии за последние годы. Соцсеть перевела основные разделы сайта на архитектуру SPA (Single Page Application), благодаря чему интерфейс стал заметно быстрее, а разработчики получили возможность выпускать обновления практически в режиме конвейера.

Под изменения попали самые популярные разделы: лента, профили пользователей, сообщества, мессенджер, друзья, клипы, фотографии и маркет.

Результат оказался вполне измеримым. По данным компании, первая отрисовка страницы ускорилась на 25%, а среднее время перехода между разделами сократилось сразу в 3,5 раза.

Если раньше при открытии нового раздела браузер фактически ждал ответа сервера и только потом показывал страницу целиком, то теперь пользователи сначала видят готовый каркас интерфейса — навигацию, меню и основные элементы, а контент подгружается уже после. Проще говоря, вместо пустого экрана появляется ощущение мгновенного отклика.

Впрочем, изменения коснулись не только пользователей. Вместе с переходом на SPA команда внедрила компонентный подход, связанный с дизайн-системой «ВКонтакте». Теперь новые интерфейсы собираются из готовых элементов — кнопок, окон, меню и других компонентов. Это упрощает разработку и помогает поддерживать единый внешний вид сервиса.

Серьёзно ускорился и процесс выпуска обновлений. Если раньше развёртывание фронтенда занимало больше времени, то теперь деплой выполняется примерно за 20 секунд. При этом веб-версия получает в среднем 6–8 релизов в сутки, а ежедневно в продакшен попадает более сотни мерж-реквестов.

По словам технического директора «ВКонтакте» Юрия Кочаряна, речь идёт не просто о смене архитектуры, а о глубокой перестройке всей веб-платформы.

Интересно, что большинство пользователей, вероятно, даже не заметили самого перехода. Миграция выполнялась постепенно и без радикальных изменений интерфейса. Пока аудитория листала ленту и переписывалась в мессенджере, разработчики фактически пересобрали значительную часть веб-версии соцсети под современный подход к разработке.

DOOM запустили в Microsoft Paint, холст кормят кадрами через буфер обмена

Технический директор Microsoft Azure Марк Руссинович выпустил DoomPaint — проект, который позволяет играть в DOOM прямо на холсте Microsoft Paint. Правда, калькулятором Paint так и не стал: игру обсчитывает движок ViZDoom, а встроенный редактор Windows лишь показывает готовые кадры.

DoomPaint запускает движок без отдельного окна, формирует изображение и отправляет его в Paint через буфер обмена.

Каждый кадр вставляется на холст как новая картинка. Разрешение по умолчанию составляет 640×400 пикселей, а частота достигает родных для DOOM 35 кадров в секунду. При нагрузке производительность может скатиться до уровня, который Руссинович метко назвал табличным.

Играть при этом можно полноценно: доступны управление с клавиатуры, стрельба, бег, открытие дверей, звуковые эффекты и MIDI-саундтрек. Есть и бонус, которого не было в оригинале: Ctrl+Z превращается в перемотку времени.

Каждый кадр хранится в истории Paint, поэтому несколько отмен способны буквально оживить погибшего героя. А сохранение файла создаёт обычный PNG со сценой игры — Paint ведь понятия не имеет, что его заставили изображать монитор.

 

Главной проблемой стал сам буфер обмена. Если десятки раз в секунду очищать его и записывать новый кадр, Paint может не успеть прочитать предыдущий и выдать ошибку. Поэтому DoomPaint публикует один объект OLE на всю сессию и обновляет содержащиеся в нём данные. Следующий кадр появляется только после подтверждения, что Paint забрал предыдущий.

Вставка запускается синтетическим Ctrl+V либо через меню Paint, если приложение игнорирует нажатие. Низкоуровневый перехватчик клавиатуры не даёт игровым клавишам случайно нажимать кнопки редактора.

Проект опубликован на GitHub и требует Python. После запуска файла run.bat скрипт сам создаёт окружение, устанавливает зависимости и открывает Paint.

RSS: Новости на портале Anti-Malware.ru