Похожие презентации:
Vazhnost-proverok-na-null-v-C-prilozheniyah
1.
Важность проверок наnull в C# приложениях
Обеспечьте безопасность и стабильность своих приложений, избегая
NullReferenceException и повышая качество кода.
2.
Почему null-значения опасны?70% багов связаны с null
Большинство ошибок в C# приложениях возникают из-за
неправильной обработки null-значений
NullReferenceException
Одна из самых распространённых ошибок времени
выполнения в .NET экосистеме
Потери ресурсов
Время разработчиков тратится на устранение ошибок,
снижается надежность системы
3.
Современные средства защиты: nullablereference types
C# 8 и выше
Читаемый код
Введены для явной аннотации
Компиляция с
предупреждениями
nullable и non-nullable типов,
Помогают выявлять потенциальные
понятный и самодокументируемый
позволяя компилятору отслеживать
null-уязвимости на этапе
код для всей команды
потенциальные проблемы
компиляции, до запуска приложения
Позволяют писать более безопасный,
4.
Пример: включение nullable-анализатораКонфигурация проекта
В файле проекта добавляем специальную
директиву для включения анализа nullableтипов:
<Nullable>enable</Nullable>
После этого компилятор начинает
предупреждать о возможных null-опасностях в
коде
string? name;
Переменная может быть null — явное указание возможности
отсутствия значения
string name;
Переменная не может быть null — гарантия наличия
значения на этапе компиляции
5.
Проверки на null: лучшиепрактики
01
Null-conditional оператор
Используйте ?. для безопасного обращения к членам объекта: obj?.Method()
02
Null-coalescing оператор
Применяйте ?? для установки значений по умолчанию: var name = input ?? "Default"
03
Явные проверки
Вводите условные проверки: if (obj != null) { ... } или используйте
ArgumentNullException.ThrowIfNull(obj)
04
Атрибуты аннотации
Для сложных сценариев применяйте атрибуты MemberNotNull, MemberNotNullWhen и другие
6.
Важность правильной инициализацииКонструкторы
Используйте конструкторы и
инициализаторы для гарантии
Инициализация полей
корректного состояния
Поля и свойства должны быть
инициализированы при создании
объекта
Проверки в методах
Включайте валидацию параметров,
чтобы избежать ошибок при вызове
7.
Избегайте ошибок при использовании structReadonly struct
Readonly методы
Помечайте структуры как readonly для
Используйте модификатор readonly для
предотвращения лишних копий и
методов, чтобы компилятор знал об
повышения производительности
отсутствии изменений
In-параметры
Передача через in-параметры уменьшает
копирование и повышает безопасность
8.
Предотвращение утечекпамяти и ошибок
подписки
1
Отписка от событий
Используйте паттерн IDisposable или слабые ссылки для
корректного освобождения ресурсов
2
WeakEventManager
Применяйте WeakEventManager в WPF приложениях для
автоматического управления подписками
3
Анализ памяти
Регулярно проверяйте использование памяти с помощью
инструментов Visual Studio и PerfView
9.
Итоги и рекомендацииКомандная работа
Современные инструменты
Включайте nullable-анализ для всей команды
Используйте актуальные операторы C# и атрибуты
разработки. Единые стандарты — залог качества
аннотации для максимальной безопасности
кода
Код-ревью
Обучение
Проводите систематические проверки кода на
Регулярно обучайте команду лучшим практикам
наличие потенциальных null-уязвимостей
обработки null и современным подходам
10.
Заключение: создавайтенадежные и безопасные
приложения
Проверки на null — неотъемлемая часть профессионального арсенала
современного C#-разработчика. Инвестируйте в автоматизацию и обучение —
и ваши приложения станут устойчивее, надежнее и качественнее!
Начните сегодня
Постепенная миграция
Включите nullable reference types в
Планомерно обновляйте
новых проектах
существующий код
Долгосрочный эффект
Снижение багов и повышение качества кода
Программирование