Готовые методы реализаций 24

Небольшие фрагменты кода для наглядного примера

Готовые методы реализаций

Готовый helper для дебаунса и троттлинга вызовов функций (по аналогии с JS)

Введение Дебаунс (debounce) и троттлинг (throttle) — широко известные в JavaScript-разработке техники ограничения частоты вызовов функции: дебаунс откладывает вызов до тех пор, пока не пройдёт заданный интервал без…

Готовые методы реализаций

Реализация Event Bus / шины событий на сигналах Qt для слабосвязанных модулей

Введение В крупных приложениях с множеством модулей прямая связь между ними через сигналы/слоты (где каждый модуль явно знает о существовании и интерфейсе другого) постепенно создаёт плотный граф зависимостей,…

Готовые методы реализаций

Готовая реализация кэша с ограничением по размеру (LRU Cache) на C++

Введение LRU (Least Recently Used) — одна из самых распространённых стратегий вытеснения данных из кэша ограниченного размера: при заполнении кэша вытесняется элемент, к которому обращались давнее всех остальных.…

Готовые методы реализаций

Готовый helper для конвертации единиц измерения (метры/футы, КБ/МБ и т.п.)

Введение Приложения, работающие с физическими величинами или объёмами данных, регулярно нуждаются в конвертации единиц измерения — расстояния, объёмов памяти, температуры. Разрозненные magic-числа конвертации, разбросанные по коду (value *…

Готовые методы реализаций

Реализация очереди задач с приоритетами на Qt

Введение Когда фоновые задачи в приложении неравнозначны по важности — например, обработка пользовательского ввода важнее фоновой синхронизации с сервером — простая FIFO-очередь не подходит: важная задача может застрять…

Готовые методы реализаций

Готовый класс для логирования с уровнями важности (Debug/Info/Warning/Error)

Введение Хотя Qt предоставляет qDebug(), qWarning(), qCritical() «из коробки», многим проектам нужна более структурированная система логирования: запись в файл с ротацией, фильтрация по уровню важности в зависимости от…

Готовые методы реализаций

Реализация паттерна «Наблюдатель» через сигналы/слоты Qt

Введение Паттерн «Наблюдатель» (Observer) — один из базовых паттернов проектирования: объект-субъект уведомляет множество подписанных наблюдателей об изменениях своего состояния, без явной зависимости субъекта от конкретных классов наблюдателей. В…

Готовые методы реализаций

Готовая реализация Singleton в Qt-стиле (потокобезопасный вариант)

Введение Singleton — один из самых обсуждаемых паттернов в программировании: его легко реализовать неправильно, и он часто подвергается критике за создание скрытых глобальных зависимостей. Тем не менее, для…

Готовые методы реализаций

QInputDialog в Qt: простой способ получать данные от пользователя

QInputDialog — это диалоговое окно из библиотеки QtWidgets, предназначенное для быстрого и удобного получения простых данных от пользователя, таких как текст, числа или выбор из списка. В этой…

Готовые методы реализаций

Как отсортировать QMap и QSet в Qt: практическое руководство

Контейнеры QMap и QSet в Qt представляют собой ассоциативные структуры данных. Они уже отсортированы, но по ключу (QMap) или по значению (QSet) в естественном порядке, определяемом оператором <.…