Готовые решения типовых задач на Qt и C++: проверенные функции и классы, которые можно взять и использовать в своём проекте. Минимум теории — максимум законченного кода с пояснением, как и почему он работает.
Готовый 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 — один из самых обсуждаемых паттернов в программировании: его легко реализовать неправильно, и он часто подвергается критике за создание скрытых глобальных зависимостей. Тем не менее, для…