1 апреля 2024 года введён в действие новый ГОСТ Р 71207–2024 "Статический анализ программного обеспечения". Если в ГОСТ Р 56939–2016 говорится о необходимости использования статического анализа при разработке безопасного программного обеспечения (РБПО), то ГОСТ Р 71207–2024 уточняет, что именно это означает.
Информация в ГОСТ очень плотная, и её тяжело сразу воспринять, если вы ранее не имели дело со статическим анализом кода и РБПО. Поэтому я подготовил и провёл цикл из 5 вебинаров, где разобрал различные аспекты ГОСТ и примерами пояснил некоторых термины.
Информация в ГОСТ очень плотная, и её тяжело сразу воспринять, если вы ранее не имели дело со статическим анализом кода и РБПО. Поэтому я подготовил и провёл цикл из 5 вебинаров, где разобрал различные аспекты ГОСТ и примерами пояснил некоторых термины.
Хабр
ГОСТ Р 71207–2024 глазами разработчика статических анализаторов кода
1 апреля 2024 года введён в действие новый ГОСТ "Статический анализ программного обеспечения". Если в ГОСТ Р 56939–2016 говорится о необходимости использования статического анализа при...
👍3
Мы учим анализатор PVS-Studio искать не только универсальные ошибки, но и связанные с использованием распространённых библиотек. Например, в рамках поддержки из GameDev индустрии, мы реализуем специализированные диагностики для Unity и Unreal Engine.
Более того, появляются не только диагностики для поиска багов, но и для микрооптимизаций. Мы честно не называем это оптимизацией потому, что у статического анализатора недостаточно информации, как часто выполняются различные участки кода. Для оптимизации следует использовать профайлеры.
Тем не менее, определённый выигрыш можно получить. Пример такой диагностики V4006. Помогает сократить количество математических операций, выполняемых над матрицами, векторами и т.д.
Если заинтересовались попробовать PVS-Studio, то промокод progtales позволяет получить триальную версию сразу на месяц.
Более того, появляются не только диагностики для поиска багов, но и для микрооптимизаций. Мы честно не называем это оптимизацией потому, что у статического анализатора недостаточно информации, как часто выполняются различные участки кода. Для оптимизации следует использовать профайлеры.
Тем не менее, определённый выигрыш можно получить. Пример такой диагностики V4006. Помогает сократить количество математических операций, выполняемых над матрицами, векторами и т.д.
Если заинтересовались попробовать PVS-Studio, то промокод progtales позволяет получить триальную версию сразу на месяц.
👍4
Вы знали про ISO week date? Я – нет. Оказывается, есть форматирование даты, с номером года относительно недели. На практике это нужно очень редко. Поэтому, если кто-то в Java использовал спецификатор YYYY, вместо yyyy, он почти наверняка ошибся. Сделали в PVS-Studio новую диагностику на эту тему.
См. также: SimpleDateFormat YYYY против yyyy.
См. также: SimpleDateFormat YYYY против yyyy.
😱5
Доклад "Разрушители мифов: С++ уже не торт" от Филиппа Хандельянца (тимлид C++ команды PVS-Studio). Язык программирования С++ существует уже больше 40 лет. За это время появилась целая куча мифов и небылиц о нём. Действительно ли С++ непрост для новичков? С++ устарел и больше никому не нужен?
VK Видео
Разрушители мифов: С++ уже не торт
Язык программирования С++ существует уже больше 40 лет. За это время появилась целая куча мифов и небылиц о нём. Мы будем вместе опровергать или подтверждать их. Действительно ли С++ непрост для новичков? С++ устарел и больше никому не нужен? Эти и другие…
👍3
Коллега делает новую диагностику для PVS-Studio, касающуюся некорректного использования dynamic_cast для COM-интерфейсов, где нужен вызов QueryInterface.
Читаю документацию на диагностику и чувствую, что что-то не так. Но я так давно работал с COM, что уже всё забыл и затрудняюсь сформулировать замечания. Потом я вспоминаю про свои "COM-конспект" и о чудо, тетрадка находится. Через 15 минут листания я осознаю, что мне не нравится в описании.
Однако, пост побудила написать другая мысль. А сейчас так изучают программирование? Конспектируют, зарисовывают? Или всё подменил условный ютуб, дающий информацию быстро, но не дающий остановиться, обдумать услышанное, записать. Конечно, это возможно. Однако, я видел, как люди что-то выписывают, читая книги про программирования. И сам так делал. Но я не вижу такое при просмотре докладов, обучающих видео, лекций. Да и вообще кажется я сейчас не вижу, что кто-то конспектирует. Что вы думаете?
Читаю документацию на диагностику и чувствую, что что-то не так. Но я так давно работал с COM, что уже всё забыл и затрудняюсь сформулировать замечания. Потом я вспоминаю про свои "COM-конспект" и о чудо, тетрадка находится. Через 15 минут листания я осознаю, что мне не нравится в описании.
Однако, пост побудила написать другая мысль. А сейчас так изучают программирование? Конспектируют, зарисовывают? Или всё подменил условный ютуб, дающий информацию быстро, но не дающий остановиться, обдумать услышанное, записать. Конечно, это возможно. Однако, я видел, как люди что-то выписывают, читая книги про программирования. И сам так делал. Но я не вижу такое при просмотре докладов, обучающих видео, лекций. Да и вообще кажется я сейчас не вижу, что кто-то конспектирует. Что вы думаете?
👍5
Прошли экватор, выложив 6 из 11 частей книги "Путеводитель C++ программиста по неопределённому поведению". Очень много букв, так что не стоит ждать все части. Приглашаю читать первые шесть :)
Часть 1, Часть 2, Часть 3, Часть 4, Часть 5, Часть 6.
Часть 1, Часть 2, Часть 3, Часть 4, Часть 5, Часть 6.
PVS-Studio
Путеводитель C++ программиста по неопределённому поведению: часть 1 из 11
Вашему вниманию предлагается первая часть электронной книги, которая посвящена неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с...
❤2
Пока под рукой тетрадка с конспектами, хочется похвалиться как у нас в компании построен процесс адаптации новых сотрудников. Сейчас поймёте взаимосвязь :)
К сожалению, у многих компаний нет плана как обучать новых людей и понимая какую информацию давать. Сам проходил через подобное. Спрашиваешь: с чего начать, что почитать, куда и что посмотреть? Ой. Ну вот по коду можешь пока побродить. Ах да, у нас же поверхности в CAD-системе и нужно знать математику, связанную с ними – читай про NURBS. Сижу, читаю про NURBS (неоднородные рациональные B-сплайны для представления кривых и поверхностей). Конспектирую, что-то перевожу... На фотке как раз мои потуги осознать...
Далее в работе действительно была математика, но в основном пришлось вспоминать матрицы поворота и трансформации. С NURBS напрямую я не столкнулся ни разу! Так что экскурс в сплайны потренировал мозги, но абсолютно потом не пригодился. Это как раз тот случай, что нет процесса адаптации, подборки с чем знакомиться.
У нас в PVS-Studio есть план (чеклист) введения человека в должность, который создаёт HR для себя и руководителя. Там начиная от знакомства с пожарной безопасностью и оформления в отделе кадров, и закачивания решением по итогам испытательного срока. Человек порционно получает информацию в специальной рассылки из 10 писем: структура компании, что такое один-на-один и так далее.
Выдаётся методическое руководство – что и где почитать, какие записи докладов посмотреть. По итогам изучения разных разделов нужно ответить на список контрольных вопросов и обсудить ответы с лидом. У программистов есть продолжение в виде практического задания по знакомству с PVS-Studio, проверке проекта, написанию пробной статьи. Для человека, взятого, например, в маркетинг, появляется список первых практических задач, который заранее подготавливается руководителем.
Возможно, от всего этого пухнет голова, зато человек не чувствует себя "бросили в воду и плыви" и получает именно ту информацию, которая ему понадобится в работе.
Далее он будет развиваться на основании матрицы компетенции, но это уже другая отдельная большая тема.
P.S. Здорово, что получилось всё так организовать. Надо не забыть текстом с HR командой поделиться :) Думаю им приятно будет.
К сожалению, у многих компаний нет плана как обучать новых людей и понимая какую информацию давать. Сам проходил через подобное. Спрашиваешь: с чего начать, что почитать, куда и что посмотреть? Ой. Ну вот по коду можешь пока побродить. Ах да, у нас же поверхности в CAD-системе и нужно знать математику, связанную с ними – читай про NURBS. Сижу, читаю про NURBS (неоднородные рациональные B-сплайны для представления кривых и поверхностей). Конспектирую, что-то перевожу... На фотке как раз мои потуги осознать...
Далее в работе действительно была математика, но в основном пришлось вспоминать матрицы поворота и трансформации. С NURBS напрямую я не столкнулся ни разу! Так что экскурс в сплайны потренировал мозги, но абсолютно потом не пригодился. Это как раз тот случай, что нет процесса адаптации, подборки с чем знакомиться.
У нас в PVS-Studio есть план (чеклист) введения человека в должность, который создаёт HR для себя и руководителя. Там начиная от знакомства с пожарной безопасностью и оформления в отделе кадров, и закачивания решением по итогам испытательного срока. Человек порционно получает информацию в специальной рассылки из 10 писем: структура компании, что такое один-на-один и так далее.
Выдаётся методическое руководство – что и где почитать, какие записи докладов посмотреть. По итогам изучения разных разделов нужно ответить на список контрольных вопросов и обсудить ответы с лидом. У программистов есть продолжение в виде практического задания по знакомству с PVS-Studio, проверке проекта, написанию пробной статьи. Для человека, взятого, например, в маркетинг, появляется список первых практических задач, который заранее подготавливается руководителем.
Возможно, от всего этого пухнет голова, зато человек не чувствует себя "бросили в воду и плыви" и получает именно ту информацию, которая ему понадобится в работе.
Далее он будет развиваться на основании матрицы компетенции, но это уже другая отдельная большая тема.
P.S. Здорово, что получилось всё так организовать. Надо не забыть текстом с HR командой поделиться :) Думаю им приятно будет.
❤4👀1
Коллега профессионально набросил на тему, медленнее ли С++ std::array классических C массивов или нет. Читайте, изучайте графики, рассказывайте автору в комментариях почему он не прав и что не ту линейку прикладывал :)
Хабр
std::array в С++ не медленнее массива в С
Или почему не нужно бояться того, что удобно работает. Стойте! Уберите руки от клавиатуры, дайте человеку сказать! У этой статьи есть обоснованные причины и благая цель! В прошлой моей статье о...
👍2
Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям.
Мартин Фаулер (Martin Fowler)
Мартин Фаулер (Martin Fowler)
❤3
Юбилейный баг. Он станет 16000-ым в коллекции багов, которую мы пополняем в процессе проверки открытых проектов для написания статей. Найден в проекте DPDK, про который я скоро напишу пару публикаций.
Ещё это значит, что благодаря нашей команде, в открытых проектах станет на 16000 ошибок меньше.
Сработала диагностика V523. Независимо от условия, выполняются одни и те-же действия. Скорее всего здесь есть опечатка. Ну или код просто избыточный.
Ещё это значит, что благодаря нашей команде, в открытых проектах станет на 16000 ошибок меньше.
Сработала диагностика V523. Независимо от условия, выполняются одни и те-же действия. Скорее всего здесь есть опечатка. Ну или код просто избыточный.
🔥1
Что такое неведомый хтонические неописуемый ужас? Это структура bnx2x_softc в DPDK 😰
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
dpdk/drivers/net/bnx2x/bnx2x.h at bf0ff8df59c7e32f95c0b542cc4a7918f8a3da84 · DPDK/dpdk
Data Plane Development Kit. Contribute to DPDK/dpdk development by creating an account on GitHub.
Неделю ничего не писал – отдыхал перед началом сезона конференций и вебинаров и т.д. И раз уж речь зашла про мероприятия, предлагаю вниманию мою сегодняшнюю заметку: SafeCode – конференция, которой мне не хватало.
Хабр
SafeCode – конференция, которой мне не хватало
Помню 100500 лет назад (ну ладно, всего 12), я писал на Хабре , что мне не хватает в России хардкорной C++ конференции. Затем появилась C++Russia . Навизуализировал. Пару лет назад я начал грустить,...
И заодно недавно опубликованный подкаст с мои участием.
VK Видео
Как айтишнику развить бизнес | Алиса и тестирование
Андрей и Алиса говорят о разработке, методах выявления ошибок в коде на ранних этапах, важности использования статического анализа для повышения качества ПО и внедрении современных методологий, таких как TDD и код-ревью, в повседневную работу. Ссылка на Бусти:…
👍9
Неформальные процедуры обзоров передавались от человека человеку в общей культуре программирования задолго до того, как информация об этом стала появляться в печатных материалах. Необходимость обзоров была настолько очевидна лучшим программистам, что они редко упоминали об этом в статьях и книгах, тогда как худшие программисты считали, что они настолько хороши, что их работа не нуждается в обзорах.
Дениел Фридмен и Джеральд Вайнеберг (Daniel Freedman and Gerald Weinberg)
Дениел Фридмен и Джеральд Вайнеберг (Daniel Freedman and Gerald Weinberg)
Никто не застрахован от простейших ошибок. Перед вами фрагмент кода из одного из самых качественных проектов – LLVM. А ошибка дурацкая: если дошло до вычисления правого операнда ИЛИ, то указатель равен nullptr и он смело разыменовывается. Кстати, наверное в среду как раз проект LLVM возьму для демонстрации работы PVS-Studio на вебинаре УЦ Маском.
👍2
Люди, описывающие проектирования ПО как дисциплинированный процесс, тратят много энергии, заставляя всех нас почувствовать себя виноватыми. Мы никогда не станем достаточно структурированными или объектно-ориентированными для достижения нирваны при жизни. Все мы расплачиваемся за первородный грех – изучение Basic в особо впечатлительном возрасте. Но я готов спорить, что большинство из нас проектируют программы лучше, чем кажется пуристам.
Ф. Дж. Плоджер (P. J. Plauger)
Ф. Дж. Плоджер (P. J. Plauger)
🔥3