Правильная обработка ошибок — разница между надёжным и хрупким кодом.
✓ Бросание исключений по значению, ловля по ссылке
✓ Использование стандартных исключений STL где возможно
✓ RAII для автоматической очистки при исключениях
✓ Документирование исключений в комментариях
✓ std::optional для функций, которые могут не вернуть значение
✓ std::expected (C++23) для возврата ошибок
✓ Error codes для низкоуровневого кода
✓ Паттерн Result<T, Error> для функционального стиля
✓ Функции помечены как noexcept где гарантируется
✓ Strong exception гарантия в критичных местах
✓ Правильная обработка в деструкторах (never throw)
Библиотека C/C++ разработчика
#код_ревью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8😁1
🐸 Подборка вакансий для C++-разработчиков за неделю
Программист Embedded C++ — от 200 000 и до 300 000 ₽ Офис (Санкт-Петербург)
Системный программист C++ — от 180 000 и до 350 000 ₽ Офис (Екатеринбург)
Разработчик C++/Rust (SDN dataplane, DPDK/DOCA API) — от 300 000 и до 600 000 ₽ Офис/удаленно/гибрид (Москва)
C++ Developer — от 300 000 ₽ Удаленно/офис
C++ developer [Middle] — до 350 000 ₽ Удаленно/Офис (Омск, Новосибирск, Санкт-Петербург)
C++ / Qt Разработчик — до 370 000 ₽ Офис (Республика Татарстан, ОЭЗ «Алабуга»)
Библиотека C/C++ разработчика
Программист Embedded C++ — от 200 000 и до 300 000 ₽ Офис (Санкт-Петербург)
Системный программист C++ — от 180 000 и до 350 000 ₽ Офис (Екатеринбург)
Разработчик C++/Rust (SDN dataplane, DPDK/DOCA API) — от 300 000 и до 600 000 ₽ Офис/удаленно/гибрид (Москва)
C++ Developer — от 300 000 ₽ Удаленно/офис
C++ developer [Middle] — до 350 000 ₽ Удаленно/Офис (Омск, Новосибирск, Санкт-Петербург)
C++ / Qt Разработчик — до 370 000 ₽ Офис (Республика Татарстан, ОЭЗ «Алабуга»)
Библиотека C/C++ разработчика
👍2🔥1
🤫 Курс «ИИ-агенты для DS-специалистов»
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
❤1😁1
Длинные или короткие имена функций/переменных?
Anonymous Poll
41%
Длинные и описательные - самодокументируемый код
15%
Короткие и ёмкие - меньше печатать
20%
Зависит от области видимости
4%
Как в стандартной библиотеке
20%
Главное - не использовать однобуквенные
😁1
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• std::type_identity — предотвращение template argument deduction
• Pointer Tagging в C++ — искусство упаковки битов в указатель
• Какой алгоритм поиска выбрать? — варианты алгоритмов для решения задач по поиску элементов
• Error Handling в C++ — чек-лист для проверки кода на правильность обработки ошибок
🔥 Интересные проекты:
• Sunshine — игровой стриминговый сервис для Moonlight
• Deskflow — бесплатное приложение с открытым исходным кодом для совместного использования клавиатуры и мыши
• Abseil — коллекция C++-кода с открытым исходным кодом (совместимая с C++17), предназначенная для расширения стандартной библиотеки C++.
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• std::type_identity — предотвращение template argument deduction
• Pointer Tagging в C++ — искусство упаковки битов в указатель
• Какой алгоритм поиска выбрать? — варианты алгоритмов для решения задач по поиску элементов
• Error Handling в C++ — чек-лист для проверки кода на правильность обработки ошибок
🔥 Интересные проекты:
• Sunshine — игровой стриминговый сервис для Moonlight
• Deskflow — бесплатное приложение с открытым исходным кодом для совместного использования клавиатуры и мыши
• Abseil — коллекция C++-кода с открытым исходным кодом (совместимая с C++17), предназначенная для расширения стандартной библиотеки C++.
Библиотека C/C++ разработчика
#свежак
👍2
🚀 Всё о курсе «ИИ-агенты для DS-специалистов»
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).
🔗 Описание программы и регистрация
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо
🔗 Описание программы и регистрация
😁1
🔥 Сегодня последний день скидки!
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокодdatarascals ).
🔗 Записаться на курс
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод
🔗 Записаться на курс
😁4❤1
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет программа?
Anonymous Quiz
22%
5 5 5
42%
0 5 0
21%
Undefined behavior
10%
0 5 и непредсказуемое значение
6%
Ошибка компиляции
😁5🥱1👾1
Если устали помнить порядок полей в структурах и случайно их путать, то
designated initializers
могут решить эту проблему.Designated initializers
позволяют инициализировать структуры по именам полей, делая код более читаемым и безопасным.struct Point {
int x, y, z;
};
Point p{.x = 10, .y = 20, .z = 30};
struct Config {
std::string host = "localhost";
int port = 8080;
bool ssl_enabled = false;
int timeout_ms = 5000;
};
// Указываем только нужные поля
Config cfg{
.host = "example.com",
.ssl_enabled = true
}; // port и timeout_ms получат значения по умолчанию
struct Database {
std::string connection_string;
int max_connections = 10;
};
struct AppConfig {
Database db;
std::string log_level = "INFO";
};
AppConfig config{
.db = {.connection_string = "postgresql://...", .max_connections = 20},
.log_level = "DEBUG"
};
struct DrawOptions {
bool fill = false;
int line_width = 1;
std::string color = "black";
float opacity = 1.0f;
};
void draw_rectangle(int x, int y, int w, int h, DrawOptions opts = {}) {
// implementation
}
// Явно указываем только нужные опции
draw_rectangle(10, 20, 100, 50, {
.fill = true,
.color = "red",
.opacity = 0.8f
});
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
😁2
std::variant (C++17)
— это union, который знает свой текущий тип и гарантирует безопасность.// C-style union — опасно!
union Data {
int i;
double d;
char* str;
};
Data data;
data.i = 42;
std::cout << data.d; // ❌ Читаем не то, что записали
std::variant<int, double, std::string> data;
data = 42; // Хранит int
data = 3.14; // Теперь хранит double
data = "hello"; // Теперь хранит string
// Безопасное получение значения
if (auto* val = std::get_if<int>(&data)) {
std::cout << "int: " << *val << '\n';
}
std::variant<int, std::string, double> v;
// Установка значения
v = 100;
v = "text";
v.emplace<std::string>("constructed in place");
// Проверка текущего типа
std::cout << v.index(); // Индекс типа: 0, 1, или 2
if (std::holds_alternative<int>(v)) {
std::cout << "Содержит int\n";
}
// Получение значения
try {
auto val = std::get<int>(v); // Бросит std::bad_variant_access
} catch (const std::bad_variant_access&) {
std::cerr << "Неверный тип!\n";
}
auto* ptr = std::get_if<std::string>(&v); // nullptr если не string
std::variant<int, double, std::string> v = 42;
// Обработка всех возможных типов
std::visit([](auto&& arg) {
using T = std::decay_t<decltype(arg)>;
if constexpr (std::is_same_v<T, int>) {
std::cout << "int: " << arg << '\n';
} else if constexpr (std::is_same_v<T, double>) {
std::cout << "double: " << arg << '\n';
} else {
std::cout << "string: " << arg << '\n';
}
}, v);
cpptemplate<class... Ts>
struct overloaded : Ts... {
using Ts::operator()...;
};
template<class... Ts>
overloaded(Ts...) -> overloaded<Ts...>;
// Элегантная обработка!
std::visit(overloaded{
[](int i) { std::cout << "int: " << i << '\n'; },
[](double d) { std::cout << "double: " << d << '\n'; },
[](const std::string& s) { std::cout << "string: " << s << '\n'; }
}, v);
template<typename T>
using Result = std::variant<T, std::string>; // Value или Error
Result<int> divide(int a, int b) {
if (b == 0) return "Division by zero";
return a / b;
}
auto result = divide(10, 0);
std::visit(overloaded{
[](int value) { std::cout << "Result: " << value << '\n'; },
[](const std::string& err) { std::cerr << "Error: " << err << '\n'; }
}, result);
std::variant
никогда не пустой (кроме исключительных ситуаций). Первый тип должен быть конструируемым по умолчанию.Используйте
std::variant
когда набор типов известен. std::any
— для действительно произвольных типов.Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤2
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
😁1
🔍 FuzzTest: Фреймворк для фаззинг-тестирования в C++
🐼 Что это такое?
🍴 Почему стоит использовать?
✅ Простой синтаксис
✅ Интеграция с GoogleTest
✅ Умная генерация данных — автоматически создаёт осмысленные входные данные для сложных типов: строк, контейнеров, структур
✏️ Пример использования
‼️ Когда использовать?
✅ Парсеры и обработчики пользовательского ввода
✅ Сериализация/десериализация
✅ Криптографические функции
✅ Работа со сложными структурами данных
✅ API, которые должны быть устойчивы к любым входным данным
💌 Github
Библиотека C/C++ разработчика
FuzzTest
(от Google) — это библиотека для фаззинг-тестирования C++ кода.FuzzTest
— это фреймворк, который автоматически генерирует тысячи тестовых случаев для вашего кода, пытаясь найти крайние случаи, утечки памяти, крэши и другие баги. В отличие от классических unit-тестов, где вы вручную задаёте входные данные, фаззер делает это за вас.void MyTest(int x, const std::string& s) {
EXPECT_TRUE(MyFunction(x, s));
}
FUZZ_TEST(MySuite, MyTest);
#include "fuzztest/fuzztest.h"
void ParseUrlTest(const std::string& url) {
auto result = ParseUrl(url);
// Проверяем, что не крашится на любых входных данных
EXPECT_TRUE(result.has_value() || !result.has_value());
}
FUZZ_TEST(UrlParser, ParseUrlTest)
.WithDomains(fuzztest::Arbitrary<std::string>());
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔2
Forwarded from Библиотека Go-разработчика | Golang
Курсовую по программированию легко заказать онлайн — сервисов действительно много.
Проблема в том, что не все они работают честно: бывает низкое качество, завышенные цены или несоблюдение сроков.
По ссылке — подборка площадок, которые в 2025 году показали стабильный результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3😁1
🔍 Промпт: Регулярные выражения в C++
Работаете с регулярками в C++ и запутались в std::regex? Есть простой лайфхак!
✏️ Используйте промпт
❗️ Пример использования
Запрос:
Получаем:
🔥 Что можно запрашивать
✅ Валидация email, телефонов, URL
✅ Извлечение данных из строк
✅ Поиск паттернов в логах
✅ Парсинг форматов файлов
✅ Проверка форматов дат/времени
Библиотека C/C++ разработчика
#буст
Работаете с регулярками в C++ и запутались в std::regex? Есть простой лайфхак!
Write a regular expression that matches / Write a RegEx pattern for:
[ваше описание]
Запрос:
Email addresses with validation
Получаем:
std::regex email_pattern(
R"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
);
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
👾 AI-агенты — настоящее, о котором все говорят!
Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».
Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.
На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.
🎓 В рамках курса вы научитесь:
1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.
🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».
Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.
На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.
🎓 В рамках курса вы научитесь:
1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.
🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
🔥1🥱1🌚1