fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
1 138
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
+330 روز
آرشیو پست ها
Сегодня записи сразу двух вебинаров на тематику создания надёжных программных проектов. Автоматизация контроля качества и без
+1
Сегодня записи сразу двух вебинаров на тематику создания надёжных программных проектов. Автоматизация контроля качества и безопасности ПО
Вебинар посвящен тому, как встроить практики качества и безопасности в ежедневный цикл разработки. Эксперты PVS-Studio и Apsafe рассказали, почему статический анализ и автоматизированные проверки стали доступными инструментами для любой команды и как регулярный контроль безопасности помогает успевать за современным ритмом релизов без перестройки CI/CD.   Валерий Филатов (Developer Advocate, PVS-Studio) рассказал в своем докладе "Зачем платить за то, что уже работает?" о том что когда-то код-ревью, автотесты и CI/CD казались лишней бюрократией — дорогой и доступной немногим. Со временем выяснилось, что без них инциденты обходятся дороже, чем сама практика, а инструменты подтянулись настолько, что теперь это может себе позволить любая команда. На примере статического анализа посмотрели, почему Best Practices давно перестали быть недостижимым идеалом.   Виктор Тимашков (руководитель группы Apsafe) в своем докладе "Безопасность приложения это не разовая проверка, а ритм релиза" объяснил, что разовые пентесты и квартальные аудиты не успевают за поставкой: код уходит в прод чаще, чем его успевают «проверить снаружи». Разобрали, почему контроль должен повторяться вместе с релизом, что меняется в процессе разработки и как облачный контур (на примере Apsafe) встраивает проверки в этот ритм без перестройки CI/CD. 
Применение ЗОСРВ "Нейтрино" и PVS-Studio для разработки ПО согласно требованиям МЭК 61508
На вебинаре разобрали подходы к разработке функционально безопасного ПО для ЗОСРВ «Нейтрино» в соответствии с требованиями МЭК 61508 и показали, какую роль в этом процессе играют инструменты статического анализа.   В первой части поговорили о принципах разработки ПО для «Нейтрино», рассмотрели требования МЭК 61508 к инструментальным средствам, и продемонстрировали работу PVS-Studio в комплекте разработчика «Нейтрино».   Во второй части подробнее остановились на статическом анализе как инструменте для обеспечения безопасности. Разобрали требования МЭК 61508 и МЭК 26262, их связь со стандартами MISRA и рассмотрели, как PVS-Studio помогает контролировать качество и соответствие кода требованиям стандартов.   В завершение рассказали о новой мажорной версии PVS-Studio 8.0: рассмотрели ключевые изменения и нововведения релиза и обозначили дальнейшие направления развития инструмента, включая функциональную безопасность.

На случай, если вы пропустили информацию об одной из наших интеграций PVS-Studio с внешними системами. См. статью.
На случай, если вы пропустили информацию об одной из наших интеграций PVS-Studio с внешними системами. См. статью.

Repost from СВД ВС
Уже завтра, 9 сентября в 12.00 вместе с партнерами PVS-Studio проведём вебинар: «Применение ЗОСРВ «Нейтрино» и PVS-Studio для
Уже завтра, 9 сентября в 12.00 вместе с партнерами PVS-Studio проведём вебинар: «Применение ЗОСРВ «Нейтрино» и PVS-Studio для разработки ПО согласно требованиям МЭК 61508» Разберём, как подходы к разработке ПО для ЗОСРВ «Нейтрино» соотносятся с требованиями МЭК 61508 и какую роль в обеспечении функциональной безопасности играет статический анализ. Наши партнёры представят обзор новой мажорной версии PVS-Studio 8.0 и дальнейшие направления развития. Поговорим не только о стандартах, но и покажем, как инструменты разработки и статического анализа работают вместе на практике. 👉 Подключайтесь к вебинару вместе с экспертами СВД ВС и PVS-Studio. 🔗 Регистрация: #Безопасная_разработка #Партнеры #Вебинары

