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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
⚙️ Valgrind 3.25: мощнее, быстрее, точнее

Пока крупные корпорации сокращают разработчиков и сворачивают проекты, Valgrind — один из главных инструментов для поиска утечек памяти и ошибок в C/C++ — тихо обновился до версии 3.25.1.

❗️Что нового:

✔️ Исправлены критические баги, включая ложные срабатывания в Memcheck
✔️ Улучшена поддержка AVX-512
✔️ Мелкие, но важные фиксы для macOS и Linux

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

👉 Полный список изменений
👉 Официальный сайт

Библиотека C/C++ разработчика
🔬 GoogleTest — полнофункциональный фреймворк для тестирования C++ кода от Google

GoogleTest (GTest) — это мощный и гибкий фреймворк для модульного тестирования C++ кода, разработанный Google. Он предоставляет богатый набор утверждений, фикстур, моков и других инструментов, которые помогают писать эффективные и поддерживаемые тесты для сложных проектов.

✏️ Установка:

# Через vcpkg
vcpkg install gtest

# Через conan
conan install gtest/1.16.0

# Сборка из исходников
git clone https://github.com/google/googletest.git
cd googletest
mkdir build && cd build
cmake ..
cmake --build .


☀️ Примеры использования:

// Базовый тест
#include <gtest/gtest.h>

TEST(StringTest, StringEquality) {
std::string actual = "Hello";
actual += " World";
EXPECT_EQ(actual, "Hello World");
}

int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}


🍪 Дополнительные возможности:

— Фикстуры для повторного использования настроек теста
— GoogleMock для создания моков и стабов
— Параметризованные тесты
— Расширенные отчеты о результатах тестирования

⬆️ Параметризованные тесты:

class MathTest : public ::testing::TestWithParam<std::tuple<int, int, int>> {};

TEST_P(MathTest, Addition) {
int a = std::get<0>(GetParam());
int b = std::get<1>(GetParam());
int expected = std::get<2>(GetParam());
EXPECT_EQ(a + b, expected);
}

INSTANTIATE_TEST_SUITE_P(
AdditionTests,
MathTest,
::testing::Values(
std::make_tuple(1, 1, 2),
std::make_tuple(5, 3, 8),
std::make_tuple(-1, 1, 0)
)
);


🍴Ссылочки:

👉
GitHub

Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
💡 Язык программирования будущего

Готовы узнать, как ИИ полностью изменит программирование в ближайшие годы?

🔝 В новом подкасте от Podlodka осуществляется глубокое погружение в будущее разработки с создателем Kotlin Андреем Бреславом.

🔧 Что обсуждают в выпуске:

• Почему разработчики будут описывать бизнес-логику на естественном языке, а ИИ — генерировать код
• Как новые языки программирования решат проблему «boilerplate» кода раз и навсегда
• Почему валидация спецификаций станет ключевой задачей будущих компиляторов
• Как работает итеративная компиляция: от человеческих требований к исполняемому коду
• Какие вызовы ждут индустрию: дебаггинг, безопасность и модели монетизации
• Как изменится рынок труда: больше программистов, но другие навыки

🎧 Слушать подкаст

Библиотека C/C++ разработчика #буст
🙀 Айти индустрию штормит или куда податься программисту?

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


👀 Что происходит на рынке?

Крупные техногиганты объявляют о сокращениях: Meta, Amazon, Google, Microsoft и десятки других компаний расстаются с тысячами сотрудников. Причины разные — экономическая неопределенность, переоценка приоритетов после пандемии, избыточное найм в период бума.


🥹 Но есть и хорошие новости:

🔹 Спрос на опытных разработчиков остается высоким — увольняют в основном джуниоров и мидлов
🔹Растут новые ниши: ML, кибербезопасность, блокчейн, зеленые технологии
🔹Удаленная работа открыла глобальный рынок — можно работать на компании из любой точки мира
🔹 Стартапы активно нанимают — пока гиганты сокращают, малый бизнес ищет таланты


🤓 Куда двигаться программисту в 2025?

Прокачивать soft skills — в условиях конкуренции важно уметь общаться и работать в команде
Изучать ИИ-инструменты — ChatGPT, GitHub Copilot и аналоги становятся must-have
Диверсифицировать навыки — fullstack, DevOps, аналитика данных ценятся выше узких специалистов
Строить личный бренд — блог, GitHub, выступления помогают выделиться среди кандидатов
Рассматривать нетех сферы — банки, ретейл, медицина тоже нуждаются в программистах


😇 Главное — не паниковать!

IT остается одной из самых перспективных отраслей. Кризис — это возможность переосмыслить карьеру и выйти на новый уровень.

А что думаете вы? Чувствуете ли влияние кризиса на себе? Поделитесь в комментария. 👇

P.S. Напоминаем, вы можете спросить сообщество библиотеки  C++ разработчика и не только! Самые интересные вопросы обязательно опубликуем.

