uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Бестиарий программирования

Бестиарий программирования

Kanalga Telegram’da o‘tish

Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8

Ko'proq ko'rsatish
1 138
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kun
+330 kun
Postlar arxiv
Наблюдение натуралиста за миром вайб-кодинга Я экспериментирую с агентской разработкой, чтобы понимать какие новые проблемы о
+1
Наблюдение натуралиста за миром вайб-кодинга Я экспериментирую с агентской разработкой, чтобы понимать какие новые проблемы она несёт. ИИ не делает ошибки и опечатки в стиле человека, но кажется быстро ведёт проект в сторону запутанности/монолита. Я прочувствовал этот момент на недавнем случае. Есть проект, что-то типа анализатора кода. При его написании используется стандарт кодирования, адаптированный под ИИ. Работаем над поиском определённого негативного паттерна в коде. Я объясняю ИИ, что определённый вариант кода вполне уместен – так пишут, в общем всё хорошо, давай исключение сделаем. ИИ: да, понял, код хороший, переделываем. И поправил разное. Смотрю diff, а там, помимо прочего, изменённый файл стандарта кодирования! Что? Заглядываю – там вписано, что вот этот странный паттерн кода считается теперь одним из образцов для подражания. Facepalm. Для меня, задача которую мы делали и правка стандарта кодирования – сущности из разных галактик. Я даже представить не мог, что вот так задеть может. А с точк

Продолжение Для меня, задача которую мы делали и правка стандарта кодирования – сущности из разных галактик. Я даже представить не мог, что вот так задеть может. А с точки зрения ИИ – никаких проблем, всё едино – там код, тут код. Там этот код ok, значит и тут ok. Хорошо, что я просто не нажал ok, на вроде простой задаче и не заложил файлы. Кажется я понял, как будут происходить крушения программных проектов, где ИИ фигачит код без особого контроля. Это напоминает серию Симпсонов, где на атомной станции произошла авария из-за упавшей игрушки, которая нажимала Yes. Только здесь наоборот, аварии будут там, где как раз Yes нажимается твёрдо, чётко, регулярно. А ведь это так соблазнительно, ведь вроде работает. В общем интересно, продолжаю наблюдения.

Наблюдение натуралиста за миром вайб-кодинга Я экспериментирую с агентской разработкой, чтобы понимать какие новые проблемы о
+1
Наблюдение натуралиста за миром вайб-кодинга Я экспериментирую с агентской разработкой, чтобы понимать какие новые проблемы она несёт. ИИ не делает ошибки и опечатки в стиле человека, но кажется быстро ведёт проект в сторону запутанности/монолита. Я прочувствовал этот момент на недавнем случае. Есть проект, что-то типа анализатора кода. При его написании используется стандарт кодирования, адаптированный под ИИ. Работаем над поиском определённого негативного паттерна в коде. Я объясняю ИИ, что определённый вариант кода вполне уместен – так пишут, в общем всё хорошо, давай исключение сделаем. ИИ: да, понял, код хороший, переделываем. И поправил разное. Смотрю diff, а там, помимо прочего, изменённый файл стандарта кодирования! Что? Заглядываю – там вписано, что вот этот странный паттерн кода считается теперь одним из образцов для подражания. Facepalm. Для меня, задача которую мы делали и правка стандарта кодирования – сущности из разных галактик. Я даже представить не мог, что вот так задеть может. А с точк

Всем привет, давно не писал, завайбкодился... А вы думаете я не вайбкодю? Ещё как, надо ведь понимать, как это и куда ведёт,
Всем привет, давно не писал, завайбкодился... А вы думаете я не вайбкодю? Ещё как, надо ведь понимать, как это и куда ведёт, чтобы развивать/создавать инструменты контроля всего этого :) Но про наблюдения будет следующий пост, а сейчас хочу поделиться 2 ссылками. 1) У нас появился совместный бандл с СВД ВС. По ссылке можно узнать стоимость бандла и посмотреть запись вебинара «Применение ЗОСРВ „Нейтрино“ и PVS-Studio для разработки ПО согласно требованиям МЭК 61508». 2) PVS-Studio включили в АТЛАС МедТех 2026. Смотри раздел VII - класс 17 - Решения и компетенции по информационной безопасности и инфраструктуре, применяемые в ИСЗ.

Обзор нововведений в C# 15. Union-типы, закрытые иерархии, именованные break и continue, индексаторы расширений, аргументы выражения коллекции, безопасность памяти.

Вышел новый пресс-релиз про PVS-Studio — 8.01. В нём: расширение поддержки OWASP, поддержка новых версий Java и Go и многое другое.

Коллеги для удобства фильтрации сделали из статьи интерактивный раздел – Инструменты РБПО
Коллеги для удобства фильтрации сделали из статьи интерактивный раздел – Инструменты РБПО

Напоминаю, что мы подготовили подборку материалов и вебинаров по теме процессов разработки безопасного ПО (РБПО) по ГОСТ Р 56
Напоминаю, что мы подготовили подборку материалов и вебинаров по теме процессов разработки безопасного ПО (РБПО) по ГОСТ Р 56939-2024. ГОСТ56939.РФ

В целях нетворкинга и просто так приглашаю коннектиться в TenChat — что-то типа LinkedIn. Ссылка на мой профиль: https://m.tenchat.ru/u/uIMxo8j8

Сегодня коллега демонстрирует, как визуально проявляют себя баги в Java коде: Нашёл ошибки в моде Create и проверил их в игре > В этой статье мы разберём ошибки в одном из самых популярных модов для Minecraft — Create. Посмотрим, как они проявляются прямо в игре, и отправим пулл-реквесты с исправлениями.

