Новое Распределяем каналы MAX по категориям и территориям. Читать новость
Открытый канал ID 70921677709334

Андрей Воробьев /* andreivorobev.su */

Личный журнал без конкретной тематики.
Автор - Андрей Воробьев (email: av@andrei-vorobev.su ), оригинал блога на сайте ( http://andreivorobev.su ).

Россия
Открыть в MAX

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

Краткий обзор полезных C++ идиом (из вебинара PVS: "Каждая идиома когда-то была проблемой")

На обеде "полистал" видео из вебинара PVS Studio: "Каждая идиома когда-то была проблемой" [0] (на скорости 1.75x вполне нормально).

Первая мысль по ходу просмотра: какой идиот придумал такой формат (видео, без содержания и без таймкодов) для материала с техническим уклоном?

Вторая мысль: 2 часа видео, даже на 1.75x - кошмар! Хорошо, что сейчас вторая половина 2026 и можно воспользоваться нейросетями.

Через Гигачат получил краткий пересказ-содержание с таймкодами [1], вот в таком виде с этим техническим материалом можно работать и потреблять интересные темы из него.

Судя по темам и той части видео, что я посмотрел - этот вебинар как раз то что надо для изучающих ЯП C++, это даст шанс мне не вляпаться в кучу C++-проблем, темы обсуждаются вполне общие (хотя на видео постоянно упоминается про разработку игр, это можно просто игнорировать).

=== === ===

Дублирую здесь краткое содержание вебинара (по таймкодам), которое сделал Гигачат [1]:

Вступление и цель вебинара

00:12–02:53: Приветствие. Спикеры — Александра Уварова (PVS-Studio) и Сергей Кушниренко (разработчик игровых движков). Тема: реальные ошибки в коде на C++ из открытых проектов, анализ с помощью статического анализа, разбор идиом для улучшения кода.

О PVS-Studio и анализе open-source проектов

02:46–03:57: Описание PVS-Studio, её роли в поиске ошибок, статистика по открытым проектам (более 17 тыс. найденных ошибок).

Примеры реальных проблем управления ресурсами

04:09–06:08: Пример утечки файла (DPTK), проблема двойного освобождения вектора (Telegram). Причина — ручное управление ресурсами.

RAII и его применение в геймдеве

06:21–10:33: Объяснение RAII (Resource Acquisition Is Initialization): история термина, как помогает избежать утечек ресурсов. Примеры использования в играх: стриминг, биндинг текстур, откат ненужных данных.

ScopeGuard и отложенное освобождение ресурсов

10:39–14:14: ScopeGuard — инструмент для автоматизации логики очистки при выходе из блока. В геймдеве часто используют списки отложенных действий, чтобы не снижать производительность горячего цикла.

Умные указатели (smart pointers) и их проблемы

22:00–27:05: Появление shared_ptr, unique_ptr после C++11; почему auto_ptr был неудачным экспериментом. Проблемы производительности и накладные расходы у shared_ptr. Особенности применения умных указателей в быстром коде игр.

Проблемы с циклическими ссылками и raw-приемами

27:00–28:50: Циклы ссылок между объектами приводят к утечкам памяти. Избегайте явного получения сырого указателя из shared_ptr.

Пример ошибки с типизацией smart pointer

28:20–29:11: Ошибка в Chromium: неправильный тип умного указателя приводит к неопределённому поведению при удалении массива через обычный delete.

Forward declaration и необходимость явного деструктора

29:34–32:26: При использовании forward-declaration важно явно объявлять деструктор класса и реализовывать его в .cpp-файле, иначе компилятор создаст некорректную реализацию удаления объекта.

Опасности неверного возврата ссылок

32:40–36:12: Возвращение ссылки на временный объект вызывает неопределённое поведение. Правильное решение — избегать лишних оптимизаций вручную или использовать copy elision.

Move-семантика и Resource Return

36:30–44:06: До C++11 отсутствовала семантика перемещения объектов. Теперь компиляторы могут перемещать объекты без копирования, что особенно полезно для строк, массивов, сложных структур. Обсуждаются нюансы реализации move-конструкции и возможные подводные камни.

Правила трёх/пяти функций для классов

52:16–58:12: Почему нужно реализовать все специальные функции класса (конструкторы копирования/перемещения, операторы присваивания, деструктор). Нарушение правил ведёт к ошибкам владения памятью и утечкам.

…

Читать на сайте: http://andreivorobev.su/2026/brief-overview-useful-cpp-idioms.html
Просмотры: 597
Перейти в пост Открыть в MAX Сообщить о неточности
Странная ситуация с "Касперский менеджер паролей"

29 августа сам менеджер паролей [0] мне наспамил в смартфоне 3 уведомления о необходимости обновиться, я им давненько уже пользуюсь и раньше спама от программы не замечал (программа просто хорошо работала).

В Русторе в релизных заметках у них указано к актуальному обновлению:

9.2.117.28 Дата: 27.08.2026 Эта версия включает несколько важных изменений, которые связаны с устранением неполадок, отмеченных в отзывах наших пользователей. С вашей помощью мы становимся лучше!

Мои мысли по такой странной ситуации:
1. Появился эффективный маркетолог и это просто спам посвящённый выходу новой версии.
2. В менеджере паролей была мега-уязвимость и спамом толкают к быстрому обновлению пользователей.
3. В менеджере паролей была серьёзная ошибка связанная с шифрованием данных и спамом толкают к быстрому обновлению пользователей.

=== === ===

Изучая чужие отзывы в Русторе наткнулся на интересную инфу о региональных ценах на менеджер паролей: оказывается, в Турции годовая подписка стоит примерно 120 рублей в год (а у нас - 1 500 рублей). У нас дороже, чем в Турции в 10 раз, вот это у меня бомбит!

Региональные цены - это не новость, но, блин, почему у нас дороже в 10 раз, чем в Турции? Я бы ещё понял такую разницу в цене на программу, например, для Афганистана, но у Турции-то всё вполне нормально с экономикой, они там не голодают.

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

=== === ===

[0] https://www.rustore.ru/catalog/app/com.kaspersky.passwordmanager

Читать на сайте: http://andreivorobev.su/2026/kaspersky-password-manager.html
Просмотры: 1 033
Перейти в пост Открыть в MAX Сообщить о неточности
Простой способ получения chat_id для MAX-канала

Самый простой способ получить chat_id для любого канала в MAX - в обычном браузере открыть веб-версию MAX (https://web.max.ru/), затем там открыть канал и из urlbar браузера скопировать ссылку, path-часть из ссылки и будет требуемым chat_id канала.

Пример для моего канала https://max.ru/channel_av: открыв его в веб-версии получим ссылку https://web.max.ru/-70921677709334, path-часть этой ссылки == -70921677709334, вот это число (включая знак минус) и есть chat_id.

Читать на сайте: http://andreivorobev.su/2026/get-chatid-max-channel.html
Просмотры: 654
Перейти в пост Открыть в MAX Сообщить о неточности
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Андрей Воробьев /* andreivorobev.su */» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти