DotNetRu
DotNetRu
  • 599
  • 801 837
Основные конструкторы, предсказуемая сборка, естественные ключи
Подкаст RadioDotNet выпуск №95 от 16 июня 2024 года
Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT.
Аудиоверсия: api.mave.digital/storage/podcasts/dc1a2f8c-50cd-4584-a46a-723efadc6e1e/episodes/33417478-9949-4efe-ade6-b6619482b9f1.mp3
Темы:
[00:00:00] - Приветствие
• Radio.DotNet.Ru
[00:01:27] - .NET 9 Preview 5
• github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview5/libraries.md
• github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview5/aspnetcore.md
• github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview5/efcoreanddata.md
• github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview5/dotnetmaui.md
[00:22:15] - Visual Studio 2022 Preview 2
• learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-preview
• devblogs.microsoft.com/visualstudio/introducing-the-revamped-visual-studio-resource-explorer/
[00:27:34] - Automate your .NET SDK updates for consistent builds
• anthonysimmon.com/automate-dotnet-sdk-updates-global-json-renovate/
[00:51:03] - Thoughts about primary constructors
• andrewlock.net/thoughts-about-primary-constructors-3-pros-and-5-cons/
• andrewlock.net/blocking-primary-constructor-member-capture-using-an-analyzer/
[01:11:56] - You'll regret using natural keys
• blog.ploeh.dk/2024/06/03/youll-regret-using-natural-keys/
[01:30:40] - Introducing links to source code for .NET API Docs
• devblogs.microsoft.com/dotnet/dotnet-docs-link-to-source-code/
[01:48:37] - Кратко о разном
• devblogs.microsoft.com/dotnet/the-dotnet-maui-extension-for-visual-studio-code-is-now-generally-available/
• blog.datalust.co/persistent-logs-and-traces-for-the-net-aspire-dashboard/
• devblogs.microsoft.com/dotnet/openai-dotnet-library/
• github.com/serilog/serilog/releases/tag/v4.0.0
• github.com/tmds/Tmds.Ssh
• github.com/dn-vm/dnvm
Голоса выпуска:
• Анатолий Кулаков
• Игорь Лабутин ( ilabutin)
Звукорежиссёр:
• Игорь Лабутин ( ilabutin)
Фоновая музыка:
• Максим Аршинов «Pensive yeti.0.1» (hightech.group/ru/about)
Спасибо за помощь:
• Александр
• Сергей
• Владислав
• Шевченко Антон
• Лазарев Илья
• Гурий Самарин
• Виктор
• Руслан Артамонов
• Александр Ерыгин
• Сергей Бензенко
• Александр Лапердин
• Ольга Бондаренко
• Дмитрий Сорокин
• Сергей Краснов
• Константин Ушаков
• Андрей Фазлеев
• Басим Аль-Джевахири
Почта: Radio@DotNet.Ru
Сайт подкаста: Radio.DotNet.Ru
RSS подписка: cloud.mave.digital/37167
Google Podcasts: podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9mMGMwZWY0L3BvZGNhc3QvcnNz
Apple Podcasts: podcasts.apple.com/us/podcast/radiodotnet/id1484348948
Яндекс Музыка: music.yandex.ru/album/12041961
UA-cam Playlist: ua-cam.com/play/PLbxr_aGL4q3SpQ9GRn2jv-NEpvN23CUC5.html
Boosty (₽): boosty.to/RadioDotNet
Переглядів: 899

Відео