На днях выступал с докладом на форуме "Безопасность транспортных средств", организованном компанией "Экварта". Записи докладов пока нет, поэтому пока выкладываю свою презентацию: Анализатор PVS-Studio как средство достижения целей верификации ГОСТ Р ИСО 26262-6.

Кажется, я ментально синхронизировался с миром РБПО. Сегодня на РБПО.рф опубликовали карту инструментов РБПО. Дело в том, что
Кажется, я ментально синхронизировался с миром РБПО. Сегодня на РБПО.рф опубликовали карту инструментов РБПО. Дело в том, что несколько предыдущих дней мы занимались приблизительно тем же самым. Так что теперь две подборки :) Наш вариант — Список инструментов для РБПО.

Кажется, я ментально синхронизировался с миром РБПО. Сегодня на РБПО.рф опубликовали карту инструментов РБПО. Дело в том, что несколько предыдущих дней мы занимались приблизительно тем же самым. Так что теперь две подборки :) Наш вариант — Список инструментов для РБПО.

"Лаборатория Касперского" разрабатывает микроядерную операционную систему KasperskyOS в соответствии с принципом Secure by De
+2
"Лаборатория Касперского" разрабатывает микроядерную операционную систему KasperskyOS в соответствии с принципом Secure by Design (конструктивная безопасность). Этот принцип предполагает, что защищённость системы закладывается на уровне её архитектуры. К качеству и надёжности операционной системы предъявляются высокие требования, а доверенные компоненты проходят тщательную проверку, одним из этапов которой является статический анализ кода. "Лаборатория Касперского" использует PVS-Studio в разработке операционной системы KasperskyOS с 2016 года. За это время некоторые обращения разработчиков в нашу поддержку превратились в новые функции анализатора, доступные теперь всем пользователям PVS-Studio. Разбираем пять таких случаев и показываем, как обратная связь корпоративного клиента влияет на развитие продукта.

Пример, как идеология педантичности стандарта MISRA C защищает от ошибок В C литерал 0 можно присваивать как численным типам, так и указателю (вместо NULL). Правило MISRA C 2012/2023 11.9, которое говорит, что нужно использовать именно NULL, может казаться избыточным. Например, здесь:
typedef struct  FT_Outline_
{
    short n_contours;        /* number of contours in glyph        */
    short n_points;          /* number of points in the glyph      */
 
    FT_Vector*  points;      /* the outline's points               */
    char*       tags;        /* the points flags                   */
    short*      contours;    /* the contour end points             */
 
    int flags;               /* outline masks                      */
} FT_Outline;
....
static const FT_Outline null_outline = { 0, 0, 0, 0, 0, 0 };
V2648 Use NULL macro instead of literal zero for pointers. Если заменить некоторые 0 на NULL никому лучше не станет. static const FT_Outline null_outline = { 0, 0, NULL, NULL, NULL, 0 }; Правило, кажется, просто украшательством стиля написания кода. Лишнее ограничение при написании кода... Какой практический прок? Давайте посмотрим, как такое предупреждение помогает выявить реальную ошибку.
typedef char FAR * FAR * png_charpp;
....
png_size_t
png_check_keyword(...., png_charpp new_key)
{
  ....
  if (key_len > 79)
  {
     png_warning(....);
     new_key[79] = '\0'; // <= V2648
     key_len = 79;
  }
  ....
}
Обратите внимание на тип переменной new_key – это указатель на указатель. Из-за опечатки, терминальный ноль обнуляет указатель, а не записывается в строку. Правильный вариант кода: (*new_key)[79] = '\0'; Благодаря осмотрительной педантичности найдена реальная ошибка. На самом деле, PVS-Studio и раньше эту ошибку находил с помощью другой диагностики – V527 It is odd that the '\0' value is assigned to 'char' type pointer. Но здесь именно хотелось продемонстрировать, как работают и помогают MISRA правила. Вообще ситуация, что один и тот-же баг выявляется разными детекторами, вполне частая ситуация и удивляться этому не стоит.   Почему я про MISRA вспомнил? Во-первых, мои коллеги сейчас занимаются подготовкой квалификационного пакета PVS-Studio согласно ГОСТ Р МЭК 61508 и ГОСТ Р ИСО 26262 по поддержке MISRA C:2012 и MISRA C:2023. Во-вторых, 23 сентября я буду с докладом "Анализатор PVS-Studio как средство достижения целей верификации ГОСТ Р ИСО 26262-6" на форуме "Безопасность транспортных средств". Приглашаю посетить мероприятие и мой доклад.

Сегодня у меня для любителей C++: Каждая идиома когда-то была проблемой. Красивый и надёжный код почти никогда не рождается с
+1
Сегодня у меня для любителей C++: Каждая идиома когда-то была проблемой.
Красивый и надёжный код почти никогда не рождается с первого раза. Сначала появляются ошибки, а уже потом – идиомы, которые помогают их избегать. На вебинаре рассмотрели реальные фрагменты кода из открытых проектов на языке C++, нашли в них проблемные места с помощью статического анализа, и разобрали более 10 идиом и паттернов, которые позволят защитить ваш код.
А для Java-разработчиков: 96-й подкаст Javaswag: Gradle, плагины для Minecraft и статический анализ в PVS-Studio.
Обсудили, как войти в Java через моды и серверы Minecraft, почему мир кубов живет на Netty и Gradle, как грамотно организовать мультимодульные проекты с помощью build-logic и type-safe accessor'ов, а также заглянули под капот разработки статических анализаторов кода (от поиска багов и Taint-анализа до соответствия ГОСТам).