Рассылка для С++ разработчиков на тему работы с legacy-кодом Команда YADRO предложила мне стать одним из авторов рассылки для
Рассылка для С++ разработчиков на тему работы с legacy-кодом Команда YADRO предложила мне стать одним из авторов рассылки для С++ программистов, посвящённой работе с унаследованным кодом. C++ легаси — это же моё любимое! Естественно, я согласился. Рассылка начнётся с 15 сентября 2026, так что вот вам ссылка на лендинг и регистрацию: ~GHOST IN THE CODE(). Вас ждёт серия из 7 писем о том, какие инструменты и процессы помогают наладить работу с легаси-кодом. Их подготовят такие эксперты, как Антон Полухин, Константин Владимиров, Александр Иргер, Юлия Головчанская, Алексей Веселовский, Илья Шишков и я :) Помимо информации, обещают квесты от авторов. Ищите задачи в конце каждого письма и присылайте ответы на почту engineer@yadro.com. P.S. Кстати, на тему квизов. Напоминаю про наши спрятанные пасхалки в релизе PVS-Studio 8.00.

Рассылка для С++ разработчиков на тему работы с legacy-кодом Команда YADRO предложила мне стать одним из авторов рассылки для
Рассылка для С++ разработчиков на тему работы с legacy-кодом Команда YADRO предложила мне стать одним из авторов рассылки для С++ программистов, посвящённой работе с унаследованным кодом. C++ легаси — это же моё любимое! Естественно, я согласился. Рассылка начнётся с 15 сентября 2026, так что вот вам ссылка на лендинг и регистрацию: ~GHOST IN THE CODE(). Вас ждёт серия из 7 писем о том, какие инструменты и процессы помогают наладить работу с легаси-кодом. Их подготовят такие эксперты, как Антон Полухин, Константин Владимиров, Александр Иргер, Юлия Головчанская, Алексей Веселовский, Илья Шишков и я :) Помимо информации, обещают квесты от авторов. Ищите задачи в конце каждого письма и присылайте ответы на почту engineer@yadro.com. P.S. Кстати, на тему квизов. Напоминаю про наши спрятанные пасхалки в релизе PVS-Studio 8.00.

Реинкарнация старой статьи: Сопротивляйтесь добавлению в проект новых библиотек — 10 лет спустя. Актуально, так как люди (а т
Реинкарнация старой статьи: Сопротивляйтесь добавлению в проект новых библиотек — 10 лет спустя. Актуально, так как люди (а теперь и ИИ), тащат разное в проект, не думая, как потом это быстро аккуратно сопровождать, а уж тем более сертифицировать, если понадобится.
Наш самолет имеет на борту бассейн, танцевальную площадку, ресторан, уютные зоны отдыха, зимний сад... Уважаемые пассажиры, пристегните ремни, теперь мы попытаемся со всей этой ***** влететь.

Настало время статей про баги в открытых проектах на TypeScript: Проверка исходников VSCode.

Подборка: 1) PVS-Studio 8.00: анализаторы JavaScript, TypeScript и Go, новые IDE плагины для WebStorm и GoLand (vk)
Вышел новый релиз PVS-Studio — 8.00. В нём: новые анализаторы для проектов на JavaScript, TypeScript и Go, новые IDE плагины для WebStorm и GoLand, расширение поддержки MISRA C++ 2023 и другие изменения. Подробнее о них рассказываем в видео!
2) Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики! (vk)
В Go разработчики ошибаются как и в любом другом языке: опечатки, дубликаты, нерабочие условия проверок и тому подобное. Но почему? Ведь многие используют тот же go vet который прекрасно находит всё это… ведь так... да? На вебинаре разобрали частые и типовые ошибки Go разработчиков в известных проектах, а также узнали, какие ошибки не могут найти стандартные инструменты и подходы (и что с этим делать).
3) Агенты пишут код, а кто его проверяет? (vk)
AI-агенты постепенно меняют привычный процесс разработки: человек всё меньше пишет код напрямую и всё больше выступает в роли оркестратора — ставит задачи, направляет агентов, проверяет результат и выстраивает вокруг них целую экосистему инструментов.
4) Как разговорить человека и договориться (vk)
Small talk — это не просто короткая беседа, а способ устанавливать контакт, создавать доверие и открывать новые возможности для общения. На вебинаре разберём, как легко начинать и поддерживать такие разговоры, а также как использовать small talk в рабочих ситуациях — от нетворкинга и новых знакомств до сложных обсуждений, переговоров и договорённостей.

