😱 Senders/Receivers в C++26: от теории к практике
💡 Разбираемся с новой моделью Senders/Receivers в C++26, которая решает эти и другие проблемы традиционного асинхронного программирования.
❗ Ключевые моменты статьи:
- единый API для асинхронности и параллелизма, устраняющий callback hell
- декларативные конвейеры с помощью операторов then, when_all, upon_error
- встроенная обработка ошибок и контроль отмены
- интеграция с корутинами и параллельными алгоритмами
Автор показывает, как новый подход делает код более читаемым и поддерживаемым с помощью абстракций Scheduler, Sender и Receiver, а также демонстрирует практические примеры с библиотекой NVIDIA stdexec.
Материал будет особенно полезен C++ разработчикам, которые регулярно пишут параллельный и асинхронный код и хотят познакомиться с новыми возможностями стандарта.
Новый стандарт выйдет в 2026 году, но уже сейчас можно экспериментировать с референсными реализациями. Возможно, это именно тот инструмент, который избавит нас от callback hell и сделает ваш асинхронный код проще и надёжнее.
Библиотека C/C++ разработчика
💡 Разбираемся с новой моделью Senders/Receivers в C++26, которая решает эти и другие проблемы традиционного асинхронного программирования.
❗ Ключевые моменты статьи:
- единый API для асинхронности и параллелизма, устраняющий callback hell
- декларативные конвейеры с помощью операторов then, when_all, upon_error
- встроенная обработка ошибок и контроль отмены
- интеграция с корутинами и параллельными алгоритмами
Автор показывает, как новый подход делает код более читаемым и поддерживаемым с помощью абстракций Scheduler, Sender и Receiver, а также демонстрирует практические примеры с библиотекой NVIDIA stdexec.
Материал будет особенно полезен C++ разработчикам, которые регулярно пишут параллельный и асинхронный код и хотят познакомиться с новыми возможностями стандарта.
Новый стандарт выйдет в 2026 году, но уже сейчас можно экспериментировать с референсными реализациями. Возможно, это именно тот инструмент, который избавит нас от callback hell и сделает ваш асинхронный код проще и надёжнее.
Библиотека C/C++ разработчика
👍5
Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.
Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!
1. Статьи об сборки C++ кода
2. Cute Headers — коллекция минималистичных и самодостаточных библиотек на Си!
3. Почему pmr::vector ломает ваш C++ код
4. Итераторы в C++ как указатели — это зло
5. Разбираем, как в Quake решали проблему избыточного рендеринга с помощью порталов и предварительных вычислений.
6. Книги по базам данных, которые стоит прочитать в 2025 году
7. Операционная система в 1000 строк
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💃 Как языки программирования выглядят в стиле Гибли
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib
👍10🥱4🥰1😁1
Что произойдёт при использовании вариативных шаблонов?
Anonymous Quiz
6%
1
54%
3
23%
Ошибка компиляции
17%
Неопределённое поведение
👍2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💀 Джуны: game over или новый уровень сложности?
Рекрутеры ищут только сеньоров, AI отбирает хлеб у начинающих, а рынок переполнен выпускниками буткемпов.
➡️ Разбираемся, действительно ли наступил конец эпохи джуниоров и как молодым специалистам адаптироваться к новым реалиям.
🐸 Библиотека программиста
Рекрутеры ищут только сеньоров, AI отбирает хлеб у начинающих, а рынок переполнен выпускниками буткемпов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔1
💡Автор статьи погружается в создание текстовых приключенческих игр на языке C, объясняя преимущества инкрементальной разработки и особенности программирования в стиле «close to the metal».
❗ Ключевые моменты статьи:
• почему C может быть интересным выбором для текстовых игр
• инкрементальный подход к разработке
• значение хорошего текстового описания в приключенческих играх
Основной фокус — практическое руководство для тех, кто хочет изучать программирование через создание простых, но функциональных игр, без использования специализированных инструментов разработки.
Особенно полезно для программистов, знакомых с основами C и желающих применить свои знания в увлекательном проекте, или для тех, кто интересуется историей игровой разработки.
Вы узнаете, что даже в эпоху сложных 3D-игр, создание текстовых приключений с нуля может быть образовательным, увлекательным и развивающим опытом, позволяющим лучше понять основы программирования.
Библиотека C/C++ разработчика
❗ Ключевые моменты статьи:
• почему C может быть интересным выбором для текстовых игр
• инкрементальный подход к разработке
• значение хорошего текстового описания в приключенческих играх
Основной фокус — практическое руководство для тех, кто хочет изучать программирование через создание простых, но функциональных игр, без использования специализированных инструментов разработки.
Особенно полезно для программистов, знакомых с основами C и желающих применить свои знания в увлекательном проекте, или для тех, кто интересуется историей игровой разработки.
Вы узнаете, что даже в эпоху сложных 3D-игр, создание текстовых приключений с нуля может быть образовательным, увлекательным и развивающим опытом, позволяющим лучше понять основы программирования.
Библиотека C/C++ разработчика
🔥4👍2
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
❤1
🧠 Метапрограммирование с Boost: магия времени компиляции
Метапрограммирование в C++ — это написание кода, который будет выполняться на этапе компиляции.
В Boost есть несколько библиотек упрощающих эту задачу:
🧩 Boost.MPL
Библиотека для манипуляций с типами во время компиляции.
🧩 Boost.Type_traits
Определение и модификация свойств типов.
🧩 Boost.Hana
Современное метапрограммирование для C++14/17.
Метапрограммирование помогает писать более обобщенный код, выполнять проверки на этапе компиляции и оптимизировать производительность!
Библиотека C/C++ разработчика #буст
Метапрограммирование в C++ — это написание кода, который будет выполняться на этапе компиляции.
В Boost есть несколько библиотек упрощающих эту задачу:
🧩 Boost.MPL
Библиотека для манипуляций с типами во время компиляции.
// Вычисление факториала при компиляции
using result = mpl::int_<factorial<5>::value>; // = 120
🧩 Boost.Type_traits
Определение и модификация свойств типов.
// Проверка, является ли тип целочисленным
static_assert(boost::is_integral<int>::value, "Must be integral");
🧩 Boost.Hana
Современное метапрограммирование для C++14/17.
// Преобразование кортежа типов в массив строк
constexpr auto types = hana::tuple_t<int, char, double>;
constexpr auto names = hana::transform(types, hana::typeid_);
Метапрограммирование помогает писать более обобщенный код, выполнять проверки на этапе компиляции и оптимизировать производительность!
Библиотека C/C++ разработчика #буст
👍3🤩3
Forwarded from Proglib.academy | IT-курсы
🤯 Как простая задачка поставила в тупик программистов
На собеседовании задали простой вопрос:
Эта задачка превратилась в одно из самых обсуждаемых тем на Stack Overflow.
➡️ Что внутри статьи:
— Как найти 1 пропущенное число (формула + код).
— Как находить 2 и больше пропущенных чисел (оптимальные алгоритмы).
— Алгоритм Мински–Трахтенберга–Зиппеля.
— Симметрические многочлены и тождества Ньютона (и зачем они нужны).
— Примеры кода на Python для всех случаев.
Если хочешь понять, как красиво решать задачи уровня собесов — обязательно прочитай статью.
👉 Переходи к статье
🔵 Чтобы получить оффер-мечты в Data Science, забирайте наш курс → «Математика для Data Science»
Proglib Academy #буст
На собеседовании задали простой вопрос:
«В мешке числа от 1 до 100. Одно пропало. Как найти его? А если пропали два числа? Три? Или вообще k чисел?»
Эта задачка превратилась в одно из самых обсуждаемых тем на Stack Overflow.
— Как найти 1 пропущенное число (формула + код).
— Как находить 2 и больше пропущенных чисел (оптимальные алгоритмы).
— Алгоритм Мински–Трахтенберга–Зиппеля.
— Симметрические многочлены и тождества Ньютона (и зачем они нужны).
— Примеры кода на Python для всех случаев.
Если хочешь понять, как красиво решать задачи уровня собесов — обязательно прочитай статью.
👉 Переходи к статье
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
🧙♂️ Атрибуты в современном C++
В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.
Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸
Библиотека C/C++ разработчика #буст
В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.
[[nodiscard]] int getValue() { return 42; }
void test() {
getValue(); // Предупреждение: результат функции не используется
}
class [[deprecated("Используйте новый API")]] OldClass {};
[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }
// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}
Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸
Библиотека C/C++ разработчика #буст
🔥14👍3👾2
🔥 Переходим на C++26: как собрать и настроить GCC в Ubuntu
💡 С выходом GCC 15.1.0 многие ключевые возможности C++26 уже доступны для использования, и при этом вы можете настроить этот компилятор даже на Ubuntu 24.04 LTS.
❗ Ключевые моменты:
• Pack Indexing — доступ к элементам parameter pack по индексу
• Constexpr Placement New — размещающее выделение памяти в constexpr контекстах
• Variadic Friends — объявление множества классов друзьями через шаблонный parameter pack
• Deleted Function with Reason — возможность указать причину удаления функции
Статья подробно описывает как правильно собрать и настроить GCC 15.1 с нуля, а также содержит практические примеры кода для каждой новой фичи C++26, поддерживаемой в этой версии компилятора.
Особенно полезно для C++ разработчиков, которые хотят быть на острие прогресса и уже сейчас начать экспериментировать с будущими возможностями языка.
Библиотека C/C++ разработчика
А вы всё ещё ждёте, когда новые фичи C++26 появятся в вашем компиляторе?
💡 С выходом GCC 15.1.0 многие ключевые возможности C++26 уже доступны для использования, и при этом вы можете настроить этот компилятор даже на Ubuntu 24.04 LTS.
❗ Ключевые моменты:
• Pack Indexing — доступ к элементам parameter pack по индексу
• Constexpr Placement New — размещающее выделение памяти в constexpr контекстах
• Variadic Friends — объявление множества классов друзьями через шаблонный parameter pack
• Deleted Function with Reason — возможность указать причину удаления функции
Статья подробно описывает как правильно собрать и настроить GCC 15.1 с нуля, а также содержит практические примеры кода для каждой новой фичи C++26, поддерживаемой в этой версии компилятора.
Особенно полезно для C++ разработчиков, которые хотят быть на острие прогресса и уже сейчас начать экспериментировать с будущими возможностями языка.
Библиотека C/C++ разработчика
👍8😁5
Forwarded from Книги для программистов
📖 Обзор книги «C++ Memory Management: Write Leaner and Safer C++ Code Using Proven Memory-Management Techniques»
Направление: #proglib_cpp_memory
Уровень: #proglib_intermediate
Это практическое руководство по управлению памятью в C++, написанное Патрисом Руа — участником комитета стандартизации ISO C++.
Книга предназначена для разработчиков, стремящихся углубить свои знания в области эффективного и безопасного управления памятью в C++-программах.
🔹 Основные темы
— Модель объектов в C++ и управление временем жизни
— Использование и создание умных указателей
— Перегрузка операторов выделения памяти
— Разработка собственных контейнеров и аллокаторов
— Механизмы управления памятью: арены, отложенное освобождение
— Реализация детекторов утечек памяти
— Современные практики и стандарты C++
💬 Что говорят читатели
➕ Плюсы
— Автор — участник комитета ISO C++, что обеспечивает актуальность и глубину материала
— Практические примеры и пошаговые инструкции
— Подходит для разработчиков, работающих с системами реального времени, встроенными системами и играми
➖ Минусы
— Требуется базовое понимание C++ и концепций управления памятью
🔗 Скачать книгу
🐸 Книги для программистов
Направление: #proglib_cpp_memory
Уровень: #proglib_intermediate
Это практическое руководство по управлению памятью в C++, написанное Патрисом Руа — участником комитета стандартизации ISO C++.
Книга предназначена для разработчиков, стремящихся углубить свои знания в области эффективного и безопасного управления памятью в C++-программах.
🔹 Основные темы
— Модель объектов в C++ и управление временем жизни
— Использование и создание умных указателей
— Перегрузка операторов выделения памяти
— Разработка собственных контейнеров и аллокаторов
— Механизмы управления памятью: арены, отложенное освобождение
— Реализация детекторов утечек памяти
— Современные практики и стандарты C++
Эта книга полна подробных знаний о C++ и управлении памятью. Отличное чтение
Мне особенно понравилась часть о написании обобщённых контейнеров. Это определённо превзошло мои ожидания!
В C++ действительно нужно управлять памятью, и то, как Патрис объясняет, как это делать правильно, очень ценно
➕ Плюсы
— Автор — участник комитета ISO C++, что обеспечивает актуальность и глубину материала
— Практические примеры и пошаговые инструкции
— Подходит для разработчиков, работающих с системами реального времени, встроенными системами и играми
➖ Минусы
— Требуется базовое понимание C++ и концепций управления памятью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Рынок IT-специалистов в Европе является одним из самых динамичных и конкурентных в мире. Западная и Восточная Европа представляют собой два уникальных «региона» с разными экономическими, культурными и образовательными особенностями, которые влияют на процессы найма IT-специалистов.
Цель данной статьи — провести сравнительный анализ подходов к найму IT-специалистов в этих европейских зонах, выделить ключевые различия и сходства.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1😁1
🚀 Jank — функциональный язык для любителей Lisp и Clojure!
🔹 Что такое Jank?
Jank — это Lisp-подобный язык программирования, вдохновлённый Clojure, но с компиляцией в нативный код через LLVM. Он сочетает в себе мощь функционального программирования и производительность C++.
🔹 Почему стоит попробовать?
✅ Близок к Clojure — если вы уже знакомы с Clojure, освоите Jank быстро
✅ Нативная компиляция — LLVM бэкенд даёт хорошую скорость
✅ Взаимодействие с C++ — можно легко интегрировать существующие библиотеки
Jank стремится быть хорошо совместимым с Clojure. В то время как хостом Clojure по умолчанию является JVM, а взаимодействие осуществляется с Java, хостом Jank является LLVM, а взаимодействие осуществляется с C++.
👉 Github
Библиотека C/C++ разработчика
🔹 Что такое Jank?
Jank — это Lisp-подобный язык программирования, вдохновлённый Clojure, но с компиляцией в нативный код через LLVM. Он сочетает в себе мощь функционального программирования и производительность C++.
🔹 Почему стоит попробовать?
✅ Близок к Clojure — если вы уже знакомы с Clojure, освоите Jank быстро
✅ Нативная компиляция — LLVM бэкенд даёт хорошую скорость
✅ Взаимодействие с C++ — можно легко интегрировать существующие библиотеки
Jank стремится быть хорошо совместимым с Clojure. В то время как хостом Clojure по умолчанию является JVM, а взаимодействие осуществляется с Java, хостом Jank является LLVM, а взаимодействие осуществляется с C++.
👉 Github
Библиотека C/C++ разработчика
❤3👍1🤩1🌚1