#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
🥱14👍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👍12🌚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