Какими языками программирования вы владеете?
#опрос_PVS
#опрос_PVS
Anonymous Poll
44%
C
54%
C++
40%
C#
16%
Java
48%
Python
22%
JavaScript
2%
Visual Basic
6%
Kotlin
12%
РНР
12%
Другой (в комментариях)
Найди ошибку в коде!
Эту ошибку мы встретили в "Roslyn analyzers" от компании Microsoft. Проект представляет собой расширение для Visual Studio, содержит аналитики ошибок, стиля и сложности кода.
Пишите свои варианты в комментарии, а через неделю в этом сообщении появится правильный ответ. Следить за всеми задачами на этом канале очень просто по хештегу #задача_PVS :)
✅ Правильный ответ:
Доступ к rule.Declaration производится без проверки на null, но чуть ниже проверка rule уже есть. Если rule в момент доступа к rule.Declaration будет null, то это приведёт к NullReferenceException.
Эту ошибку мы встретили в "Roslyn analyzers" от компании Microsoft. Проект представляет собой расширение для Visual Studio, содержит аналитики ошибок, стиля и сложности кода.
Пишите свои варианты в комментарии, а через неделю в этом сообщении появится правильный ответ. Следить за всеми задачами на этом канале очень просто по хештегу #задача_PVS :)
✅ Правильный ответ:
Бескомпромиссная плюсовая функциональность для отладочного вывода на микроконтроллерах
У GNU Arm Embedded Toolchain вышел релиз, включающий поддержку Concepts, Ranges, Coroutines вкупе с другими новинками С++20.
Воодушевленный новым стандартом программист микроконтроллеров Александр решил реализовать на С++20 интерфейс потока для отладочного вывода МК, поддерживающий любой подходящий протокол, предусмотренный вендром камня.
#полезное_PVS
У GNU Arm Embedded Toolchain вышел релиз, включающий поддержку Concepts, Ranges, Coroutines вкупе с другими новинками С++20.
Воодушевленный новым стандартом программист микроконтроллеров Александр решил реализовать на С++20 интерфейс потока для отладочного вывода МК, поддерживающий любой подходящий протокол, предусмотренный вендром камня.
#полезное_PVS
PVS-Studio
Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
Здравствуйте! Меня зовут Александр, и я работаю программистом микроконтроллеров.
🔺 Цель DoS-атаки — остановить или замедлить обработку запросов клиентов. Они не предназначены для кражи или повреждения данных клиентов.
При атаке появляются проблемы с доступностью вычислительных ресурсов, из-за которых процессы не выполняются за приемлемое время.
DoS-атаки разделяются на две группы: DDoS и DoS-атаки уровня приложения. Подробнее о них 👇
#термин_PVS
При атаке появляются проблемы с доступностью вычислительных ресурсов, из-за которых процессы не выполняются за приемлемое время.
DoS-атаки разделяются на две группы: DDoS и DoS-атаки уровня приложения. Подробнее о них 👇
#термин_PVS
PVS-Studio
DoS-атака
DoS-атака (аббревиатура от Denial of Service) — это атака с целью остановить или замедлить обработку запросов клиентов. DoS-атаки не имеют цели украсть или повредить данные клиентов. Сутью …
Привет всем!
Как и обещали, важные советы про написание резюме уже здесь! Сегодня разберём идеальное резюме для джуна.
Много ли среди вас Junior-специалистов? Пишите в комментариях ⬇️
#собеседование_HR
Как и обещали, важные советы про написание резюме уже здесь! Сегодня разберём идеальное резюме для джуна.
Много ли среди вас Junior-специалистов? Пишите в комментариях ⬇️
#собеседование_HR
Telegraph
Идеальное резюме джуна
В предыдущей статье мы рассказали, что входит в резюме, и зачем оно нужно при поиске работы. Сегодня мы хотим дать конкретные советы по оформлению резюме для Junior-специалистов. Даже если ты уже не джун, то некоторые советы будут общими и полезными для любого…
🚩 Проверяйте места, где указатель приводится к целочисленным типам
Запись значения указателя в 32-битную целочисленную переменную — коварная ошибка при создании 64-битного приложения. Такие ошибки незаметны: программа "почти работает", а специально повторить возникающие проблемы трудно.
Разбираемся, как обезопасить себя при создании 64-битных приложений ⬇️
#рекомендасьон_PVS
Запись значения указателя в 32-битную целочисленную переменную — коварная ошибка при создании 64-битного приложения. Такие ошибки незаметны: программа "почти работает", а специально повторить возникающие проблемы трудно.
Разбираемся, как обезопасить себя при создании 64-битных приложений ⬇️
#рекомендасьон_PVS
Telegraph
Проверяйте все места, где указатель явно приводится к целочисленным типам
Фрагмент взят из проекта IPP Samples. Ошибка выявляется PVS-Studio диагностикой: V205 Explicit conversion of pointer type to 32-bit integer type: (unsigned long)(img) void write_output_image(...., const Ipp32f *img, ...., const Ipp32s iStep) { ... img = …
Возрастающая стоимость игр, репутация компаний-игроделов и статический анализ
Разрабатывать игры становится всё труднее и дороже. Поэтому разработчики должны использовать различные инструменты, которые повышают качество кода и удешевляют процесс поиска ошибок.
В чём польза PVS-Studio для проектов на Unity? Обсуждаем в статье.
#фича_PVS
Разрабатывать игры становится всё труднее и дороже. Поэтому разработчики должны использовать различные инструменты, которые повышают качество кода и удешевляют процесс поиска ошибок.
В чём польза PVS-Studio для проектов на Unity? Обсуждаем в статье.
#фича_PVS
PVS-Studio
Зачем разработчикам игр на Unity использовать статический анализ?
С годами стоимость создания игр стала больше, вырос их масштаб, а следовательно, и их кодовая база. Разработчикам становится всё сложнее уследить за ошибками. А забагованная игра влечёт фин…
50 советов как НЕ стоит писать код
Многие учат правильному программированию. Но мало кто говорит о том, что не нужно делать при написании кода.
Разработчики статического анализатора PVS-Studio написали 50 вредных советов для C++ программистов: https://pvs-studio.com/go.php?url=1635
Как известно, эти советы нужны тем, кто всё делает наоборот. Однако недавно британские ученые догадались, что и хорошим программистам нужны вредные советы. Они действуют на них как таблетка от глупости, поэтому и читать их рекомендуется всем.
Многие учат правильному программированию. Но мало кто говорит о том, что не нужно делать при написании кода.
Разработчики статического анализатора PVS-Studio написали 50 вредных советов для C++ программистов: https://pvs-studio.com/go.php?url=1635
Как известно, эти советы нужны тем, кто всё делает наоборот. Однако недавно британские ученые догадались, что и хорошим программистам нужны вредные советы. Они действуют на них как таблетка от глупости, поэтому и читать их рекомендуется всем.
Что выдаёт сишника при собеседовании на C++-вакансию?
Нередко собеседоваться на вакансию C++ developer'а приходят именно C-разработчики. Например, в embedded, где чистый C всё ещё очень популярен. Логика у такого кандидата простая: языки, на первый взгляд, довольно близкие и почти обратно-совместимые, базовый синтаксис одинаков, про ООП что-то слышал, и значит, основная база уже есть.
Несмотря на кажущуюся схожесть языков, они очень разные, поэтому на C и C++ разработчиков можно легко различить на интервью или ревью. Как это сделать? ⬇️
Нередко собеседоваться на вакансию C++ developer'а приходят именно C-разработчики. Например, в embedded, где чистый C всё ещё очень популярен. Логика у такого кандидата простая: языки, на первый взгляд, довольно близкие и почти обратно-совместимые, базовый синтаксис одинаков, про ООП что-то слышал, и значит, основная база уже есть.
Несмотря на кажущуюся схожесть языков, они очень разные, поэтому на C и C++ разработчиков можно легко различить на интервью или ревью. Как это сделать? ⬇️
PVS-Studio
Как различить C и C++ разработчиков по их коду
Так уж случилось, что я пишу код для разных IoT-железок, связанных с электричеством, типа зарядных станций автомобилей. Поскольку аппаратных ресурсов, как правило, вполне достаточно, то осн…
🔺Storage duration – это свойство идентификатора, определяющее правила, в соответствии с которыми объект будет создан и разрушен.
Существуют 4 вида storage duration: automatic, static, thread local и dynamic. Подробнее о них ⬇️
Существуют 4 вида storage duration: automatic, static, thread local и dynamic. Подробнее о них ⬇️
PVS-Studio
Storage duration
Storage duration – это свойство идентификатора, определяющее правила, в соответствии с которыми объект будет создан и разрушен. Существуют 4 вида storage duration: automatic, static, thread…
Bitwarden – менеджер паролей с открытым исходным кодом. Он помогает генерировать уникальные пароли и управлять ими.
Получится ли у анализатора PVS-Studio отыскать ошибки в таком проекте? Проверим :)
#проект_PVS
Получится ли у анализатора PVS-Studio отыскать ошибки в таком проекте? Проверим :)
#проект_PVS
PVS-Studio
Насколько хорошо защищены ваши пароли? Проверка проекта Bitwarden
Bitwarden – менеджер паролей с открытым исходным кодом. Это программное обеспечение помогает генерировать уникальные пароли и управлять ими. Получится ли у анализатора PVS-Studio отыскать о…
✅ Правильный ответ:
Функция возвращает ссылку на временный объект, созданный и уничтоженный внутри тела функции, после чего она становится невалидной. Значение должно возвращаться по копии:
accessor_iterator<T> operator++(int)
#задача_PVSНедавно спрашивали у вас, пользуетесь ли вы PVS-Studio. По результатам опроса мы:
1️⃣ создаём новый опрос, — теперь нам интересно узнать, какие ещё статические анализаторы вы используете 😉
2️⃣ для тех, кто не ещё не пользуется PVS-Studio, предлагаем бесплатно попробовать анализатор в течение 30 дней по промокоду 👉 tg_pvs 👈
1️⃣ создаём новый опрос, — теперь нам интересно узнать, какие ещё статические анализаторы вы используете 😉
2️⃣ для тех, кто не ещё не пользуется PVS-Studio, предлагаем бесплатно попробовать анализатор в течение 30 дней по промокоду 👉
Какими статическими анализаторами вы пользуетесь?
#опрос_PVS
#опрос_PVS
Anonymous Poll
41%
PVS-Studio
22%
CppCheck
25%
Clang Static Analyzer
0%
Coverity Scan
0%
SonarJava
25%
ReSharper
16%
SonarQube
16%
Другой (в комментариях)
📌 Подборка полезных статей и видео для программистов:
C++:
📄 C++20 Ranges — Полное руководство
📄 Вызов виртуальных функций в конструкторах и деструкторах
📄 Четыре причины проверять, что вернула функция malloc
🎬 С++ для начинающих: советы по улучшению кода
С#:
📄 Уязвимости из-за обработки XML-файлов: XXE в C# приложениях в теории и на практике
📄 Подводные камни при работе с enum в C#
📄 Оптимизация .NET приложений: большой результат маленьких правок
🎬 Как LINQ замедляет ваше приложение?
Общее:
🎬 Топ 5 мифов о статическом анализе
🎬 Как taint-анализ защищает код от атак? [SQL Injection] [Path traversal]
🎬 Как совершать меньше ошибок в коде?
#подборка_PVS
C++:
📄 C++20 Ranges — Полное руководство
📄 Вызов виртуальных функций в конструкторах и деструкторах
📄 Четыре причины проверять, что вернула функция malloc
🎬 С++ для начинающих: советы по улучшению кода
С#:
📄 Уязвимости из-за обработки XML-файлов: XXE в C# приложениях в теории и на практике
📄 Подводные камни при работе с enum в C#
📄 Оптимизация .NET приложений: большой результат маленьких правок
🎬 Как LINQ замедляет ваше приложение?
Общее:
🎬 Топ 5 мифов о статическом анализе
🎬 Как taint-анализ защищает код от атак? [SQL Injection] [Path traversal]
🎬 Как совершать меньше ошибок в коде?
#подборка_PVS
Как создать качественный статический анализатор?
В докладе обсуждаем методики достижения высокого качества продукта, которые наша команда использует при разработке статического анализатора. Упор сделаем особенности разработки, а также на повышение качества именно анализа, то есть поиска реальных ошибок и потенциальных уязвимостей в коде.
Содержание:
🔹 Что внутри у C#-анализатора
🔸 Создаём и отлаживаем диагностику
🔹 Внутренние тесты, синтетика
🔸 SelfTester: проверка на реальном коде
#полезное_PVS
В докладе обсуждаем методики достижения высокого качества продукта, которые наша команда использует при разработке статического анализатора. Упор сделаем особенности разработки, а также на повышение качества именно анализа, то есть поиска реальных ошибок и потенциальных уязвимостей в коде.
Содержание:
🔹 Что внутри у C#-анализатора
🔸 Создаём и отлаживаем диагностику
🔹 Внутренние тесты, синтетика
🔸 SelfTester: проверка на реальном коде
#полезное_PVS
YouTube
Как создать качественный статический анализатор / Сергей Хренов (PVS-Studio)
Приглашаем на Saint TeamLead Conf 2023, которая пройдет 27 и 28 февраля 2023 в Москве!
Программа, подробности и билеты по ссылке: https://bit.ly/3fTLWZP
--------
РИТ++ 2019
Quality Conf
Зал Рио-де-Жанейро
27 мая 17:00
Тезисы и презентация:
https://qua…
Программа, подробности и билеты по ссылке: https://bit.ly/3fTLWZP
--------
РИТ++ 2019
Quality Conf
Зал Рио-де-Жанейро
27 мая 17:00
Тезисы и презентация:
https://qua…
Структура идеального резюме Middle-разработчика 💯
Всё то, о чём мы говорили в предыдущей статье о составлении резюме уровня Junior, остается актуальным и здесь. Сегодня мы расскажем о дополнительных качествах, которые важно упомянуть в резюме специалисту с опытом.
#собеседование_HR
Всё то, о чём мы говорили в предыдущей статье о составлении резюме уровня Junior, остается актуальным и здесь. Сегодня мы расскажем о дополнительных качествах, которые важно упомянуть в резюме специалисту с опытом.
#собеседование_HR
Telegraph
Идеальное резюме мидла
Опыт работы — важная часть твоего резюме. В этом разделе главное сохранять чёткую структуру и обратную хронологию (от последнего места работы к более ранним). Для начала подробно опиши задачи, над которыми работал последние 3-4 года. И чем дальше опыт от…
❗️ Не жадничайте на скобках в выражениях, где используются редкие операторы
Ошибки в таких случаях допускаются даже в простом коде. Рассмотрим проблему на примере тернарного оператора, который имеет очень низкий приоритет 👇🏻
#рекомендасьон_PVS
Ошибки в таких случаях допускаются даже в простом коде. Рассмотрим проблему на примере тернарного оператора, который имеет очень низкий приоритет 👇🏻
#рекомендасьон_PVS
Telegraph
Бойтесь оператора ?: и заключайте его в круглые скобки
Ошибка выявляется PVS-Studio диагностикой: V502 Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the '-' operator.
Видеообзор code review проекта на базе Unreal Engine 5 с помощью PVS-Studio 🤟🏻 ⬇️