Я писал проект, довольно большой и столкнулся с проблемой, что со временем claude перестал вообще следить за корректностью кода и перешел к логике "главное что работает и тесты проходит". А то что константы напиханы в каждом файле, вместо выноса в отдельный модуль, похер ему было. В конце концов, при выполнении задач со временем все чаще начали появляться ситуации по примеру: "Да, я изменил, но в файле X был хардкод поэтому все сломалось" или "Все сломалось, тк при изменении модуля X он потянул за собой модуль Y, хотя они должны быть полностью независимы" Поддержка кода человеком прекратилась, так как код ИИ хоть и рабочий, но стал практически не поддерживаемым. Сам ИИ, спустя несколько месяцев признал, что пишет не поддерживаемый код только ради выполнения конечной задачи и прохождения тестов. В итоге, он сам перестал ориентироваться в нем и проект перестал работать. И проблема не в том что с нуля код у ИИ плохой. При каждодневных небольших изменениях накапливается хардкод, не нужные модули, нарушается DRY полностью. А исключить повторение и учесть все возможные связи становится просто невозможно, так как проект слишком большой и либо не помещается в контекст, либо начинается деградация качества. Так что использовании ИИ в крупных проектах без нормального ревью и человеческого фактора, в конце концов исключает работу человека полностью, а потом и сам ИИ перестает нормально работать. Самое опасное - что это очень долгий процесс и есть только два момента, когда можно повернуть назад - либо когда сам перестаешь ориентироваться в коде, либо когда все рушится. Что могу посоветовать - не полагайтесь на ИИ. Используйте его для ревью, проектирования архитектуры, документации или написания простого монотонного кода. Но все ключевые, уникальные и важные части проекта нужно исключительно делать вручную. P.S. это то, к чему я пришел примерно за полтора года использования ИИ. История длинная, но оставил самое важное

Анализаторы кода легко и быстро умеют находить множество ошибок, не очевидных с первого взгляда. Попробуйте посоревноваться с
+1
Анализаторы кода легко и быстро умеют находить множество ошибок, не очевидных с первого взгляда. Попробуйте посоревноваться с PVS-Studio в прозорливости! Мы сделали новые квизы для языков Go и JS/TS 🔥 Вас ждут 10 фрагментов кода, в которых наш анализатор нашёл ошибки. Все они взяты из известных Open Source проектов. Ваша задача — успеть найти ошибку за 60 секунд (не переживайте, фрагменты небольшие). Время посоревноваться с анализатором! А потом можно и его проверить 😉 - Найдите ошибки в JS & TS коде - Найдите ошибки в Go коде #квиз #js #ts #go

⚡️8, 9 и 11 сентября встречаемся на вебинарах 1️⃣ 8 сентября состоится второй вебинар серии "Надежность, качество, безопаснос
+2
⚡️8, 9 и 11 сентября встречаемся на вебинарах 1️⃣ 8 сентября состоится второй вебинар серии "Надежность, качество, безопасность ПО: Методология и инструменты!" — "Автоматизация контроля качества и безопасности ПО". На примере статического анализа посмотрим, почему Best Practices давно перестали быть недостижимым идеалом. А также разберём, почему контроль должен повторяться вместе с релизом, что меняется в процессе разработки и как облачный контур (на примере Apsafe) встраивает проверки в этот ритм без перестройки CI/CD. 🗓 08.09 в 12:00 Регистрация по ссылке 🔗 2️⃣ 9 сентября приглашаем на вебинар "Применение ЗОСРВ "Нейтрино" и PVS-Studio для разработки ПО согласно требованиям МЭК 61508". На вебинаре разберем подходы к разработке функционально безопасного ПО для ЗОСРВ «Нейтрино» в соответствии с требованиями МЭК 61508 и покажем, какую роль в этом процессе играют инструменты статического анализа. 🗓 09.09 в 12:00 Регистрация по ссылке 🔗 3️⃣ 11 сентября будет вебинар "Каждая идиома когда-то была проблемой". Красивый и надёжный код почти никогда не рождается с первого раза. Сначала появляются ошибки, а уже потом – идиомы, которые помогают их избегать. На вебинаре рассмотрим реальные фрагменты кода из открытых проектов на языке C++, найдем в них проблемные места с помощью статического анализа, и разберём более 10 идиом и паттернов, которые позволят защитить ваш код. 🗓11.09 в 15:00 Регистрация по ссылке 🔗 Приглашайте коллег и приходите сами! Ждем вас! #вебинар #PVS_Studio

Красивое.
// Table 8.13 Data and Image Formats 
//[Sea Islands Series Instruction Set Architecture]
//All values are under 64
static const size_t amd_gpu_data_format_bit_size = 6;
//All values are under 16
static const size_t amd_gpu_number_format_bit_size = 4;

static auto surface_format_table = []() constexpr {
  std::array<vk::Format, 
      1 << amd_gpu_data_format_bit_size * 1 << amd_gpu_number_format_bit_size>
    result;
  for (auto& entry : result) {
    entry = vk::Format::eUndefined;
  }
  for (const auto& supported_format : SurfaceFormats()) {
    result[GetSurfaceFormatTableIndex(supported_format.data_format,
                                      supported_format.number_format)] =
        supported_format.vk_format;
  }
  return result;
}();
Код содержит ошибку, но при это работает правильно! :) Видите, что не так? Про эту и другие ошибки в пректе ShadPS4.

Мы обновили информационное письмо и страницу на сайте, посвящённую теме сертификационных испытаний ПО.

Релиз PVS-Studio 8.00 с поддержкой языков Go, JS, TS Мы выпустили восьмую версию PVS-Studio, где расширен список анализируемых языков программирования: C, C++, C#, Java, Go, JavaScript, TypeScript. PVS-Studio разрабатывается компанией ООО "ПВС", основанной в 2008 году. Сведения о PVS-Studio включены в единый реестр российских программ для ЭВМ и баз данных на основании приказа Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 18.03.2021 №156, запись в реестре №9837 от 18.03.2021. Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207-2024. Уровень совместимости с отраслевым стандартом зависит от языка. C, C++, C#, Java Статический анализатор кода PVS-Studio для языков C, C++, C# и Java удовлетворяет функциональным требованиям к инструментам, требуемых для проведения исследований согласно разделу 4.2 «Статический анализ объекта оценки (САО)» методического документа «Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении» (утверждён ФСТЭК России 12 мая 2026 г.) для 6, 5 и 4 уровня доверия (по 3, 2 и 1 уровню информация будет представлена позже). В том числе PVS-Studio соответствует дополнительным требованиям к исследованиям (усиления) для 4-го уровня доверия, заключающихся в соответствии требованиям ГОСТ Р 71207-2024 «Защита информации. Разработка безопасного программного обеспечения. Статический анализ программного обеспечения. Общие требования». PVS-Studio выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения согласно требованиям ГОСТ Р 56939-2024. Go, JavaScript, TypeScript На данный момент реализованы легковесные движки анализаторов для этих языков. В первой редакции анализаторы содержат по 41 диагностическому правилу, CLI для каждого анализатора, а также плагины для интегрированных сред разработки WebStorm и GoLand. Некоторые другие новшества Добавлена поддержка компиляторов kcc ARMV7 и TI C2000-CGT на всех платформах с помощью мониторинга/трассировки компиляции. Появилась поддержка плагина PVS-Studio для Qt Creator версий 20.x. Вскоре стартует программа раннего доступа Atlas Server, платформы для автоматической проверки качества и безопасности исходного кода. Ссылки: 1.      Все варианты загрузки PVS-Studio. 2.      Запросить триальный ключ. 3.      Раздел о сертификации. 4.      Контакты: форма обратной связи / запросить ВКС / телефон +7(903)844-02-22.

Записи двух новых вебинара. Первый, продолжение смежных с РБПО тем – рассматриваем инструменты и подходы. Гостем стал Алексей Дьяков из Guardant и рассказал о защите ПО (противодействию пиратству). Второй вебинар о том, как ставить грамотные цели и достигать их. Гость – Александр Швец (CTO Авито Товары). Мы открыты к сотрудничеству и приглашаем гостей для участия в вебинарах, посвященных GameDev, управлению командой, GenAI т.д. Подробнее.

