DispatchGroup — инструмент GCD для объединения асинхронных задач Перед запуском каждого запроса создаём DispatchGroup и вызываем enter() После завершения очередного запроса вызываем leave() С помощью notify() получаем…
Оптимизация производительности при работе с 50 спрайтами и их анимацией Пятьдесят спрайтов создают заметную нагрузку на GPU и CPU, поскольку требуют отрисовки и последующей композиции Для статичных спрайтов стоит…
Optional представляет собой контейнер, который может содержать значение или nil Собственный аналог Optional можно описать через enum с вариантами .some и .none Вложенный Optional, например Int???, — это Optional,…
Проектирование gRPC API с сохранением backward compatibility gRPC API описывается с помощью Protocol Buffers (proto) Не удаляйте существующие поля — добавляйте новые, назначая им уникальные номера для расширения схемы…
Анализ требований: пропускная способность, время отклика и возможности масштабирования Выбор модели БД: SQL с шардированием либо NoSQL для горизонтального масштабирования Применение кэширования (Redis/Memcached),…
Проектирование биржевого терминала или аналитической Forex-платформы Архитектура: микросервисы, обеспечивающие масштабируемость и отказоустойчивость Фронтенд: SPA на React или Vue с поддержкой реального времени через…
сервис для подсчёта просмотров видео в интернете основные требования: высокая производительность под нагрузкой, точность подсчётов и возможность масштабирования приём событий о просмотрах через API или SDK,…
Сравнение Dagger, Hilt и Koin по производительности, настройке и безопасности Dagger: производительность — код генерируется во время компиляции, поэтому runtime работает очень быстро и использует нативный код…
Нефункциональные требования к производительности в строительстве дома темп строительства: продолжительность отдельных этапов и всего проекта затраты ресурсов: рациональное расходование материалов и использование…
Как сократить число аллокаций памяти при конкатенации строк в цикле? строковые операции: неизменяемость строк конкатенация +=внутри цикла приводит к созданию новых объектов применять буферы: StringBuilder (Java),…
Как сократить число перерендеров компонента при изменении пропсов? React: оптимизация ререндеров Для функциональных компонентов следует применять React.memo — он мемоизирует результат и выполняет сравнение пропсов. В…