Библиотека C/C++ разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Умное автодополнение с помощью Tab в C++

Проблема: 🤔 Ручной ввод имен функций, переменных и типов в C++ проектах занимает время и может приводить к опечаткам, особенно при использовании длинных имен или шаблонных типов.

Решение:
🎯 Контекстно-зависимое автодополнение кода с помощью клавиши Tab.

Работает в:

• VSCode: Tab или Ctrl+Space
• CLion: Ctrl+Space или Tab (если включено в настройках)
• Visual Studio: Tab или Ctrl+Space

📝 Использование в CLion:

• Начните вводить часть имени символа
• Нажмите Ctrl+Space для вызова списка вариантов
• Используйте Tab для завершения ввода
CLion автоматически добавит необходимые заголовочные файлы

Библиотека C/C++ разработчика #буст
🔨 Системы сборки для C++ проектов

💡 Александр Корнилов из команды разработки Касперский ОС рассказывает о современных подходах к системам сборки для C++ и делится опытом использования неожиданного решения.

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

• эволюция от простого Make до современных оркестраторов сборки
• требования к билд-системам: инкрементальность, параллелизм, кросс-платформенность
• практический опыт использования Gradle для C++ проектов вместо традиционных решений

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

Вы узнаете, что Gradle — не только для Java разработки, но и мощный инструмент для C++ с поддержкой плагинов, артефактов и даже собственным аналогом Maven Central для бинарных библиотек.

👉 Доклад

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🟥 SHA-256: сайт, который покажет, как работает хеш

Пока вы просто вызываете hashlib.sha256(), есть сайт, который показывает, что реально происходит под капотом.

На сайте визуальный разбор алгоритма SHA-256

➡️ Прямо по шагам:
• как разбиваются данные на блоки
• как добавляется паддинг
• какие логические операции гоняются внутри
• и как из строки получается тот самый хеш

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

📎 Проверьте сами

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

Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😈 Как правильно обрабатывать ошибки?

Как правило разработчики делятся на два типа, те кто поддерживают исключения и те кто за ручную обработку ошибок.

🎯 Exception team:
• Чистый код без проверок на каждом шаге
• RAII + exceptions = идеальное сочетание
• Стандартный C++ подход
• Exception safety гарантии

📋 Error codes army:

• Предсказуемая производительность
• Нет hidden control flow
• Embedded-friendly
std::expected в C++23 спасет мир

GOOGLE STYLE: Exceptions запрещены, только error codes!

РЕАЛЬНОСТЬ: В высоко нагруженных приложениях exceptions = смерть, в обычном коде — удобство.

А ты из какого лагеря? И сколько раз ловил std::bad_alloc в production?

Библиотека C/C++ разработчика #междусобойчик
📰 Свеженькое из мира C++

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

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

Язык программирования будущего
Open Source и C++: делай что должен и свершится, чему суждено
Microsoft уволила лучших разработчиков

😎 Полезное:

GoogleTest — полнофункциональный фреймворк для тестирования C++ кода от Google
Системы сборки для C++ проектов

🖨️ Интересные проекты

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

Windows Subsystem for Linux (WSL)
Подсистема Windows для Linux (WSL) — это эффективный способ запускать инструменты командной строки, утилиты и приложения Linux в Windows.

TensorFlow
TensorFlow — открытая библиотека для машинного обучения, разработанная компанией Google.

Zen Browser
Zen — это современный браузер основанный на движке Firefox.

Библиотека C/C++ разработчика #свежак
⌨️ Топ-вакансий для 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
Как сделать код удобным для чтения и поддержки? Как стиль и форматирование могут улучшить командную работу?

⏺️ На открытом вебинаре мы подробно разберем, почему читаемость и поддерживаемость кода — важные элементы успешных проектов. Мы покажем, как правильное именование переменных, методов и классов помогает сделать код понятным для всей команды. Также мы объясним, как выравнивание, отступы и оформление скобок влияют на восприятие кода.

Вы научитесь:
▸ Настраивать автоматическое форматирование,
▸ Использовать линтеры и анализаторы,
▸ Внедрять Code Style соглашения в команде.
▸ Сократите время на ревью и отладку, повысив качество проектов!

Посетите открытый урок в преддверии старта курса «C++ Developer»!

🔴 Встречаемся 29 мая в 20:00 МСК.

Регистрация открыта: https://otus.ru/lessons/cpp-specialization/?utm_source=telegram&utm_medium=cpm&utm_campaign=spec-cplus&utm_term=cppproglib&utm_content=mql_lesson_29-05-2025_usp-cplus_cplus_aitext_no-headline_aida_short_aibanner_aibanner-hl2_white_standart&erid=2VtzqwBFYkd#event-5815

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🚀 ТОП 10 трюков на C++, которые облегчат вам жизнь

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

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

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

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