#csharp #dotnet #tip by Karen Payne
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍30🔥6
  Цикломатическая сложность — это программная метрика, предназначенная для количественной оценки сложности программы путем измерения количества независимых путей через ее исходный код.
Данную метрику особенно полезно анализировать при работе с легаси, или когда сталкиваешься с новой кодовой базой и надо быстро понять, с чем имеешь дело
#dotnet #tools #tip by Dave Callan
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥13👍2😢1
  🛠️ Как установить тип столбца Sparse в Entity Framework
Sparse столбцы SQL Server — это обычные столбцы, оптимизированные для хранения NULL-значений. Их использование может сэкономить много места.
#dotnet #tip by Dave Callan
Sparse столбцы SQL Server — это обычные столбцы, оптимизированные для хранения NULL-значений. Их использование может сэкономить много места.
#dotnet #tip by Dave Callan
👍24
  🛠️ Пример параметризованного теста xUnit
Вместо того, чтобы добавлять множество различных тестовых методов с разными входными данными, заданными в теле метода, мы создаем один метод, передаем в него входные данные и ожидаемые результаты для каждого теста в виде параметров.
Это означает меньшее количество тестовых методов (что упрощает изменение логики тестов) и возможность быстро увидеть все входные данные и ожидаемые результаты для конкретного метода вместе.
В примере используется атрибут
#dotnet #csharp #tip by Dave Callan
Вместо того, чтобы добавлять множество различных тестовых методов с разными входными данными, заданными в теле метода, мы создаем один метод, передаем в него входные данные и ожидаемые результаты для каждого теста в виде параметров.
Это означает меньшее количество тестовых методов (что упрощает изменение логики тестов) и возможность быстро увидеть все входные данные и ожидаемые результаты для конкретного метода вместе.
В примере используется атрибут
[ClassData], который загружает тестовые данные из отдельного класса, реализующего IEnumerable<object[]>.#dotnet #csharp #tip by Dave Callan
🥱15👍8❤4🔥4
  🛠️ Пример модульного теста C# с использованием паттерна Builder
💬 Кто использует паттерн Builder для настройки тестовых данных? В каких ситуациях оправданы дополнительные накладные расходы на обслуживание?
#dotnet #csharp #tip by Dave Callan
💬 Кто использует паттерн Builder для настройки тестовых данных? В каких ситуациях оправданы дополнительные накладные расходы на обслуживание?
#dotnet #csharp #tip by Dave Callan
🥰19👍6🤩3🥱3🤔1
  Он был представлен в C# 11. Видимость созданного типа ограничена исходным файлом, в котором он объявлен.
Эта фича помогает избегать конфликтов имен при написании генераторов исходного кода.
💬 Как думаете, в каких кейсах его еще можно применить?
#dotnet #csharp #tip by Oleg Kyrylchuk
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍35😁5
  🔼 Spread element в C# 12: простой пример 
Идея похожа на
💬 Уже пользовались?
#dotnet #csharp #tip by Dave Callan
Идея похожа на
... ( три точки) в JavaScript и используется для объединения коллекций.💬 Уже пользовались?
#dotnet #csharp #tip by Dave Callan
🔥38👍13🌚5😢1🎉1
  Начиная с версии 17.12 Preview 2, больше не нужно явно повторять значения, которые используются в разных окружениях.
#dotnet #csharp #tip by Dave Callan
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🎉12👍5❤3🥰1
  Проблема заключалась в том, что обработчик исключений по умолчанию всегда устанавливал HTTP-код состояния ответа равным 500.
В ASP NET Core 9 представлена новая опция
StatusCodeSelector, которая позволяет выбирать код состояния на основе исключения.👉 Подробнее
#dotnet #csharp #tip by Oleg Kyrylchuk
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥23👍12❤2🌚1
  #dotnet #csharp #tip by Dave Callan
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍8
  