Роман Булдыгин «Дроны и .NET»
Переглядів 1,5 тис.7 годин тому
Ликбез в сфере FPV (First Person View) квадрокоптеров. Рассказ о своём хобби от мальчика 35 лет. Повесть о том, какое применение находит .NET в области где балом правят C и C .
Елена Щелкунова «Сложность алгоритмов»
Переглядів 1,1 тис.7 годин тому
Про сложность алгоритмов слышали, наверное, все. Это одна из популярных тем для вопросов на собеседованиях. А вот так, чтобы знать на память, как считается сложность того или иного алгоритма - это уже свойственно не всем. Так или иначе, если знания не используются, то они забываются. Елене посчастливилось продолжительное время работать с задачами оптимизации времени исполнения кода, как на фрон...
[S02E09] Проектирование поискового робота | BookClub DOTNET
Переглядів 33719 годин тому
- Псс, парень! Инфа есть? А если найду? - Ну попробуй *достаёт из кармана robots.txt* - Упс, простите, извините, мне мама сказала такое не брать Ведущие: - Роман Гашков - Григорий Кузьмин - Роман Щербаков Дизайн и иллюстрации: - Серафима Лебедева Выпуск на UA-cam: ua-cam.com/video/478msC5jNAQ/v-deo.html&pp=gAQBiAQBsAQB Выпуск на других платформах: bookclub-dotnet.mave.digital/ep-26 Канал книжно...
Релиз Aspire, типы расширений, новинки Build 2024
Переглядів 1,7 тис.14 днів тому
Подкаст RadioDotNet выпуск №94 от 3 июня 2024 года Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT. Аудиоверсия: api.mave.digital/storage/podcasts/dc1a2f8c-50cd-4584-a46a-723efadc6e1e/episodes/4031d4da-b24e-49d5-a924-52d3a30ef9a8.mp3 Темы: [00:00:00] - Приветствие • Radio.DotNet.Ru [00:01:35] - General Availabilit...
Лучший UI Framework, структура Solutions, нужные Channels
Переглядів 2,3 тис.21 день тому
Подкаст RadioDotNet выпуск №93 от 23 мая 2024 года Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT. Аудиоверсия: api.mave.digital/storage/podcasts/dc1a2f8c-50cd-4584-a46a-723efadc6e1e/episodes/902dda52-a894-4ead-8364-75405b843ab6.mp3 Темы: [00:00:00] - Приветствие • Radio.DotNet.Ru [00:01:40] - Сравнение UI-фреймв...
[S02E08] Проектирование системы для сокращения URL-адресов | BookClub DOTNET
Переглядів 737Місяць тому
BookClub DotNet Season 2 #8 Все слышали, что краткость - сестра таланта. Как же добиться краткости и раскрыть свой талант? Этого мы вам не расскажем. Зато мы расскажем, как сокращать URL-ы, заходите послушать! Ведущие: - Роман Гашков - Григорий Кузьмин - Роман Щербаков Дизайн и иллюстрации: - Серафима Лебедева Выпуск на UA-cam: ua-cam.com/video/czBGy7AJIgI/v-deo.html&pp=gAQBiAQB Выпуск на други...
Полезный Dev Proxy, лаконичный TypeSpec, быстрый SearchValues
Переглядів 1,5 тис.Місяць тому
Подкаст RadioDotNet выпуск №92 от 5 мая 2024 года Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT. Аудиоверсия: api.mave.digital/storage/podcasts/dc1a2f8c-50cd-4584-a46a-723efadc6e1e/episodes/746fcb6a-a6fb-4579-81ac-44f92980fad1.mp3 Темы: [00:00:00] - Приветствие • Radio.DotNet.Ru [00:00:54] - .NET Aspire Preview ...
Артём Квашнин «REST API клиенты для C#»
Переглядів 3 тис.Місяць тому
В докладе мы рассмотрим типичные ошибки при работе со стандартным HttpClient, посмотрим на реализацию межсервисного взаимодействия от Microsoft и самое главное - рассмотрим плюсы и минусы популярных генераторов для API клиентов.
Андрей Рягузов «Как мы перешли на Microsoft.Extensions.Configuration и стало хорошо»
Переглядів 2,3 тис.Місяць тому
Андрей Рягузов «Как мы перешли на Microsoft.Extensions.Configuration и стало хорошо»
[S02E07] Проектирование генератора уникальных ИД в распределённых системах | BookClub DOTNET
Переглядів 645Місяць тому
[S02E07] Проектирование генератора уникальных ИД в распределённых системах | BookClub DOTNET
Проникновение в PostgreSQL, правильный solution, радар технологий
Переглядів 1,8 тис.Місяць тому
Проникновение в PostgreSQL, правильный solution, радар технологий
Блестящий Garnet, проблемы экосистемы, OpenAPI и OpenAI
Переглядів 1,7 тис.2 місяці тому
Блестящий Garnet, проблемы экосистемы, OpenAPI и OpenAI
[S02E06] Проектирование хранилища типа "ключ-значение" | BookClub DOTNET
Переглядів 1 тис.2 місяці тому
[S02E06] Проектирование хранилища типа "ключ-значение" | BookClub DOTNET
Валерий Никитин «.NET 8 и улучшения в контейнерах»
Переглядів 1,2 тис.2 місяці тому
Валерий Никитин «.NET 8 и улучшения в контейнерах»
Евгений Федотов «А что там собственно нового в C# 12?»
Переглядів 1,5 тис.2 місяці тому
Евгений Федотов «А что там собственно нового в C# 12?»
Андрей Порожняков «Что нового в Minimal API на ASP.NET Core 8»
Переглядів 1,3 тис.2 місяці тому
Андрей Порожняков «Что нового в Minimal API на ASP.NET Core 8»
Никита Маслов «С# 12: Primary constructors»
Переглядів 6222 місяці тому
Никита Маслов «С# 12: Primary constructors»
Руслан Каменский «Bootstrapping .NET 8 SDK: собираем дотнет из исходников.»
Переглядів 4932 місяці тому
Руслан Каменский «Bootstrapping .NET 8 SDK: собираем дотнет из исходников.»
Александр Гольдебаев «.NET Aspire in Action»
Переглядів 1,5 тис.2 місяці тому
Александр Гольдебаев «.NET Aspire in Action»
Андрей Александров «Вкусные новинки EF Core 8»
Переглядів 9422 місяці тому
Андрей Александров «Вкусные новинки EF Core 8»
Aspire тащит, WinForms downshifting, Git hooks на C#
Переглядів 1,4 тис.3 місяці тому
Aspire тащит, WinForms downshifting, Git hooks на C#
Калечение C#, видение .NET 9, категоризация ошибок
Переглядів 3 тис.3 місяці тому
Калечение C#, видение .NET 9, категоризация ошибок
[S02E05] Согласованное хеширование | BookClub DOTNET
Переглядів 9213 місяці тому
[S02E05] Согласованное хеширование | BookClub DOTNET
Юрий Малич «Повышение производительности .NET-приложения на примере программы поиска дубликатов»
Переглядів 2,3 тис.4 місяці тому
Юрий Малич «Повышение производительности .NET-приложения на примере программы поиска дубликатов»
Денис Цветцих «LINQ Expressions: искусство запрашивать данные»
Переглядів 3,4 тис.4 місяці тому
Денис Цветцих «LINQ Expressions: искусство запрашивать данные»
Правильный REST API, современный binary formatter
Переглядів 2,6 тис.4 місяці тому
Правильный REST API, современный binary formatter
[S02E04] Проектирование ограничителя трафика | BookClub DOTNET
Переглядів 8804 місяці тому
[S02E04] Проектирование ограничителя трафика | BookClub DOTNET
Много Aspire, миграция из Framework, чувствительные логи
Переглядів 1,6 тис.4 місяці тому
Много Aspire, миграция из Framework, чувствительные логи
Евгений Пешков «ConcurrencyToolkit»
Переглядів 2,6 тис.5 місяців тому
Евгений Пешков «ConcurrencyToolkit»

КОМЕНТАРІ

  • @floist95
    @floist95 3 години тому

    просто витрачений час, нічого нового і цікавого все абстрактно , нової інформації 0, все сказане знають навіть люди не зв`язані із fpv

  • @user-iv4nx5zv3j
    @user-iv4nx5zv3j 4 години тому

    Півтори години води

  • @andreymironov8169
    @andreymironov8169 6 годин тому

    Чтобы не ставить приватный анализатор, к параметрам primary constructor можно добавить ключевое слово `in`, тогда их разрешено будет использовать только при инициализации класса.

  • @user-mk3dn7bk7v
    @user-mk3dn7bk7v 6 годин тому

    Бесполезно

  • @GirlAteDeath
    @GirlAteDeath 7 годин тому

    По поводу уникальности. Если мы не можем отличить в таблице два ресторана в спб шаверма и шаверма, то какой смысл в этом? Ну допустим их можно будет добавить с гуидами, но пользователь то не будет знать, что это за шаверма. С фио тоже самое. Натуральная уникальность необходима для таких вещей.

    • @GirlAteDeath
      @GirlAteDeath 7 годин тому

      Для ресторанов это например координаты, или какое-то кадастровый номер. Для фио, день рождения, пол и тд

  • @GirlAteDeath
    @GirlAteDeath 23 години тому

    Дочерним спаном может не хотеться делать, если там огромное количество операций. Потом просто трейс будет невозможно, ни смотреть, ни изучать

  • @wanderingxsx
    @wanderingxsx День тому

    В файле проекта сделают "use primary constructor parameters as readonly" тру фэлс и не будет брэйка)) keylookup дополнительно получаешь будучи джуном. Т.к. праймери ключ, чаще всего и кластерный индекс...) А не помню, обсуждалось про ЕФ8, что они вместо In начали OpenJson делать?

  • @VoroninPavel
    @VoroninPavel День тому

    Вот, кстати, мне непонятна эта политика релизиов. Если команда EF Core рождает фичу, которая стабильна и не имеет ломающих совместимость изменений, то почему бы не выпускать её как апдейт минорной версии? Но они почему-то предпочитают ждать год и выкатывать одним большим пакетом.

  • @michaelsopunov
    @michaelsopunov День тому

    Flight Per View - fpv (Если коптеры)

    • @m057d0p3
      @m057d0p3 День тому

      а не First Person часом?

    • @user-iv4nx5zv3j
      @user-iv4nx5zv3j 4 години тому

      @@m057d0p3 вони вигадали нову розшифровку))

  • @NevilPlay
    @NevilPlay День тому

    Спасибо ребят

  • @NPravdin
    @NPravdin День тому

    Хех, как только я увидел primary constructors - сразу запретил их в проекте через рослин аналайзер. Кому интересно, гитхаб - magicxor/MagicxorAnalyzer.CSharp

  • @smrsgv
    @smrsgv День тому

    очень круто, спасибо!

  • @ZealousSanity
    @ZealousSanity День тому

    Спасибо за очередные новости!

  • @Zlodeyko
    @Zlodeyko 2 дні тому

    Эмм... 38:09 Предлагается сделать Dictionary<int, int> для хранения входящих и исходящих узлов... Очевидно, что ключи в таком случае будут повторяться, а это недопустимо в Dictionary. Или, я ошибаюсь?

    • @mt89vein
      @mt89vein День тому

      Да, там в зале сразу поправили, что как вариант, надо Dictionary<int, int[]> по ключу находим узел, а в массиве список переходов.

  • @AEF23C20
    @AEF23C20 2 дні тому

    автор ведосика объясняет [и не может объяснить] опять и снова банальность, её [банальность] придумали в 70-ых прошлого века, и вот эта банальность: программы - это данные и алгоритмы над этими данными, только это полуправда, а вот истина: программы - это __подготовленные__ данные и узкозаточенные алгоритмы над этими __подготовленными__ данными для этих алгоритмов данные - как розовая абстракция в вакууме никому не нужны, а равно и алгоритмы как абстракция в вакууме - тоже никому не нужны

  • @exAlexey
    @exAlexey 2 дні тому

    Зачем .NET Channels когда есть ConcurrentQueue и SynchronizedCollection

  • @AEF23C20
    @AEF23C20 3 дні тому

    абстрактные алгоритмы - это не сложно, 95% алгоритмов кнут описал в своих великолепных книшках, а вот сложное - это железные алгоритмы, потому что они завязаны собственно на железо, и самое сложное - алгоритмы завязанные на исполняющую среду, и вот это и есть главная проблема, которую вообще никто не рассматривает на пальцах: абстрактные алгоритмы - это не сложно, сложнее - железные алгоритмы, ещё сложнее - алгоритмы настроенные [заточенные] на исполняющую среду, потому что описывается всё, кроме работы исполняющей среды, исполняющую среду никто никогда не описывает а теперь реальная задачЬка: 1. сгенерируйте 10 мультов рандомных строк, замерьте время генерации этих строк 2. замерьте время __последовательного__ доступа к строкам 3. сгенерируйте 10 мультов рандомных строк, но __многопоточно__ , замерьте время многопоточной генерации этих строк 4. докажите, что строки нагенерированные многопоточно - рандомны 5. замерьте время __последовательного__ доступа к строкам, нагенерированным многопоточно 6. вы потеряете быстрый доступ к строкам, нагенерированным многопоточно 7. объясните что происходит, __на__ __самом__ __деле__ 8. вы никогда не сможете объяснить, потому что вы не знаете как работает рантайм, и это самое сложное и есть, всё остальное - не сложно а теперь реальная реальность: все эти абстрактные алгоритмы, всякое разное от кнута - всё это работает, но оно автоматически устарело, потому что мирок ойтишечки принципиально изменился, потому что теперь всё работает многопоточно, и всё ранее работающее, все абстрактные алгоритмы, все железные алгоритмы - становятся не нужны, потому что они отвратительно работают в многопотоке, а для многопотока нужно перекарячивать всё __по__ __новой__ , абсолютно всё что было - нужно перепиливать на многопоток - и это нереально сложная задача и есть задача выше - приведена, задача кажется тривиальной, и ранее на однопотоке она и решалась тривиально, но мирок изменился, и теперь эта казалось бы тривиальная задача по генерации строк - стала предельно __не__ __тривиальной__ а теперь главная суть - тотальный вменяемый переезд на многопоток, на многопоточные алгоритмы - это нереальной сложности задача, это самое сложное и есть, это и есть задачи массового ближайшего будущего в ойтишечке, а кто этого не понимает - отвалится, потому что никакой алгоритм, никакая программка на однопотоке никому не нужны, а соответственно и древние одичалые юзающие древние бесполезные алгоритмы - не нужны добро пожаловать в реальный мирок ближайшего будущего

    • @AEF23C20
      @AEF23C20 3 дні тому

      и ага, для тех кто ничего не понял, на пальцах: если вы не способны карячить банальные массивы многопоточно, если вы не способны изменять массивы многопоточно, если вы не способны играть в многопоток - вы уже отстали от жизни лет на десять как минимум, вам дали проц например на 12 ядер - а вы даже банальный массив не в состоянии накарячить на этих двенадцати ядрах пс: массив это банальный пример, но вы и с банальностями не справляетесь, задумайтесь над этим ппс: выводы

    • @kodilda6137
      @kodilda6137 День тому

      Смотришь на симпотичную девушку и параллельно готовишься к собесу по алгосам

  • @nanoqsh
    @nanoqsh 3 дні тому

    1:41:20 "Зачем вам асинк в вебе?" "Почему бы просто не юзать треды?" Я бы скорее задался вопросом а зачем вам мультитред в вебе? Ведь чтобы обрабатывать запросы достаточно одного треда, который будет асинхронно всё обрабатывать. Если нагрузка это позволяет, то почему бы нет? Взамен не нужно заниматься синхронизацией тредов, в расте это выражается чем что не обязательно работать с Send типами и можно использовать более простые и легковесные типы. Многопоток куда менее гибок, чем асинк. В асинке есть select, можно просто взять две и более любые фьючи и скомпозировать их. Есть таймеры, которые опять же могут работать с любой фьючей. Есть удобная отмена и много других полезных вещей

  • @nanoqsh
    @nanoqsh 3 дні тому

    Какая разница что внутри pin_mut! unsafe? Сам макрос так сделан чтобы безопасно его вызывать и самому никакой unsafe не писать. К слову в std есть более удобный макрос для пина на стеке std::pin::pin! Лучше его использовать, тем более что он возвращает значение, а не просто пересоздает переменную как pin_mut!

  • @nanoqsh
    @nanoqsh 3 дні тому

    Асинк трейты с натягом в 2023 стабилизировали всё же

  • @user-vk8bc8tj8r
    @user-vk8bc8tj8r 5 днів тому

    А возможно ли добавить к трансляции формул из excel интерфейс на основе JavaScript и его фреймворком?

  • @AEF23C20
    @AEF23C20 7 днів тому

    самый крутой "краулер" реализован в церне, ну потому что там валит __в__ __секунду__ 40 __терабайт__ данных с детекторов, однако же оптимизация позволяет отфильтровывать [и отбрасывать] большинство поступающих данных, при этом остаётся всё равно нереально много, и уже этот "остаток" размещается в дата-центрах, и набор дата-центров церна - самый большой продвинутый и самый быстрый в мире, и ни одной канторке до дата-центров церна - никогда не дотянуться

    • @AEF23C20
      @AEF23C20 7 днів тому

      нужно добавить, зачем сие церну? дата-центры церна обслуживают естественно большой адронный коллайдер, события бак-а, т.е. всё то что называется столкновениями частиц, и результаты этих самых столкновений частиц как раз и хранятся в дата-центрах церна, и это самая манструозная айтишечка из имеющихся в мире в принципе, ничего более крутого чем в церне пока не существует

  • @AEF23C20
    @AEF23C20 8 днів тому

    базовые урлы берутся не из интырнетов, для базовых урлов достаточно локального дампа чего бы то ни было, например достаточно локального дампа википедии, и весьма многие подобного рода "агрегаторы" имеют готовый дамп, который можно скачать большими кусками и перемусолить локально вообще не лазя в интырнеты, плюс ко всему подобного рода дампы - __инкрементальные__ , т.е. скачивать и перепарсивать по-новой дамп не нужно, нужно подкачивать дамп изменений например за последний месяц, и этот инкрементальный дамп за месяц перемусоливать итд итп

  • @user-ix9vk5if5b
    @user-ix9vk5if5b 8 днів тому

    думаю что то типа dig определяем IP адреса для A записей. Затем прогоняем их через какую либо открытую базу гео определения например maxmind

  • @AEF23C20
    @AEF23C20 8 днів тому

    ребята, у вас с требованиями сразу беда, потому что требования изначально не верны суть краулера вовсе не в сборе каких то данных, это никому не нужно, суть краулера - это __динамический__ сбор данных ["динамический" - изменяемый по времени], и нужен именно такой краулер, который следит за __динамикой__ __изменения__ данных, а не сборщик данных как таковых

  • @MadMax-9
    @MadMax-9 10 днів тому

    Как я понял из видео, postgres можно запускать в памяти для тестов? Если да, то как?

  • @KarunaDmitry
    @KarunaDmitry 11 днів тому

    Ребят, у вас уши не потеют в наушниках? ) Спасибо за инфо по тестам.

    • @DotNetRu
      @DotNetRu 4 дні тому

      В Sony XM4 не потеют :)

  • @mr_smind
    @mr_smind 11 днів тому

    Сегодня прямо очень хорошо, молодцы! И тема актуальная.

  • @ARTSKYShow
    @ARTSKYShow 13 днів тому

    чувачку с бородой надо дать погоняло - "копи паст" :D

  • @lappovalera
    @lappovalera 13 днів тому

    Спасибо за обзор !

  • @talisman1104
    @talisman1104 13 днів тому

    Чел запарил со своими аналогиями. Особенно, когда при объяснения аналогии придумывает ещё одну. Да скажи как есть

  • @anatoly-k
    @anatoly-k 14 днів тому

    Да, мы любим короткие выпуски

    • @tt0nix
      @tt0nix День тому

      А короткие, это сколько по времени?

  • @amwrag
    @amwrag 14 днів тому

    За ссылки на обсуждаемый контент и тайм-коды в описание - моё уважение и поклон.

  • @user-uu6xz6lk6o
    @user-uu6xz6lk6o 15 днів тому

    implicit/explicit - эти ключевые слова уже есть. for - тоже. Итого только 1 новое ключевое слово

    • @tt0nix
      @tt0nix День тому

      Больно у них применение другое было. Проблема то не в том что есть они или нет. Проблема в том что не было у них такого использования, семантический смысл другой был. Новые разработчики видят неконсистентный синтаксис. Когда в языке for используется и для цикла и для расширения. Но для расширения не всегда, а только если не наследование и не реализация. Это очень сильно усложняет язык, не делая его понятными и простым для изучения.

  • @kitsunofflmao9980
    @kitsunofflmao9980 15 днів тому

    к вопросу о for вместо : вроде в c# после 13 реализация интерфейсов через экстеншены (может завезут в c# 13, но маловероятно) поэтому : заменили на for

    • @tt0nix
      @tt0nix День тому

      Только на это и надежда. Но почему тогда нельзя было воспользоваться существующим синтаксисом двоеточия, который позволяет после "базового" класса указать (через запятую) все интерфейсы которые мы хотим реализовать (расширить)?

  • @MaksimVolkau
    @MaksimVolkau 15 днів тому

    Про extension types: - Я думаю, все уже знают, но implicit и explicit есть в языке - Согласен что : вместо for лучше и слово extension должно помочь парсеру однозначно распознать конструкцию... Мне кажется, они просто на коленке до билда эту фичу подлатали. Много вопросов, потому что ее имплементация годами лежала в форках, и была не одна (еще были concepts and roles). - Жду расширения UnsafeAccessAttribute для работы поверх экстеншена, чтобы доступаться к non public типам.

    • @zachemny
      @zachemny 15 днів тому

      В обсуждении пропозала на GH очень подробно расписано про то, почему ввели for. Если вкратце, то ради избежания неоднозначности: после расширяемого типа могут указываться реализуемые данным экстеншеном интерфейсы.

    • @MaksimVolkau
      @MaksimVolkau 15 днів тому

      @@zachemny Ок, тогда нет вопросов.

    • @tt0nix
      @tt0nix День тому

      Да, есть implicit и explicit, но они настолько редко используют обычными людьми, что этим можно пренебречь. Давайте переформулируем так: в большинстве проектов их нет, большенство разработчиков их никогда в жизни не использовало и вряд ли будет. Тоже самое, что и unsafe, fixed, extern, они конечно есть, но в повседневной жизни вы их не встретите.

    • @tt0nix
      @tt0nix День тому

      @@zachemny Да, был такой разговор. Но, опять же, для однозначности достаточно было бы выдумать какой-то один признак, допустим ключевое слово `extension`. Его наличие - достаточный признак для компилятора, чтобы устранить все последующие неоднозначности. Зачем было так сильно извращаться и закапываться, не ясно. Зачем так много признаков, костылей и избыточностей. for прекрасно эмулируется двоеточием. Расширение наследования, через множественное наследование от интерфейсов (оно уже есть в языке). implicit и explicit эмулируются синтаксисом явных и неявных реализаций интерфейса (он уже есть в языке). Устранить все эти неоднозначности (в самом ленивом случае) можно добавив едино единственное новые слово extension. Сравните с LINQ. Авторы встроили отдельный язык в C#, со своим синтаксисом, ключевыми словами, операторами и не было никакой неоднозначности. Была сложная и продуманная работа над реализацией. А так получается, что сново, проблемы в Roslyn Team спихнули на разработчиков. Вместо того чтобы сделать хорошо (пусть и сложно) в компиляторе, родили уродливый, избыточный, неконсистентный синтаксис с которым теперь придётся жить всем вечно.

    • @zachemny
      @zachemny День тому

      @@tt0nix На все эти сомнения в пропозале отвечено. Если вкратце: extension A: B, C, D. Что такое B, C, D - не ясно. Если при обычном наследовании порядок членов не важен, то здесь получается, что B - это всегда должен быть расширяемый тип, а C и D - реализуемые интерфейсы. То есть порядок следования теперь уже важен, что является нарушением логики языка.

  • @illson4666
    @illson4666 15 днів тому

    поменяйте тему видео на темную

  • @GirlAteDeath
    @GirlAteDeath 16 днів тому

    Невозможно это слушать. Это мы там рассматривали, это мы тут рассматривали, это в книге подробно написано. Делайте самодостаточные видосы без миллиона отсылок.

  • @anatoly-k
    @anatoly-k 16 днів тому

    Общая архитектура в итоге замылилась, не имея под рукой книжку вообще невозможно понять конечное решение. Хорошо бы в конце резюмировать

  • @sergeymikolaitis8205
    @sergeymikolaitis8205 17 днів тому

    Все указывает на то, что MS при покупке mono просто пообещали, что не будут убивать xamarin/maui какое-то время. И сейчас выделяют минимум ресурсов на поддержку. Как будто там всего 5 человек и то, на парт-тайме. Ну и в МС, зная, что xamarin/maui скоро сами же убьют, нигде не используют сами.

    • @exAlexey
      @exAlexey 2 дні тому

      Зачем тогда городить maui? оставили бы xamarin без изменений добавляя только поддержку новых target sdk

  • @user-ms5qf7hp9q
    @user-ms5qf7hp9q 17 днів тому

    После многообещающего начала "бугаенко-долбоящер" ожидал увидеть феерию технической экспертизы. Однако дальше проганья с похмелья не поехало... Спасибо, что час, а не три с половиной. Обнял - приподнял!

  • @user-jz5ek8fv5f
    @user-jz5ek8fv5f 17 днів тому

    Тема тестов не раскрыта ) Почему ничего не сказали про архитектуру? Когда пишешь через тесты, классы/модули получаются слабосвязанными и хорошо тестируемыми (автоматически), а не прибитыми гвоздями друг к другу. Архитектура как бы выкристаллизовывается под давлением тестов - и она получается как ни странно красивой. Лучше прорабатываются различные конеркейсы. Падение скорости разработки - это иллюзия. Поддерживать потом такой код - это одно удовольствие: - новая фича имплементиться написанием теста/тестов быстро и просто - код легко читается - тесты заменяют документацию - не нужен раздутый штат тестировщиков. экономия по деньгам 2x/3x для компании. Я уж молчу про стабильность работы - на порядки возрастает.

    • @user-jz5ek8fv5f
      @user-jz5ek8fv5f 17 днів тому

      рекомендую инструмент NCrunch - просто песня, просто пишешь тесты.

  • @Alexepus-ub4vn
    @Alexepus-ub4vn 18 днів тому

    Ребята, у вас сильно идеализированное рассуждение про работу с легаси для доработок: "Сломал систему тестом, разобрался, почему не работает; сделал доработку - починился тест". По факту бывает так, что ты нифига не понимаешь, что там за значения бегают на входе и на выходе, и не можешь их соотнести с бизнес-требованиями по доработке... пока не продебажишь *систему целиком* на самой бизнес-задаче.

    • @DotNetRu
      @DotNetRu 18 днів тому

      Есть такое, и даже есть отличный лайвхак как тесты писать для таких фиксов: написал фикс, потом git stash, потом пишешь тест чтобы он был красный, git stash pop -> тест должен быть зеленым.

  • @Alexepus-ub4vn
    @Alexepus-ub4vn 18 днів тому

    TDD не дает возможности писать код, выключив голову - что бы там Саша не говорил. Потому что правильный тест на код написать бывает в 2 раза сложнее, чем сам код. Более того, сосредоточение на тестах переносит умственные усилия не в ту сторону, поскольку часто одну и ту же задачу можно решить разными способами уровня выше, чем тестируемый модуль. А иногда некоторые изначально придуманные и тщательно протестированные по TDD способы в реале оказываются нерабочими, и крупноблочную архитектуру приходится переделывать. Поэтому эффективнее сначала реализовать MVP-версию своего решения, а потом допиливать, паралельно покрывая тестами.

    • @DotNetRu
      @DotNetRu 18 днів тому

      Стоит попробовать TDD именно когда голова плохо думает... Прям поймешь насколько он снимает когнитивную нагрузку. А вот когда программист "в ресурсе" TDD наоборот притормаживает поток мысли (но не у всех... люди разные)

    • @user-jz5ek8fv5f
      @user-jz5ek8fv5f 17 днів тому

      @@DotNetRu если писать простенький бэкенд, например для сайта пельменной - то да голову можно выключить. Но если tdd включать на полную катушку с проектированием архитектуры - то через tdd писать несколько сложнее. Скорее всего тестовую инфраструктуру придётся возводить.

  • @user-xh9eh7yb1j
    @user-xh9eh7yb1j 18 днів тому

    по поводу нсвага: всю кастомизацию можно делать за счет .liquid шаблонов. мы у себя так делаем больше 2-3 лет)

  • @mr_smind
    @mr_smind 18 днів тому

    с tdd тебе не нужно знать полный путь до метода, ты сразу его запускаешь из теста

  • @mr_smind
    @mr_smind 18 днів тому

    Nikolay шарит

  • @mr_smind
    @mr_smind 18 днів тому

    лучше tdd пока не придумано

  • @bananasba
    @bananasba 20 днів тому

    Почитал статью про каналы, ну такое, шина сообщений чаще всего синхронная (просто как способ развязать классы, избавится от прямых зависимостей, сделать код расширяемым) и тут смысла в каналах нет, для асинхронного режима все же лучше через базу прокидывать, это надежный способ. В сухом остатке задач под каналы практически нет, ну может какой-то не очень важный паблишинг в signalr.

    • @tt0nix
      @tt0nix 18 днів тому

      Каналы это больше про InMemory история. База и Кафки это уже совсем другой уровень. Просто они слишком низкоуровневые: вычитать сокет, сделать свой MediatR, написать клиент для RabbitMQ, вот для таких инфраструктурных вещей нужны каналы. Конечно подобный код пишется не каждый день. Поэтому каналы и редко нужны обычным разработчикам.

  • @user-no8pr5hh5g
    @user-no8pr5hh5g 21 день тому

    Согласованное хэширование используется при клиентском шардировании БД для определения в какой шард идти за данными