Конференция: C++Russia 2019 Piter.
Известно высказывание Дональда Кнута о том, что преждевременная оптимизация — это корень всех зол. На практике не всё так однозначно. На базе своего собственного опыта разработки статического анализатора кода Андрей и его команда пришли к выводу, что от неуклонной деградации производительности нас может спасти только преждевременная оптимизация всего, что можно. Спикер хочет поделиться своими соображениями и ...
1 ноября 2019 г.На этой лекции автор поговорит о терминологии: что из себя представляет неопределённое и неуточнённое поведение. Обсудит несколько простых примеров неопределённого поведения, а также такие проблемы как выход за границу массива и отсутствие виртуального деструктора. В этой лекции будут затронуты такие темы как оператор delete, нулевые указатели, сдвиги, целочисленное переполнение (64-битные ошибки и контрольная сумма) и как писать более надёжны...
30 сентября 2019 г.На 8 лекции будет рассмотрен стандарт кодирования и зачем его нужно применять. Касательно стандарта кодирования будут затронуты общие положения, строки, именование переменных, именование типов, именование функций а также выравнивание кода. Еще будет рассказано о таких темах как табличное оформление сложного условия, разделяющие пробелы, комментарии и многое другое.
30 сентября 2019 г.На 7 лекции будут рассмотрены предпосылки необходимости использования статического анализа, достоинства и недостатки обзора кода, взаимосвязи в большом проекте и плотность ошибок в зависимости от размеров кодовой базы. Автор лекции расскажет о статическом анализе кода и примерах обнаруживаемых им ошибок, о статическом анализаторе кода PVS-Studio. Далее будет рассказано как пользоваться инструментами анализа кода правильно, а как ими пользовать...
30 сентября 2019 г.Конференция: C++ Russia 2019.
Разработка библиотек — более ответственное дело, чем разработка прикладного программного обеспечения.
Разработчик не знает, как именно будет использоваться его библиотека, и должен обращать дополнительное внимание на мелкие детали и вопросы переносимости. Это заставляет по-новому взглянуть на использование таких функций, как realloc, exit, memset, memcmp. Заставляет быть более аккуратным при выборе типов данных и...
19 апреля 2019 г.Конференция: Heisenbug 2018.
Одной из технологий выявления ошибок на ранних этапах является статический анализ кода. К сожалению, ряд инструментов реализуют анализ весьма поверхностно, что снижает доверие к методологии статического анализа в целом. Некоторые программисты начинают думать, что анализ кода — это нечто, базирующееся на регулярных выражениях, и они сами легко найдут такие ошибки. На самом деле всё гораздо сложнее и интересней. Боле...
7 декабря 2018 г.Конференция: DevGAMM 2018.
Написание на C и C++ 64-битных программ, работающих с большими массивами данных, требует особой аккуратности. В 64-битном коде встречаются особые трудноуловимые ошибки, о которых редко рассказывают в книгах или на конференциях. Автор рассмотрит паттерны 64-битных ошибок и даст рекомендации, как писать код, защищённый от них.
16 ноября 2018 г.Конференция: YappiDays 2018.
Один из основателей проекта PVS-Studio расскажет об опыте разработки статического анализатора кода C++. У инструментов статического анализа кода существует "проблема айсберга". От пользователей скрыты сложные механизмы анализа кода, и иногда им кажется, что статические анализаторы – это просто какие-то утилиты, ищущие опечатки с помощью регулярных выражений.
Автор доклада постарается в общих чертах описать, как всё ...
3 ноября 2018 г.Конференция: DevOpsConf 2018.
Доклад посвящен статическому анализу кода и ориентирован на тех, кто заинтересован в надёжности и безопасности разрабатываемого в компании программного кода. Условно можно выделить два направления статического тестирования защищённости приложений.
Первый - это поиск уже известных уязвимостей методом сопоставления с шаблоном. Такой подход имеет право на существование и может обнаружить в проекте код, взятый из старо...
1 октября 2018 г.Конференция: C++ Russia 2018.
Язык C++ и инфраструктура вокруг него продолжает активно развиваться, что делает этот язык одним из самых эффективных инструментов в настоящее время. Хочется выделить три фактора, делающие язык C++ сейчас столь привлекательным.
Первое: нововведения в стандарт языка, позволяющие писать эффективный код.
Второе: зрелость инструментов разработки и увеличение скорости сборки проектов.
Третье: зрелось вспомогательного ...
19 апреля 2018 г.