🔧Видео: 5 способов улучшить C++ код
Нам часто приходится думать об оптимизации написанных нами приложений. Автор канала The Cherno разбирает пять вариантов для решения данной задачи.
✍️ Разбираем типичные ошибки и оптимизируем код:
✅ Перечисления вместо строк для типов ресурсов
✅ UUID вместо строковых идентификаторов
✅ Чистый код в синглтонах (delete безопасен с nullptr)
✅ Минимум shared_ptr — используйте стек и ссылки
✅ Правильная семантика владения объектами
👉 Видео
Библиотека C/C++ разработчика
#линкер_рекомендует
Нам часто приходится думать об оптимизации написанных нами приложений. Автор канала The Cherno разбирает пять вариантов для решения данной задачи.
✍️ Разбираем типичные ошибки и оптимизируем код:
✅ Перечисления вместо строк для типов ресурсов
✅ UUID вместо строковых идентификаторов
✅ Чистый код в синглтонах (delete безопасен с nullptr)
✅ Минимум shared_ptr — используйте стек и ссылки
✅ Правильная семантика владения объектами
👉 Видео
Библиотека C/C++ разработчика
#линкер_рекомендует
👍3
💻 ВАЖНО: макбук ещё не забрали!
Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD).
Что нужно для участия?
— Берёшь любой курс Академии до 15 ноября.
— Проходишь хотя бы 2 недели обучения (можно за два дня).
— Пишешь куратору #розыгрыш. Всё — ты в игре!
Что за курсы?
▫️Алгоритмы и структуры данных — если хочешь готовиться к собесам в Яндекс, FAANG и не сидеть на джуне вечно.
▫️Архитектуры и шаблоны проектирования — учат думать как senior, а не просто писать код.
▫️ Python, математика для DS, основы IT и другие темы — можно стартовать с нуля или усилить то, что уже знаешь.
👉 Влетай, не думай!
Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD).
Что нужно для участия?
— Берёшь любой курс Академии до 15 ноября.
— Проходишь хотя бы 2 недели обучения (можно за два дня).
— Пишешь куратору #розыгрыш. Всё — ты в игре!
Что за курсы?
▫️Алгоритмы и структуры данных — если хочешь готовиться к собесам в Яндекс, FAANG и не сидеть на джуне вечно.
▫️Архитектуры и шаблоны проектирования — учат думать как senior, а не просто писать код.
▫️ Python, математика для DS, основы IT и другие темы — можно стартовать с нуля или усилить то, что уже знаешь.
👉 Влетай, не думай!
😁2
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что произойдёт, если std::packaged_task будет уничтожен без вызова?
Anonymous Quiz
13%
Deadlock на fut.get()
16%
Вернёт значение по умолчанию
21%
UB
44%
fut.get() кинет std::future_error
7%
Компиляционная ошибка
😁1
Инициализация ресурсов в многопоточном приложении — классическая головная боль.
std::call_once решает эту проблему элегантно: гарантирует вызов функции ровно один раз, даже если несколько потоков пытаются сделать это одновременно. Забудьте про ручные мьютексы и double-checked locking с их подводными камнями.#include <mutex>
#include <memory>
#include <iostream>
class DatabaseConnection {
public:
static DatabaseConnection& getInstance() {
// std::call_once гарантирует однократный вызов лямбды
// даже при конкурентном доступе из разных потоков
std::call_once(initFlag, []() {
instance.reset(new DatabaseConnection());
std::cout << "Database initialized\n";
});
return *instance;
}
void query(const std::string& sql) {
std::cout << "Executing: " << sql << "\n";
}
// Запрещаем копирование и перемещение
DatabaseConnection(const DatabaseConnection&) = delete;
DatabaseConnection& operator=(const DatabaseConnection&) = delete;
private:
DatabaseConnection() {
// Тяжелая инициализация: подключение к БД,
// загрузка конфигурации и т.д.
}
static std::once_flag initFlag; // Флаг для call_once
static std::unique_ptr<DatabaseConnection> instance;
};
// Определение статических членов
std::once_flag DatabaseConnection::initFlag;
std::unique_ptr<DatabaseConnection> DatabaseConnection::instance;
std::call_once сам блокирует конкурентные вызовыИспользуете std::call_once в продакшене? Какие кейсы у вас?
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁1
💻 Хочешь MacBook Pro? Просто начни учиться!
Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу!
Всё просто:
— купи любой курс Академии до 15 ноября;
— пройди 2 недели обучения (можно за два дня);
— напиши куратору в чате курса хэштег #розыгрыш.
📚 Выбирай свой курс:
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «AI-агенты» или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
👉 Участвовать в розыгрыше
Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу!
Всё просто:
— купи любой курс Академии до 15 ноября;
— пройди 2 недели обучения (можно за два дня);
— напиши куратору в чате курса хэштег #розыгрыш.
📚 Выбирай свой курс:
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «AI-агенты» или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
👉 Участвовать в розыгрыше
😁5
⚙️ Новый релиз OpenMW 0.50.0: улучшенная поддержка геймпадов и интерфейс
Разработчики игрового движка
❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
Разработчики игрового движка
OpenMW, реимплементированного движка для Morrowind с открытым исходным кодом, выпустили долгожданную версию 0.50.0. Это масштабное обновление, ориентированное на повышение удобства игры на современных платформах, включая портативные устройства вроде Steam Deck. Особое внимание уделено улучшенной поддержке геймпадов и новому интерфейсу, специально адаптированному под управление контроллерами.❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
❤4😁1
🛒 Black Friday от Proglib.academy!
Только до 30 ноября — скидка 40% на ВСЕ курсы.
Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML.
🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой.
👉 Учиться со скидкой
Только до 30 ноября — скидка 40% на ВСЕ курсы.
Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML.
🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой.
👉 Учиться со скидкой
😁1
Forwarded from Proglib.academy | IT-курсы
«Стартап-атмосфера» = хаос и переработки, «возможность профессионального роста» = будете работать за четверых. Составили словарь корпоративного новояза и список неудобных вопросов, которые стоит задать на собеседовании, чтобы не попасть в ловушку.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍4
🔥 Опасная ловушка в C++ модулях
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
В чём подвох? При использовании
GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
module unit для модуля A и случайно пишете import A; вместо module A;. Казалось бы, очевидная ошибка. Но если вы используете MSVC — код скомпилируется, слинкуется и запустится без единого предупреждения.В чём подвох? При использовании
module A; ваша реализация функции корректно прикрепляется к модулю A. Но когда вы пишете import A;, функция попадает в глобальный модуль, который содержит все имена, не привязанные к конкретным модулям. Технически это конфликт: функция уже экспортирована из модуля A, а вы пытаетесь определить её заново в глобальном пространстве.GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
👍5😢3❤1
🎲 Ueli: лаунчер для продуктивных разработчиков
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
👍3
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
Читать вакансии нужно внимательно, иначе можно не заметить, что под модными словосочетаниями скрываются нестандартные условия труда или неожиданные обязательства.
Например, если описана свобода выбора графика, это почти всегда значит, что появятся поздние звонки или потребуется работать когда угодно. Формулировки про перспективы развития часто переводятся на постоянную работу в режиме форсированного многозадачия, где на поддержку рассчитывать не придется.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1😁1