Библиотека C/C++ разработчика | cpp, boost, qt
20.3K subscribers
1.78K photos
47 videos
16 files
3.97K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
📺 Хватит коллекционировать туториалы!

Десятки роликов по ML, сотни вкладок, папка «Посмотреть позже» трещит по швам. В голове — обрывки знаний о нейросетях и Pandas.

Знания без системы — это просто «шум». Они не превращаются в навыки и проекты.

Наш курс «ML для старта в Data Science» — это не ещё один туториал. Это система. Чёткий путь от «каши» в голове до первого сильного проекта в портфолио.

И да, чтобы старт был ещё проще — при покупке курса по ML вы получаете курс по Python в подарок

👉 Превратите «шум» в навык

А вы сталкивались с «информационной кашей»? Как выбирались? 👇
🔥 Как с помощью статического анализа улучшить производительность Unreal Engine проекта

💡 В статье разбираются особенности интеграции PVS-Studio с игровым движком и способы оптимизации процесса анализа кода.


❗️ Ключевые моменты статьи:


• Unreal Engine использует собственную систему сборки UnrealBuildTool, через которую должен запускаться анализ

• Unity build объединяет множество .cpp файлов в один, что увеличивает потребление памяти при анализе

• Cпециальные диагностические правила для UE-проектов помогают находить проблемы с UObject и нарушения naming conventions


Основной фокус — практические способы запуска анализа через флаги UBT, настройку .target.cs файлов и оптимизацию потребления ресурсов.

Вы узнаете, что простое подключение анализатора через IDE не работает с UE, и нужно использовать специфичные для движка подходы, включая новые возможности анализа Horde + UBA.

👉 Статья

Библиотека C/C++ разработчика
🔥42
🥳 How to: RAII + Custom Deleters для ресурсов

Если нужно управлять сложными ресурсами, то можно воспользоваться костюмными deleters.

‼️ Проблема:

FILE*, сокеты, OpenGL объекты требуют специального освобождения

✏️ Решение:


// Универсальный RAII wrapper

template<typename T, typename Deleter>
class Resource {
T resource;
Deleter deleter;
bool owns_resource = true;
public:
Resource(T resource, Deleter deleter) : resource(resource)
, deleter(deleter) {}

~Resource() { if(owns_resource) deleter(resource); }

Resource(Resource&& other) : resource(other.resource)
, deleter(std::move(other.deleter))
, owns_resource(other.owns_resource)
{ other.owns_resource = false; }

Resource(const Resource&) = delete;
T get() const { return resource; }
T release() { owns_resource = false; return resource; }
};


// Использование
auto file = Resource(fopen("data.txt", "r"),
[](FILE* f) { if(f) fclose(f); });


🍪 Совет:

Для совместимости с STL удобно использовать std::unique_ptr с кастомным deleter.


Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🥰3
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за 48 часов: ищем бэкендеров

В команду нужны опытные бэкенд-разработчики на C++, Python, Java и Go. Приглашаем на Мультитрек — онлайн-программу быстрой адаптации.

Всего за 2 дня вы можете получить офер:
• До 18 августа подать заявку и пройти предварительный отбор
• 23 августа решить задачи на технических секциях
• 24 августа пройти финальное собеседование и получить офер
После этого будет возможность поработать с тремя командами и выбрать проект по душе.

Создаём технологии, которые меняют мир. Присоединяйтесь! Оставляйте заявку на сайте.

Реклама. ООО "Яндекс". ИНН 7736207543
1
🥳 Как быстро разобраться в чужом C++ коде?

Попали в новый проект и видите море незнакомого C++ кода? Не тратьте часы на разбор каждой строчки.


✏️ Лайфхак для разработчиков

Используйте простой, но эффективный промпт для ИИ-помощника:

Context: I'm starting a new position as backend developer and I have to start to understand how some functions are working

Technologies: C++, [добавьте ваши технологии: STL, Boost, Qt и т.д.]

You have to: explain me the code line by line

[ВСТАВЬТЕ ВАШ КОД СЮДА]



⬆️ Особенно полезно для:

• Сложных template-конструкций
• Многопоточного кода с std::thread
• Низкоуровневых операций с памятью
• RAII и smart pointers
• STL алгоритмов и контейнеров


Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁75
🚀 Главная ошибка новичка в ML — строить звездолёт вместо велосипеда

Многие сразу хотят свою Midjourney, но в итоге получают только выгорание.

Успех начинается с «велосипеда»: научитесь предсказывать цены или классифицировать отзывы. Освойте базу, а уже потом стройте «звездолёты».

Наш курс «ML для старта в Data Science» — это и есть тот самый правильный старт от простого к сложному.

👉 Начните правильно

Берёте курс «ML для старта» до конца недели — Python в подарок.

А 21 августа пройдет бесплатный вебинар с Марией Жаровой: узнаете, какие проекты качают скилл, а какие качают ваши нервы.

А какой самый сложный проект вы брались делать в самом начале? 🫢
🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
БАЗА! Сохраняем, запоминаем

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
21😁13🌚2
🔥 Hotkey boost: Автоматическая синхронизация и применение изменений CMake


🐊 Проблема:

При изменении CMakeLists.txt нужно вручную запускать переконфигурацию проекта, что отвлекает от основной работы.


💡 Решение:

Автоматическая синхронизация и мгновенное применение изменений CMake.


Работает в:

• CLion: автоматически или Ctrl+Shift+A → "Reload CMake Project"
• VSCode (с CMake Tools): F7 или через командную панель
• Visual Studio: соответствующая кнопка в CMake панели

✏️ Настройка в CLion:

• Перейдите в Settings → Build, Execution, Deployment → CMake
• Включите опцию "Reload CMake project on editing CMakeLists.txt files"
• Теперь при любом изменении CMakeLists.txt проект будет автоматически реконфигурироваться!

Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧠 Выбор первого ML-проекта: чеклист против выгорания

Классика плохих решений в ML — выбрать слишком сложный проект: неделя ковыряния в коде, десятки крашей и никакого результата. Хотите дойти до финиша — начните с простого проекта, который реально можно довести до конца.

Мини-чеклист первого проекта:

1. Понятные данные — без «я нашёл датасет в даркнете, но он на суахили».

2. Измеримая метрика — «точность 92%», а не «ну вроде работает».

3. Объяснимый результат — чтобы не-техлид понял, почему модель ругается на спам.

Наш курс «ML для старта в Data Science» — старт от простого к сложному: теория → практика → проверка → проект в портфолио.

👉 Начать свой путь в Data Science

Оплатите курс по ML до 17 августа — курс по Python в подарок.

📅 Бесплатный вебинар с Марией Жаровой — 21 августа: как выбирать проекты, которые доводят до оффера, а не до психотерапевта.

💾 Сохрани, чтобы не потерять, когда будешь готов(а) начать
😁1
🌀 Решение проблем связанных с параллелизмом в IOT

💡 Автор статьи предлагает радикально иной подход: заменить потоки и корутины на конечные автоматы для создания истинно параллельных программ на микроконтроллерах.

Ключевые моменты статьи:

• конечные автоматы как математическая основа для параллельного программирования
• библиотека на C++ для ESP32, реализующая автоматное программирование
• параллелизм в одном потоке без проблем синхронизации и гонок данных

Основной фокус — практическая реализация технологии автоматного программирования на микроконтроллерах ESP32.

Особенно актуально для проектов умного дома и промышленного IoT, где требуется работа в жёстком реальном времени с множеством датчиков и исполнительных устройств.

Оказывается, реальный проект с датчиками температуры, влажности, освещённости и управлением реле работает без FreeRTOS, поддерживает WiFi, MQTT и Home Assistant — и всё это на одном потоке с дискретностью такта 10 мсек.

Библиотека C/C++ разработчика
🤔1
😼 Перевод:

ПРОГРАММИСТЫ ИСПОЛЬЗУЙТЕ ЭТУ ИНФОРМАЦИЮ С УМОМ
U+003B ТОЧКА С ЗАПЯТОЙ
U+037E ГРЕЧЕСКИЙ ВОПРОСИТЕЛЬНЫЙ ЗНАК


Библиотека C/C++ разработчика

#развлекалово
🥱10👏3😁21
🍿 Холивар: Exception Safety

🐊 Услышал вчера на собесе перл века:

Exception safety в C++ не нужна, мы просто не используем исключения


И вот тут я понял, что индустрия раскололась на два лагеря:

Лагерь No Exceptions: Google Style Guide, игровая индустрия, embedded. Их мантра: «Исключения = непредсказуемая производительность»

Лагерь RAII + Exceptions: Стандартная библиотека, большинство enterprise проектов. «Исключения - это элегантная обработка ошибок»

// Версия без исключений
std::optional<Data> parse(const std::string& input) {
if (input.empty()) return {};
// ...
}

// Версия с исключениями
Data parse(const std::string& input) {
if (input.empty()) throw std::invalid_argument("empty input");
// ...
}


Реальность:

90% C++ кода уже содержит исключения через STL. Даже new может бросить std::bad_alloc! 😱


Провокация:

Если ты пишешь код без exception safety, ты пишешь потенциально багованный код. Точка.


✏️ Опрос: Как ты относишься к исключениям в C++?

🔥 Использую активно (элегантно!)
❤️ Избегаю (производительность)
⚡️ Только в STL контейнерах
🌚 Что такое exception safety?

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2019🌚53
😎 Вы просили — мы сделали. Самый долгожданный анонс этого лета!

Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!

На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.

📆 Старт потока — 15 сентября.

💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.

👉 Занять место
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😼 Интересное:

Как с помощью статического анализа улучшить производительность Unreal Engine проекта — в статье разбираются особенности интеграции PVS-Studio с игровым движком и способы оптимизации процесса анализа кода
Решение проблем связанных с параллелизмом в IOT — статья об разных подходах к решение проблем параллелизма в IOT

😎 Полезное:

RAII + Custom Deleters для ресурсов — реализация кастомного deleter
Как быстро разобраться в чужом C++ коде? — быстрый способ разобраться с новым кодом с помощью AI
Автоматическая синхронизация и применение изменений CMake — автоматическое обновление конфигурации CMake в IDE

Библиотека C/C++ разработчика
👍2