Сегодня День рождения моего любимого писателя Говарда Филлипса Лавкрафта. В его честь я позволю себе шалость и презентую обзо
Сегодня День рождения моего любимого писателя Говарда Филлипса Лавкрафта. В его честь я позволю себе шалость и презентую обзор материалов по РБПО в его литературном стиле. Заодно пригодится тем, кто пропустил предыдущие посты про РБПО-вебинары. Встречайте неименуемый ужас творений беспечных программистов. В тёмных коридорах современной разработки ПО, куда редко проникает свет тестирования и куда не доносится эхо код-ревью, зародилось нечто. Оно притаилось в недрах непроверенных библиотек. Нечто, что шепчет сквозь строки небезопасного кода. Древние именовали это Багом. Современные адепты тайных знаний зовут Уязвимостью. Долгие годы человеческие умы пытались объять необъятное — описать ритуалы, способные защитить творения рук наших от порождений Хаоса. Так в 2016 году был создан первый фолиант — ГОСТ Р 56939, призванный оградить код от тварей из бездны. Но время шло, и Древние Стандарты ветшали. Они молчали о кошмарах цепочек поставок, о тёмной магии CI/CD, о незримой Поверхности Атаки, сквозь которую сущности извне проникают в наш мир. И тогда, в конце 2024 года, был явлен новый манускрипт — ГОСТ Р 56939–2024 «Разработка безопасного программного обеспечения», начертанный коллективным разумом посвящённых в тайны РБПО. Перед вами не просто выжимка. Это ключ к запретному знанию, запертому на странице сайта древних Единорогов. Это труд жреца статического анализа из ордена PVS-Studio, который осмелился не просто прочесть Писания, но и сопроводить их голосами тридцати экспертов, чьи разумы соприкоснулись с Истиной. Узрите! Разработка безопасного программного обеспечения (РБПО) по ГОСТ Р 56939—2024! Новый ГОСТ говорит нам о 25 процессах. Не об абстрактных идеях, а о конкретных ритуалах, каждый из которых — это грань защитного пентакля, оберегающего ваше творение от Хаоса. О тех, кто должен познать страх (процессы 1–2: Планирование и Обучение). Безумец тот, кто решит, что способен в одиночку противостоять Тьме. Фолиант гласит: внедрение обрядов безопасности потребует ресурсов. 10–15% бюджета — такова цена жертвы, которую нужно принести, чтобы ваша команда не стала слепыми котятами, играющими с неведомыми силами. В полном тексте хроник вы найдёте отсылки к курсам, чтобы ваши адепты не накликали беду неосторожным заклинанием. Картография незримого (процессы 6–7: Архитектура и Поверхность Атаки). Самые страшные угрозы проникают не через щели в коде, а через изъяны в фундаменте вашего творения. Гайд научит вас видеть незримое — определять ту самую Поверхность Атаки, через которую Древнее Зло может просочиться в реальность. Ибо бессмысленно проверять каждую строку, если дверь в подвал распахнута настежь. В полном тексте — откровения о taint-анализе и инструменте Natch, чьё имя звучит как шёпот ангела во тьме. Некрономикон кодирования (процессы 8–10: Правила, Экспертиза и Статический анализ). Код, написанный без правил, подобен безумным письменам на стенах Жёлтых домов. Даже несовершенный стандарт лучше, чем хаос, где каждая переменная названа именем Древнего Бога. Гайд поведает о «форматировании таблицей» — древнем заклинании против опечаток, и о том, как Статический Анализ (вкупе с фолиантом ГОСТ Р 71207–2024) становится вашим всевидящим оком, способным узреть дефекты там, где человеческий разум меркнет. Скверна цепочки поставок (процессы 16–17). Величайший ужас современности таится не в вашем коде, а в том, что вы заимствуете у чужих культов. Зловещие артефакты, проникающие под видом безобидных библиотек, — вот истинный лик страха. Треть кошмаров из списка OWASP Top 10 — это порождения данной скверны. Познайте суть SCA, поиска закладок и атак через галлюцинации ИИ. Узрите сущности в лучах сверкающего CodeScoring. …и это лишь начало. Остальные главы Послания охватывают ужасы фаззинг-тестирования, кошмар неправильной сборки, муки проигнорированных уязвимостей и даже мрачный ритуал вывода ПО из эксплуатации, когда нужно уничтожить все следы, чтобы никто не вызвал то, что спало. Ф’нглуи мглв’нафх РБПО Р’льех вгах’нагл фхтагн!

Расписал эту тему поподробнее: Опухший C++ код