Современный код на .NET редко выполняется изолированно.
Тревожный сигнал:
static List<Order> _orders = new();
List<T> не потокобезопасен — параллельная запись приведёт к повреждению данных или исключению.Лучше:
static ConcurrentBag<Order> _orders = new();
Но ещё лучше избавиться от глобального изменяемого состояния полностью. Статические поля — это скрытые зависимости, которые делают код менее тестируемым и непредсказуемым под нагрузкой.
Вопросы для ревью такого кода:
— Защищено ли общее состояние?
— Есть ли состояния гонки?
— Безопасен ли код при параллельном выполнении?
— Действительно ли асинхронные методы потокобезопасны?
— Нет ли скрытого изменяемого состояния в статических полях?
— Используются ли потокобезопасные коллекции там, где это нужно?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#sharp_view
