Библиотека C/C++ разработчика | cpp, boost, qt
Kanalga Telegram’da o‘tish
Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Ko'proq ko'rsatish2025 yil raqamlarda

19 539
Obunachilar
-824 soatlar
-447 kunlar
-17630 kunlar
Postlar arxiv
Photo unavailableShow in Telegram
Библиотека C/C++ разработчика
#развлекалово
😁 9👾 8❤ 2👍 1🥱 1
🍴 Assert vs If: когда проверки только вредят
Часто в коде встречаются избыточные проверки, которые защищают от "невозможных" ситуаций:
void process(Config* config) {
if (config == nullptr) { // хотя config всегда валиден!
log_error("Config is null");
return;
}
// ...
}
❗️Проблема: такие if загромождают код, снижают производительность и создают иллюзию безопасности.
✅ Решение: использовать assert для проверки инвариантов — условий, которые всегда должны выполняться в корректной программе:
void process(Config* config) {
assert(config != nullptr && "Config cannot be null");
// ...
}
💡 Почему это лучше:
• В релизе (NDEBUG) код assert полностью удаляется — нет накладных расходов
• В горячих циклах это может означать миллионы сэкономленных проверок
• Меньше размер исполняемого файла
• assert явно документирует предусловия функции
• Баг обнаруживается сразу в Debug, а не прячется за логами
👉 Статья
Библиотека C/C++ разработчика
#буст👍 12🤔 3❤ 1🥱 1👾 1
🐸 Подборка вакансий для C++-разработчиков за неделю
C developer — Удалёнка
Middle+ / Senior C++ developer — Удалёнка
Senior разработчик C++ в команду Core — Удалёнка
Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Удалёнка
Библиотека C/C++ разработчика
👍 3
Какое преимущество даёт connect() для UDP сокета?Anonymous voting
- Устанавливается надёжное соединение
- Ядро кеширует маршрут, меньше overhead на каждый send()
- Автоматическая ретрансмиссия потерянных пакетов
- Невозможно, connect() работает только с TCP
- Включается контроль порядка доставки
😁 2
Repost from TgId: 1465826763
Photo unavailableShow in Telegram
🐸 Библиотека Go-разработчика
#GoGiggle
😁 9
Repost from TgId: 1940255915
Сколько TCP пакетов будет отправлено (без задержек на приёмной стороне)?Anonymous voting
- 1 (все данные в одном пакете)
- Около 10-20 (группировка по таймеру)
- 100 (каждый байт в отдельном пакете)
- Зависит от MTU
- Зависит от размера TCP window
😁 2
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
🍖 Интересное:
• Красивое резюме = провал — статья о том почему могут игнорировать пезюме, даже если оно хорошее
• «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате — полезные рекомендации о том как просить зарплату повыше
😎 Полезное:
• std::partition — функция помогающая разделять данные по условию
• Как сократить бинарный код и не потерять нужную функциональность — статья об оптимизации кода с помощью флагов сборки
• Алокаторы — чек-лист о том какие есть аллокаторы в C++
🔥 Интересные проекты:
• cpp-httplib — кроссплатформенная HTTP/HTTPS-библиотека C++11, содержащая только заголовочные файлы
• Perfetto — набор SDK, демонов и инструментов с открытым исходным кодом, которые помогают реализовывать трассировку и профилирование
Библиотека C/C++ разработчика
#свежак
❤ 4👍 1
Repost from TgId: 1770516712
🍖 Какую тему будем разбирать на этой неделе?Anonymous voting
- Сети
- Алгоритмы с собеседований
- STL
- Оптимизация кода
- Всё что угодно только не UB
😁 3
00:51
Video unavailableShow in Telegram
Наконец-то неделя закончилась, можно расслабиться и послушать шансончика😎
Библиотека C/C++ разработчика
#развлекалово
#развлекалово мемы.mp412.98 MB
😁 13👾 3❤ 1
Photo unavailableShow in Telegram
🍖 «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате
Представь: ты на собеседовании мечты, и тут HR спрашивает про зарплату. Что скажешь? Называешь число первым или ждешь? Завышаешь или играешь честно? Мы собрали 9 работающих стратегий с конкретными примерами фраз — от «Открытой» до «Я никуда не тороплюсь». Выбирай свою и перестань продавать себя дешево.
👉 Статья
👍 3❤ 1
Photo unavailableShow in Telegram
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники
Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!
→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️
Всё! Теперь ты в игре.
👉 Сейчас или никогда!
🌚 2😁 1
🍬 Чек-лист: Allocators — контроль над памятью
STL позволяет полностью контролировать аллокацию памяти через allocators.
✏️ Зачем нужны:
✓ Pool allocators для объектов одного размера (быстрее malloc)
✓ Stack allocators для временных данных без обращения к куче
✓ Tracking allocators для профилирования утечек памяти
✓ Aligned allocators для SIMD-оптимизированных структур
✏️ Стандартные allocators:
✓ std::allocator — дефолтный, работает через new/delete
✓ std::pmr::monotonic_buffer_resource — аллокация из буфера
✓ std::pmr::unsynchronized_pool_resource для многократного переиспользования
✓ std::pmr::polymorphic_allocator для динамической смены стратегии
✏️ Создание кастомного:
✓ Реализуй allocate() и deallocate()
✓ Объяви value_type, size_type, difference_type
✓ Не забудь про rebind для типов внутри контейнера
✓ Сделай allocator stateless для оптимизаций
💡Как измерить результат:
Сравни количество malloc-вызовов через profiler до и после внедрения кастомного allocator. Цель — уменьшить на 50%+.
🍪 Факт:
В game dev кастомные allocators — стандарт. Они значительно ускоряют аллокацию по сравнению с malloc.
Библиотека C/C++ разработчика
#буст
👍 4🔥 2
Photo unavailableShow in Telegram
🍖 Как сократить бинарный код и не потерять нужную функциональность
В статье подробно показывают, как оптимизировать бинарный код C++-проекта, чтобы не потерять нужную функциональность, используя только сборочные флаги, правильную работу с шаблонами и альтернативы стандартным инструментам.
📕 Ключевые моменты статьи:
• грамотное применение флагов компилятора и линковки для сокращения бинаря
• замена
std::visit и std::variant на более экономичные паттерны
• уход от std::shared_ptr к unique_ptr ради уменьшения инстанциаций и поддержки чисто-сырого владения
Основной фокус — практические сценарии уменьшения итогового бинарного файла: что реально помогает, а от чего лучше отказаться, если не хотите усложнять архитектуру, ломать исключения и убирать RTTI.
👉 Статья
Библиотека C/C++ разработчика
#буст👍 2
Photo unavailableShow in Telegram
🎁 Конкурс от Proglib Academy!
Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro
Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.
Чтобы поучаствовать, нужно:
1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.
До 15 ноября, потом всё — поезд (и макбук) уйдёт.
👉 Участвовать в розыгрыше
😁 3❤ 1
Photo unavailableShow in Telegram
🧠 System Level Meetup: C++
📅 22 ноября 2025 года
🕚 11:00 — 22:00
📍 Москва, 2-й Кожуховский пр., 29, корп. 6 (МЦК, станция «ЗИЛ»)
🎟 Формат: онлайн и офлайн. Участие бесплатное, по предварительной регистрации.
Приглашаем C++ разработчиков и системных инженеров на System Level Meetup от YADRO. Поговорим о том, что происходит под капотом языка: как стандартные возможности превращаются в реальные оптимизации, как внедрять новейшие фичи без боли и что мешает производительности в больших производительных системах.
🔍 Что обсудим:
— оптимизации корутин на уровне компилятора: практика и нюансы;
— внедрение C++20 Modules в существующий проект: сложности и результаты;
— LRU Cache для высоконагруженных систем: проблемы конкурентного доступа;
— архитектура и разработка чекеров в clang-tidy;
— строки в C++: string_view, constinit и нюансы нуль-терминации;
— круглый стол: «AI-ассистенты в разработке на C++ — панацея или опасный костыль?».
🗣 Спикеры: Константин Невидин (Синтакор), Тимур Аммаев (YADRO), Илья Клементьев (YADRO), Никита Шубин (YADRO) и другие.
📌 Офлайн-гостей ждут демозона с оборудованием YADRO, технические активности, подарки и нетворкинг. Онлайн-участники смогут задавать вопросы в прямом эфире.
👉 Зарегистрируйтесь, чтобы получить ссылку на трансляцию или попасть на мероприятие офлайн.
😁 2
Photo unavailableShow in Telegram
Библиотека C/C++ разработчика
#развлекалово
😁 16❤ 2
🍿 std::partition — Разделение данных по условию
🔥 Проблема:
Разработчикам часто нужно разделить коллекцию на две группы: элементы, удовлетворяющие условию, и остальные. Ручная реализация требует дополнительных контейнеров или сложной логики с несколькими проходами по данным.
💡Решение:
Алгоритм
std::partition переупорядочивает элементы так, что все удовлетворяющие предикату оказываются в начале. Возвращает итератор на границу разделения.
✏️ Пример кода:
#include <algorithm>
#include <vector>
std::vector<int> numbers = {1, 5, 2, 8, 3, 9, 4, 7, 6};
// Разделяем на четные и нечетные
auto boundary = std::partition(numbers.begin(), numbers.end(),
[](int n) {
return n % 2 == 0; // Четные в начало
}
);
// Теперь numbers = {6, 4, 2, 8, 3, 9, 5, 7, 1}
// boundary указывает на первый нечетный элемент
// Обрабатываем только четные числа
for (auto it = numbers.begin(); it != boundary; ++it) {
*it *= 2; // Удваиваем четные
}
🍨 Преимущества:
• Эффективность: работает in-place без дополнительной памяти O(1)
• Скорость: линейная сложность O(n) за один проход
• Стабильность: существует std::stable_partition для сохранения порядка
• Универсальность: подходит для любых типов данных с произвольным предикатом
Библиотека C/C++ разработчика
#буст🔥 14👍 5❤ 1
Photo unavailableShow in Telegram
Надоело ломать master случайным пушем? Есть решение. 😉
Разработчики на C/C++ оценят: SourceCraft не только поддерживает автодополнение и умную навигацию для плюсов, но и добавил фичи для безопасной разработки. Например, сканирование уязвимостей и секретов прямо при написании кода. 🛡️
А ещё у них есть «политики веток», которые защищают master от случайных коммитов — то, чего часто не хватает опенсорсным репозиториям. Интеграция с GitHub Actions и Yandex Cloud упрощает сборку и деплой C++-проектов. Похоже, можно немного выдохнуть за стабильность релизов. 👍
❤ 2👍 2
