Каждый будний день одно строгое правило для старших инженеров C#/.NET, использующих Cursor. Вот целая неделя в одном прочтении — канонические публикации публикуются в блоге Agentic Architect. Вс 09 авг. OrderId как структура записи OrderId (Guid Value) превосходит необработанный Gui...
Каждый будний день одно строгое правило для старших инженеров C#/.NET, использующих Cursor. Вот целая неделя в одном прочтении — канонические публикации публикуются в блоге Agentic Architect.
7 ежедневных правил для старших
Правило 13: Строго типизированные идентификаторы
Вс 09 авг.
OrderId как структура записи OrderId (Guid Value) везде превосходит необработанный Guid. Останавливает ИИ, передающего CustomerId там, где ожидался OrderId — ошибку, которую компилятор не может обнаружить с помощью примитивной одержимости, но мгновенно обнаруживает с помощью доменных примитивов.
→ Постоянная ссылка в блоге
Правило 12: IOptionsSnapshot поверх необработанной конфигурации
Сб 08 авг.
Бизнес-код никогда не должен вызывать IConfiguration напрямую. Только строго типизированные привязки IOptions или IOptionsSnapshot. ИИ любит «просто получить значение конфигурации» — отказаться от него и принудительно создать класс настроек с атрибутами проверки.
→ Постоянная ссылка в блоге
Правило 11: Перебрасывайте, не бросайте бывшего
Пт 07 авг.
throw ex сбрасывает трассировку стека. throw сохраняет его. Курсор ошибается примерно в 40 процентах случаев при создании блоков catch. Перепишите любой голый throw ex на throw, если исключение не было явно обернуто.
→ Постоянная ссылка в блоге
Правило 10: AsNoTracking для операций чтения
Чт, 6 авг.
Каждый запрос EF Core только для чтения должен вызывать AsNoT.