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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
⌨️ Топ-вакансий для C++разработчиков за неделю

Ведущий системный программист С++ — от 350 000 ₽ Гибрид (Москва, Санкт-Петербург, Минск)

Разработчик C++ — до 220 000 ₽ Гибрид (Москва)

Разработчик C++ (Middle) — до 330 000 ₽ Удалёнка

Разработчик Windows Low Level C/C++ — от 280 000 до 380 000 ₽ Удалёнка

➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Библиотека C/C++ разработчика
⚡️ ccache — компилятор кэш для ускорения пересборки проектов

Ждете по полчаса каждую пересборку большого проекта?

ccache кэширует результаты компиляции и переиспользует их при повторных сборках идентичных файлов. Может ускорить инкрементальные сборки в 5-10 раз, особенно эффективен в CI/CD пайплайнах.

👉 Установка:
# Ubuntu/Debian
sudo apt install ccache
# macOS
brew install ccache


💡 Примеры использования:
export CC="ccache gcc"
export CXX="ccache g++"
make -j$(nproc)


Дополнительные возможности:
— Настройка максимального размера кэша
— Статистика hit/miss ratio через ccache -s
— Поддержка удаленного кэша для команд
— Интеграция с CMake через CMAKE_CXX_COMPILER_LAUNCHER

👉 Сайт проекта

Библиотека C/C++ разработчика #свежак
🤯 Почему на собеседованиях в топовые компании проваливаются даже опытные разработчики

Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.

Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».

Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».

🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей

После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.

👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
🚀 ТОП 10 трюков на C++, которые облегчат вам жизнь

Изучение C++ — это путешествие длиною в жизнь, полное подводных камней и неожиданных решений. Мы собрали практические советы, которые сделают ваш код более читаемым, оптимизированным и помогут вам выделиться на собеседованиях.

Несколько трюков кратко и наглядно оформили в виде карточек.

Остальные трюки можно посмотреть в статье

Библиотека C/C++ разработчика
‼️ Рефакторинг длинных функций

Длинные функции — это код, который снижает читаемость и усложняет тестирование. Особенно актуально для C++, где функции могут быстро разрастаться из-за управления ресурсами и обработки ошибок.


💡 Решение с помощью AI

Для того чтобы разделить свой код на функции используй следующий промпт:

Refactor the following code into multiple methods to improve readability and maintainability:

[Сюда вставь свой код]



🥨 Пример трансформации

До:

void processUserData(const std::vector<User>& users) {
// 50+ строк валидации, фильтрации,
// сортировки и сохранения
}


После:

void processUserData(const std::vector<User>& users) {
auto validUsers = validateUsers(users);
auto filteredUsers = filterActiveUsers(validUsers);
auto sortedUsers = sortUsersByPriority(filteredUsers);
saveUsersToDatabase(sortedUsers);
}



✏️ Как часто вы сталкиваетесь с очень длинными функциями?

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
🔥 Сжатие ipv4 заголовков C++

💡 На Хабре вышла новая статья в которой автор делится своим опытом решения задачи сжатия IPv4 заголовков в условиях спутниковой связи с нестабильной работой и ограниченной пропускной способностью.

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

• использование метода избыточности для отбрасывания идентичных данных в группах заголовков
• создание системы эталонных заголовков для восстановления сжатых пакетов
• достижение более 50% сжатия при сохранении полной функциональности

Основной фокус — практическая реализация компрессора/декомпрессора через tun интерфейс с детальным разбором алгоритма работы с первым полным пакетом и последующими сжатыми.

Особенно актуально для разработчиков, работающих с сетевыми протоколами в условиях ограниченной пропускной способности.

Вы узнаете, что даже стандартный 20-байтный IPv4 заголовок можно сократить до 9 байт без потери функциональности, используя умное кеширование эталонов.

👉 Статья

Библиотека C/C++ разработчика
🔍 Memory leaks в C++

Программа ест все больше памяти? Скорее всего у вас memory leak. Это не приговор и можно исправить, и вот как🙂


📝 Пошаговое решение:

- Используйте Valgrind или AddressSanitizer
- Найдите несоответствие new/delete
- Замените сырые указатели на smart pointers
- Проверьте циклические ссылки

//  Проблемный код
void problematic() {
int* data = new int[1000];
if (some_condition) {
return; // Утечка памяти!
}
delete[] data;
}

// Исправленный код
void fixed() {
auto data = std::make_unique<int[]>(1000);
if (some_condition) {
return; // Память освободится автоматически
}
}



⚠️ Частые ошибки:

- Забывают delete при раннем return
- Путают delete и delete[]


💡 Совет:

- Компилируйте с флагом -fsanitize=address для автоматического поиска утечек.

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 AI-агенты — настоящее, о котором все говорят

На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи!

На обучении вы соберете полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Разберете реальные кейсы и научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

Старт 5 июля, а при оплате до 1 июня действует дополнительная скидка и бонус — эксклюзивный лонгрид по API и ML от Proglib.

Начните осваивать тему уже сейчас 👉 https://clc.to/Cttu7A
Библиотека C/C++ разработчика | cpp, boost, qt pinned «👾 AI-агенты — настоящее, о котором все говорят На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉 Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи! На обучении вы соберете полноценные…»
⚡️ GDB: отладка без перекомпиляции

Сколько раз ты менял код, добавляя printf для отладки, а потом забывал их удалить перед коммитом?

Решение: Условные breakpoint'ы в GDB

$ gdb ./your_program
(gdb) break main.cpp:42 if user_id == 123
(gdb) run


GDB остановится только когда user_id равен 123!

Ещё круче:

- (gdb) commands 1 - добавить команды к breakpoint'у
- (gdb) watch variable_name - остановка при изменении переменной

Бонус: set print pretty on сделает вывод структур читаемым 🎯

Попробуй прямо сейчас и напиши, сколько printf удалил из кода😄

Библиотека C/C++ разработчика #буст
😎 Оптимизации и паттерны userver

💡 Антон Полухин из команды uServer делится реальными кейсами системных оптимизаций C++, которые помогли сэкономить гигабайты памяти и значительно ускорить работу.

Ключевые моменты доклада:

• избавление от shared_ptr через продление времени жизни объектов до завершения приложения
• экономия памяти через ленивую аллокацию виртуального адресного пространства в пулах корутин
• правильная балансировка нагрузки между event-тредами для чтения и записи

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

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

Вы узнаете, что иногда «неэкономия» ресурсов и отказ от умных указателей могут дать больший прирост производительности, чем классические подходы оптимизации.

👉 Доклад

Библиотека C/C++ разработчика
Последние 2 дня скидки на курс «AI-агенты для DS-специалистов»

Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы на базе ИИ-агентов.

Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.

🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib

💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP

Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».

👉 Успейте до 1 июня: https://clc.to/Cttu7A