PVS-Studio: поиск ошибок в коде
1.84K subscribers
1.67K photos
94 videos
2 files
1.67K links
Статический анализатор на страже качества, защищённости (SAST) и безопасности кода.

Наш стек: C, C++, C#, Java, JS, TS, Go

Сайт: https://pvs-studio.ru/

E-Mail: support@viva64.com
Телефон: +7(903)844-02-22

Для бизнеса: https://xn--r1a.website/pvsstudio_business
Download Telegram
Начал появляться код тех самых навайбкоденных проектов, который изменит мир и т. д. Ну а мы начинаем потихоньку смотреть код этих проектов, в том числе и сквозь призму статического анализа.

Подробности по ссылке 🔗

#статья #вайбкодинг #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Что это тут у нас?! Ошибка из проекта Erlang! Сможете найти?
BIF_RETTYPE system_info_1(BIF_ALIST_1)
{
....
if (is_tuple(BIF_ARG_1)) { // L2778
....
} else if (BIF_ARG_1 == am_scheduler_id) { // L2782
....
}
....
else if (BIF_ARG_1 == am_garbage_collection) { // L2903
....
} else if (BIF_ARG_1 == am_fullsweep_after) { // L2921
....
}
else if (BIF_ARG_1 == am_garbage_collection) { // L3053
....
} else if (BIF_ARG_1 == am_instruction_counts) { // L3056
....
}
....
else if (ERTS_IS_ATOM_STR("halt_flush_timeout", BIF_ARG_1)) { // L3552
....
}
}

О других ошибках из этого проекта можно почитать в статье 🔗

#cpp #ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает выбор catch-блока при обработке исключений

Если таблетка знает, что лечить, может, и исключение само может понять, когда нужно остановиться в своём путешествии по стеку? В прикладном программировании часто хватает и подобного описания, но иногда хочется деталей. Что ж, разберёмся в них!

Переходите по ссылке 🔗

#cpp #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Новый крутой материал по геймдеву 🔥

В своем блоге опубликовали первую часть книги Сергея Кушниренко "Game++. Часть 1.1: С++, движки и архитектуры". Это сборник размышлений о языке программирования C++, алгоритмах и практиках в контексте разработки игр — о его сильных и слабых сторонах, практических решениях и устоявшихся способах работы.

В общем, лучше пойти почитать! Переходите по ссылке 🔗

#cpp #книга #gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
71
Ценность квалифицированного программиста смещается в сторону умения проводить обзоры кода. Генерировать код становится проще, но всё так же важно проверять его с точки зрения качества декомпозиции, корректности реализации, эффективности, безопасности.

Посмотрим на примере маленького проекта markus, созданного с помощью Claude Opus, почему важно понимать сгенерированный код и уметь видеть, что скрывает красивый текст программы.

Переходите по ссылке 🔗

#статья #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
9
📣 Напоминалка: пройти бесплатный курс от PVS-Studio!

Друзья, давайте создадим язык программирования на нашем курсе! Он абсолютно бесплатный и вот, что он может дать:

- Новые знания о языке программирования и о том, как машина понимает, что мы от нее хотим.
- Реализуете свой лексер в коде.
- Вспомните грамматику и разберете метод рекурсивного спуска.
- На практике внедрите переменные и функции в свой язык.
- Научитесь вызывать функции и правильно определять тип возвращаемого значения.
- Напишете свой эвалюатор.

Всего 10 уроков, где будет минимум сухой теории и максимум практики 👍

Подробнее можно почитать тут 🔗

#курс #cpp #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Тема неопределённого поведения (UB) в языке C++ освещается и обсуждается многие годы, но это не значит, что она исчерпала себя. Это плата, которую программисты отдают за эффективные оптимизации кода, такие как удаление ряда проверок.

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

Посмотреть можно тут:
- Наш сайт
- VK Video
- Rutube
- YouTube

#доклад #cpp
2
Мы уже прошли через базовое выравнивание полей и изучили, как наследование наслаивает данные друг на друга. Казалось бы, теперь-то всё, все ловушки изучены. Но не тут-то было! Есть у этой темы ещё одна, по-настоящему тёмная сторона, про которую не так часто говорят. Одно короткое слово virtual полностью переписывает "геометрию" класса, внося в выравнивание свои коррективы, которые трудно игнорировать.

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

#статья #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
21
⚡️PVS-Studio в CMake: теперь официально!

Если у вас кроссплатформенный проект на C или C++, то, как правило, вы не завязываетесь на одну систему сборки, а используете генератор сценариев для сборочных систем. Самый распространённый из них, CMake, недавно получил официальную интеграцию со статическим анализатором PVS-Studio для этих языков.

Подробнее по ссылке 🔗

#cpp #статья #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
71