Тёмный

Ограничения для ValueTask, основы Enums, нашествие Кабанчика 

DotNetRu
Подписаться 9 тыс.
Просмотров 1,6 тыс.
50% 1

Подкаст RadioDotNet выпуск №48 от 23 марта 2022 года
Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT.
Аудиоверсия: anchor.fm/s/f0c0ef4/podcast/p...
Темы:
[00:00:00] - Приветствие
• Radio.DotNet.Ru
[00:01:30] - Announcing .NET 7 Preview 2
• devblogs.microsoft.com/dotnet...
• devblogs.microsoft.com/dotnet...
• github.com/dotnet/efcore/issu...
[00:17:45] - Announcing .NET MAUI Preview 14
• devblogs.microsoft.com/dotnet...
[00:20:16] - An Overview of Distributed Tracing with OpenTelemetry
• aaronstannard.com/opentelemet...
• petabridge.com/blog/why-use-d...
[00:29:24] - Visual Studio 2022 version 17.2 Preview 2
• docs.microsoft.com/en-us/visu...
• devblogs.microsoft.com/visual...
[00:36:08] - ValueTask Restrictions
• blog.stephencleary.com/2020/0...
[00:51:00] - Visual Studio 2022 for Mac Preview 7
• devblogs.microsoft.com/visual...
[00:54:25] - Things you should know about Enums
• www.code4it.dev/blog/5-things...
• www.code4it.dev/blog/5-more-t...
• www.code4it.dev/blog/hasflag-...
[01:13:12] - Подслушано
• • Code of Architecture. ...
• vvsevolodovich.dev/
Голоса выпуска:
• Анатолий Кулаков ( / kulakovt )
• Игорь Лабутин ( / ilabutin )
• Владимир Иванов ( / vvsevolodovich )
Звукорежиссёр:
• Игорь Лабутин ( / ilabutin )
Фоновая музыка:
• Максим Аршинов «Pensive yeti.0.1» (hightech.group/ru/about)
Спасибо за помощь:
• Александр
• Сергей
• Владислав
• Алексей
• Шевченко Антон
• Илья
Почта: Radio@DotNet.Ru
Сайт подкаста: Radio.DotNet.Ru
RSS подписка: anchor.fm/s/f0c0ef4/podcast/rss
Google Podcasts: podcasts.google.com/feed/aHR0...
Apple Podcasts: podcasts.apple.com/us/podcast...
Яндекс Музыка: music.yandex.ru/album/12041961
RU-vid Playlist: • RadioDotNet
Boosty (₽): boosty.to/RadioDotNet
Patreon ($): / radiodotnet

Опубликовано:

 

3 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 13   
@guriysamarin6204
@guriysamarin6204 2 года назад
Live unit testing - прекрасная вещь. Жаль она только в Enterprise. Сейчас большего всего доставляет возможнось запуска тестов в отличном от IDE окружении (в WSL, или контейнере). Аналогичная функциональность в Rider'е не вызывает у меня такой же радости.
@tt0nix
@tt0nix 2 года назад
А в чём разница между подходами VS и Rider, что (казалось бы) одинаковый функционал даёт разное удовлетворение? Я сам live testing не пользовался, мне обычно удобнее горячую клавишу самому нажать. Может быть если тесты долгие и на различных платформах, тогда преимущества понятны. Но у меня таких нет.
@guriysamarin6204
@guriysamarin6204 2 года назад
​@@tt0nix стыдно признаться, но основная претензия это UI. В студии включив live тесты я радовался как ребенок. А в Rider - meeh. Остальное скорее придирки, но: 1) я сижу на Windows, а тесты мне нужны только на Linux 2) переодически настройка в Rider слетает и по умолчанию не показывается покрытие в файлах с кодом, а я привык, что если проблема - вижу сразу, в итоге падение в CI - от этого спасал бы следующий пункт 3) Нету возможности запустить тесты при commit (TODO и форматор запустить можно, а тесты только в Java) (в студии даже этого нет, но в студии мне это было не нужно)
@VoroninPavel
@VoroninPavel 2 года назад
А еще System.Text.Json не поддерживает EnumMemberAttribute ='(
@tt0nix
@tt0nix 2 года назад
Скорее всего, написать свой конвертер с подобной функциональностью это вопрос 5 строк кода?
@VoroninPavel
@VoroninPavel 2 года назад
@@tt0nix MinBy/MaxBy тоже не то чтоб сильно сложно реализовать самому, однако ж впилили их в LINQ.
@tt0nix
@tt0nix 2 года назад
@@VoroninPavel да, конечно. Но Text.Json всё-ещё развивается и постепенно покрывает всё больше и больше возможностей. Может быть добавят в будущем.
@VoroninPavel
@VoroninPavel 2 года назад
@@tt0nix да, висит в гитхабе issue
@guriysamarin6204
@guriysamarin6204 2 года назад
Трудно спорить, что Constructor Injection - это подход по умолчанию и best practices, но даже Mark Seemann Method Injection не отметает. Да и нету более удачного паттерна, чтобы задать зависимость вне composition root.
@tt0nix
@tt0nix 2 года назад
Если не ошибаюсь, он его не отметает только когда нет возможности сделать constructor injection. Тут как бы действительно другого не остаётся. Но если такая возможность есть, то любая другая альтернатива должна отметаться. Есть конкретные ссылки на Симана, чтобы предметно обсудить?
@guriysamarin6204
@guriysamarin6204 2 года назад
@@tt0nix Ну можно взять хоть книгу Dependency Injection Principles, Practices, and Patterns 2018 - там не сказано ничего плохого про использование Method Injection. Приводятся два use case'а: 1. When the consumer of the injected Dependency varies on each call 2. When the injected Dependency varies on each call to a consumer. Плюс пояснение в конце. Unlike the other DI patterns in this chapter, you mainly use Method Injection when you want to supply Dependencies to an already existing consumer. With Constructor Injection and Property Injection, on the other hand, you supply Dependencies to a consumer while it’s being created.
@tt0nix
@tt0nix 2 года назад
@@guriysamarin6204 согласен, Марк рассматривает все виды DI. В том числе и возможности, когда через конструктор это сделать невозможно. Наверное эти подходы имеют право на жизнь, если речь идёт об интеграции с чужими компонентами (например Blazor во всю использует property injection). Но это всё не от хорошей жизни и нельзя забывать о минусах: - Clients can forget to supply the DEPENDENCY, a code smell known as Temporal Coupling. - What would happen if a client tries to change the DEPENDENCY in the middle of the class’s lifetime? - This could lead to inconsistent or unexpected behavior Так вот, если мы говорим полностью о своём коде, где у нас нет никаких ограничений на проектирование компонентов, то всё кроме constructor DI будет лишь показателем плохого проектирования. В хорошем проекте не нужно ничего кроме зависимостей через конструктор.
@guriysamarin6204
@guriysamarin6204 2 года назад
​@@tt0nix согласен
Далее
Task vs ValueTask: When Should I use ValueTask?
10:43