CRTP должен умереть? АйТир Лист идиом и фичей C++: от худших к лучшим

C++ — язык с долгой памятью. В нём до сих пор живут идиомы и приёмы, которые когда-то спасали разработчиков, а сегодня нередко мешают писать безопасный, быстрый и поддерживаемый код. Мы продолжаем использовать макросы, CRTP или iostream «по привычке», не всегда задумываясь о цене — сложности поддержки, скрытых багах, просадках производительности и времени команды. Разобраться, что в современном C++ действительно стоит брать в прод, а что пора оставить в прошлом, — важная задача для инженера, который не хочет тащить legacy в 2026 год. Привет, Хабр! Недавно мы запустили шоу «АйТир Лист». В каждом выпуске берём одну тему из мира разработки и раскладываем её по тир-листу — от FAIL до GOD. В первом выпуске разбирали open source для фронтенда , а во втором выпуске — обсудим непростую тему фич и идиом С++. Приглашённые эксперты — Антон Полухин, эксперт-разработчик C++ платформы городских сервисов Яндекса, и Даниил Черепанов, архитектор редакторов МойОфис. Будет субъективно, местами провокационно и точно полезно — чтобы вы посмотрели на привычные инструменты свежим взглядом и осознанно выбирали, на чём писать следующий проект.

https://habr.com/ru/companies/ncloudtech/articles/982972/

#c++ #мойофис #crtp #namespaces #лямбды #raii #исключения #variadic_templates #модули #pimpl

CRTP должен умереть? АйТир Лист идиом и фичей C++: от худших к лучшим

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

Хабр

[Перевод] RAII в современном C++: как правильно организовать автоматическое управление ресурсами

Привет, Хаброжители! Сегодня мы приготовили для вас перевод статьи про RAII в современном C++. Вы узнаете как правильно организовать автоматическое управление ресурсами. В современном C++ управление ресурсами — это ключевая составляющая корректности программы, затрагивающая память, дескрипторы файлов, блокировки и все внешние системы, с которыми приходится взаимодействовать вашему коду. Начинающие программисты часто полагают, что при работе с C++ требуется активно очищать память вручную, пользуясь командами new, delete, malloc или free. Но на самом деле в современном C++ эта работа строится существенно иначе.

https://habr.com/ru/companies/piter/articles/977658/

#c++ #raii #автоматическое_управление #управление_ресурсами

RAII в современном C++: как правильно организовать автоматическое управление ресурсами

Привет, Хаброжители! 1. Введение В современном C++ управление ресурсами — это ключевая составляющая корректности программы, затрагивающая память, дескрипторы файлов, блокировки и все внешние системы,...

Хабр
🌘 C++ RAII 與錯誤處理的兩難:從 Bjarne 的範例談起
➤ 探索 C++ RAII 與錯誤處理的精妙平衡
https://marler8997.github.io/blog/bjarne-fix-your-language/
本文深入探討 C++ 中資源獲取即初始化(RAII)與例外處理機制在實際應用中的潛在問題,特別是當操作可能失敗時。作者以 Bjarne Stroustrup 展示的 C++ 檔案開啟範例為引,說明 RAII 雖能確保資源釋放,但在處理檔案開啟失敗等常規錯誤時,若依賴例外處理,可能導致訊息不準確、例外捕獲不完全,以及資源獲取在第二次初始化(RAISI)的複雜性。文章對比了 C 語言以返回值處理錯誤的直觀性,並提出瞭解決 C++ RAII 相關錯誤處理問題的兩種方法:一是在建構子外進行可能失敗的操作,二是採用類似 `std::error_code` 的「側通道」機制,以期在保留 RAII 優勢的同時,提升錯誤處理的清晰度和可靠性。
+ 這篇文章讓我對 C++ 的例外處理有了更深的認識,尤其是在檔案操作
#C++ #RAII #錯誤處理 #程式設計
Welcome to Johnny's World

Inside of an actor, we can't assume `deinit` is isolated. If anything, we ought to assume the opposite.

Since there's no easy way to express "release all owned resources", the actual change I'm being nudged towards is: express ONLY resource ownership with a new type. There, you can use deinit.

This is #RAII from C++, but in Swift.

Modern C++ — RAII

[Перевод] Линус Торвальдс: Критика C++ — Комплексный анализ

Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто резко высказывается против использования C++, а приводит ряд аргументов, которые мы с вами сегодня и рассмотрим.

https://habr.com/ru/companies/otus/articles/902724/

#c++ #linux #Линус_Торвальдс #ядро_Linux #исключения_в_c++ #RAII #управление_памятью #ооп #абстракции_в_программировании

Линус Торвальдс: Критика C++ — Комплексный анализ

Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто...

Хабр

RAII 2.0: RAII как архитектурный инструмент в C++

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

https://habr.com/ru/articles/901092/

++ #RAII #Жизненный_цикл #Подписки #Транзакции #Безопасность_кода #управление_ресурсами #паттерны #Логический_контракт

RAII 2.0: RAII как архитектурный инструмент в C++

Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако...

Хабр
Understanding Memory Management, Part 2: C++ and RAII

The #Zig guys wade into the #Rust in the #Linux kernel brouhaha:

“RAII And The Rust/Linux Drama”, Loris Cro (https://kristoff.it/blog/raii-rust-linux/).

On HN: https://news.ycombinator.com/item?id=42291417

On Lobsters (where Asahi Lina responds): https://lobste.rs/s/hxerht/raii_rust_linux_drama

#RAII #SystemsProgramming #OSDev

RAII and the Rust/Linux Drama

Loris Cro's Blog

Man, I wish Rust had the 'defer' keyword 😞
Wait...

🦀 **scopeguard**: A Rust library for a convenient RAII scope guard.

🌀 Has a defer! macro.

🔥 Runs a closure on scope exit, even if a panic occurs.

⭐ GitHub: https://github.com/bluss/scopeguard

#rustlang #library #defer #scope #raii #guard #programming #pattern #opensource

GitHub - bluss/scopeguard: Rust crate for a convenient RAII scope guard.

Rust crate for a convenient RAII scope guard. Contribute to bluss/scopeguard development by creating an account on GitHub.

GitHub