Спроектировать масштабируюмую систему обмена сообщениями (чат)
Референс: Slack
- Обмен сообщениями в реальном времени
- Хранение истории сообщений
- Уведомление о новых сообщениях
- Статус пользователей (offline/online)
| <!doctype html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta | |
| name="viewport" | |
| content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" | |
| /> | |
| <title>reveal.js</title> |
Этот пример демонстрирует создание системы с динамически загружаемыми WASM модулями, где основное приложение может подгружать и использовать дополнительные модули по требованию.
wasm-dynamic-loading/
├── src/
│ ├── main.cpp # Основное приложение
Спроектируйте систему обмена сообщениями в реальном времени, подобную Slack, сосредоточившись на функциональности обмена сообщениями. Создайте масштабируемую и надежную систему для отправки и получения текстовых сообщений в каналах и личных сообщениях с низкой задержкой. Уточняйте требования у интервьюера, чтобы определить конкретные ожидания. Предоставьте высокоуровневую архитектуру, ключевые компоненты, выбор протоколов, модель данных и стратегии для обеспечения масштабируемости и надежности. Обсудите компромиссы и обоснуйте свои проектные решения.
Here’s a full example in React that demonstrates how to check if a file is cached by a Service Worker (using Workbox) and display the cache status to the user.
Ensure you have Workbox set up in your webpack.config.js:
const WorkboxWebpackPlugin = require('workbox-webpack-plugin');InnerSource — это подход, который включает использование лучших практик и технологий разработки с открытым исходным кодом внутри компании, чтобы улучшить сотрудничество, повторное использование кода и инновации. Цель перехода — повысить эффективность разработки, улучшить коммуникацию между командами и сократить время вывода продуктов на рынок.