- 599
- 801 837
DotNetRu
Russia
Приєднався 1 бер 2017
DotNetRu - группа независимых сообществ .NET разработчиков со всей России. Мы объединяем людей вокруг .NET платформы, чтобы способствовать обмену опытом и знаниями. Проводим регулярные встречи, чтобы делиться новостями и лучшими практиками в разработке программных продуктов.
Наши группы:
ВКонтакте: dotnetru
Telegram Channel: t.me/DotNetRu
Telegram Chat: t.me/DotNetRuChat
Наши группы:
ВКонтакте: dotnetru
Telegram Channel: t.me/DotNetRu
Telegram Chat: t.me/DotNetRuChat
Основные конструкторы, предсказуемая сборка, естественные ключи
Подкаст 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
Разговоры на тему .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»
просто витрачений час, нічого нового і цікавого все абстрактно , нової інформації 0, все сказане знають навіть люди не зв`язані із fpv
Півтори години води
Чтобы не ставить приватный анализатор, к параметрам primary constructor можно добавить ключевое слово `in`, тогда их разрешено будет использовать только при инициализации класса.
Бесполезно
По поводу уникальности. Если мы не можем отличить в таблице два ресторана в спб шаверма и шаверма, то какой смысл в этом? Ну допустим их можно будет добавить с гуидами, но пользователь то не будет знать, что это за шаверма. С фио тоже самое. Натуральная уникальность необходима для таких вещей.
Для ресторанов это например координаты, или какое-то кадастровый номер. Для фио, день рождения, пол и тд
Дочерним спаном может не хотеться делать, если там огромное количество операций. Потом просто трейс будет невозможно, ни смотреть, ни изучать
В файле проекта сделают "use primary constructor parameters as readonly" тру фэлс и не будет брэйка)) keylookup дополнительно получаешь будучи джуном. Т.к. праймери ключ, чаще всего и кластерный индекс...) А не помню, обсуждалось про ЕФ8, что они вместо In начали OpenJson делать?
Вот, кстати, мне непонятна эта политика релизиов. Если команда EF Core рождает фичу, которая стабильна и не имеет ломающих совместимость изменений, то почему бы не выпускать её как апдейт минорной версии? Но они почему-то предпочитают ждать год и выкатывать одним большим пакетом.
Flight Per View - fpv (Если коптеры)
а не First Person часом?
@@m057d0p3 вони вигадали нову розшифровку))
Спасибо ребят
Хех, как только я увидел primary constructors - сразу запретил их в проекте через рослин аналайзер. Кому интересно, гитхаб - magicxor/MagicxorAnalyzer.CSharp
очень круто, спасибо!
Спасибо за очередные новости!
Эмм... 38:09 Предлагается сделать Dictionary<int, int> для хранения входящих и исходящих узлов... Очевидно, что ключи в таком случае будут повторяться, а это недопустимо в Dictionary. Или, я ошибаюсь?
Да, там в зале сразу поправили, что как вариант, надо Dictionary<int, int[]> по ключу находим узел, а в массиве список переходов.
автор ведосика объясняет [и не может объяснить] опять и снова банальность, её [банальность] придумали в 70-ых прошлого века, и вот эта банальность: программы - это данные и алгоритмы над этими данными, только это полуправда, а вот истина: программы - это __подготовленные__ данные и узкозаточенные алгоритмы над этими __подготовленными__ данными для этих алгоритмов данные - как розовая абстракция в вакууме никому не нужны, а равно и алгоритмы как абстракция в вакууме - тоже никому не нужны
Зачем .NET Channels когда есть ConcurrentQueue и SynchronizedCollection
абстрактные алгоритмы - это не сложно, 95% алгоритмов кнут описал в своих великолепных книшках, а вот сложное - это железные алгоритмы, потому что они завязаны собственно на железо, и самое сложное - алгоритмы завязанные на исполняющую среду, и вот это и есть главная проблема, которую вообще никто не рассматривает на пальцах: абстрактные алгоритмы - это не сложно, сложнее - железные алгоритмы, ещё сложнее - алгоритмы настроенные [заточенные] на исполняющую среду, потому что описывается всё, кроме работы исполняющей среды, исполняющую среду никто никогда не описывает а теперь реальная задачЬка: 1. сгенерируйте 10 мультов рандомных строк, замерьте время генерации этих строк 2. замерьте время __последовательного__ доступа к строкам 3. сгенерируйте 10 мультов рандомных строк, но __многопоточно__ , замерьте время многопоточной генерации этих строк 4. докажите, что строки нагенерированные многопоточно - рандомны 5. замерьте время __последовательного__ доступа к строкам, нагенерированным многопоточно 6. вы потеряете быстрый доступ к строкам, нагенерированным многопоточно 7. объясните что происходит, __на__ __самом__ __деле__ 8. вы никогда не сможете объяснить, потому что вы не знаете как работает рантайм, и это самое сложное и есть, всё остальное - не сложно а теперь реальная реальность: все эти абстрактные алгоритмы, всякое разное от кнута - всё это работает, но оно автоматически устарело, потому что мирок ойтишечки принципиально изменился, потому что теперь всё работает многопоточно, и всё ранее работающее, все абстрактные алгоритмы, все железные алгоритмы - становятся не нужны, потому что они отвратительно работают в многопотоке, а для многопотока нужно перекарячивать всё __по__ __новой__ , абсолютно всё что было - нужно перепиливать на многопоток - и это нереально сложная задача и есть задача выше - приведена, задача кажется тривиальной, и ранее на однопотоке она и решалась тривиально, но мирок изменился, и теперь эта казалось бы тривиальная задача по генерации строк - стала предельно __не__ __тривиальной__ а теперь главная суть - тотальный вменяемый переезд на многопоток, на многопоточные алгоритмы - это нереальной сложности задача, это самое сложное и есть, это и есть задачи массового ближайшего будущего в ойтишечке, а кто этого не понимает - отвалится, потому что никакой алгоритм, никакая программка на однопотоке никому не нужны, а соответственно и древние одичалые юзающие древние бесполезные алгоритмы - не нужны добро пожаловать в реальный мирок ближайшего будущего
и ага, для тех кто ничего не понял, на пальцах: если вы не способны карячить банальные массивы многопоточно, если вы не способны изменять массивы многопоточно, если вы не способны играть в многопоток - вы уже отстали от жизни лет на десять как минимум, вам дали проц например на 12 ядер - а вы даже банальный массив не в состоянии накарячить на этих двенадцати ядрах пс: массив это банальный пример, но вы и с банальностями не справляетесь, задумайтесь над этим ппс: выводы
Смотришь на симпотичную девушку и параллельно готовишься к собесу по алгосам
1:41:20 "Зачем вам асинк в вебе?" "Почему бы просто не юзать треды?" Я бы скорее задался вопросом а зачем вам мультитред в вебе? Ведь чтобы обрабатывать запросы достаточно одного треда, который будет асинхронно всё обрабатывать. Если нагрузка это позволяет, то почему бы нет? Взамен не нужно заниматься синхронизацией тредов, в расте это выражается чем что не обязательно работать с Send типами и можно использовать более простые и легковесные типы. Многопоток куда менее гибок, чем асинк. В асинке есть select, можно просто взять две и более любые фьючи и скомпозировать их. Есть таймеры, которые опять же могут работать с любой фьючей. Есть удобная отмена и много других полезных вещей
Какая разница что внутри pin_mut! unsafe? Сам макрос так сделан чтобы безопасно его вызывать и самому никакой unsafe не писать. К слову в std есть более удобный макрос для пина на стеке std::pin::pin! Лучше его использовать, тем более что он возвращает значение, а не просто пересоздает переменную как pin_mut!
Асинк трейты с натягом в 2023 стабилизировали всё же
А возможно ли добавить к трансляции формул из excel интерфейс на основе JavaScript и его фреймворком?
самый крутой "краулер" реализован в церне, ну потому что там валит __в__ __секунду__ 40 __терабайт__ данных с детекторов, однако же оптимизация позволяет отфильтровывать [и отбрасывать] большинство поступающих данных, при этом остаётся всё равно нереально много, и уже этот "остаток" размещается в дата-центрах, и набор дата-центров церна - самый большой продвинутый и самый быстрый в мире, и ни одной канторке до дата-центров церна - никогда не дотянуться
нужно добавить, зачем сие церну? дата-центры церна обслуживают естественно большой адронный коллайдер, события бак-а, т.е. всё то что называется столкновениями частиц, и результаты этих самых столкновений частиц как раз и хранятся в дата-центрах церна, и это самая манструозная айтишечка из имеющихся в мире в принципе, ничего более крутого чем в церне пока не существует
базовые урлы берутся не из интырнетов, для базовых урлов достаточно локального дампа чего бы то ни было, например достаточно локального дампа википедии, и весьма многие подобного рода "агрегаторы" имеют готовый дамп, который можно скачать большими кусками и перемусолить локально вообще не лазя в интырнеты, плюс ко всему подобного рода дампы - __инкрементальные__ , т.е. скачивать и перепарсивать по-новой дамп не нужно, нужно подкачивать дамп изменений например за последний месяц, и этот инкрементальный дамп за месяц перемусоливать итд итп
думаю что то типа dig определяем IP адреса для A записей. Затем прогоняем их через какую либо открытую базу гео определения например maxmind
ребята, у вас с требованиями сразу беда, потому что требования изначально не верны суть краулера вовсе не в сборе каких то данных, это никому не нужно, суть краулера - это __динамический__ сбор данных ["динамический" - изменяемый по времени], и нужен именно такой краулер, который следит за __динамикой__ __изменения__ данных, а не сборщик данных как таковых
Как я понял из видео, postgres можно запускать в памяти для тестов? Если да, то как?
Ребят, у вас уши не потеют в наушниках? ) Спасибо за инфо по тестам.
В Sony XM4 не потеют :)
Сегодня прямо очень хорошо, молодцы! И тема актуальная.
чувачку с бородой надо дать погоняло - "копи паст" :D
Спасибо за обзор !
Чел запарил со своими аналогиями. Особенно, когда при объяснения аналогии придумывает ещё одну. Да скажи как есть
Да, мы любим короткие выпуски
А короткие, это сколько по времени?
За ссылки на обсуждаемый контент и тайм-коды в описание - моё уважение и поклон.
implicit/explicit - эти ключевые слова уже есть. for - тоже. Итого только 1 новое ключевое слово
Больно у них применение другое было. Проблема то не в том что есть они или нет. Проблема в том что не было у них такого использования, семантический смысл другой был. Новые разработчики видят неконсистентный синтаксис. Когда в языке for используется и для цикла и для расширения. Но для расширения не всегда, а только если не наследование и не реализация. Это очень сильно усложняет язык, не делая его понятными и простым для изучения.
к вопросу о for вместо : вроде в c# после 13 реализация интерфейсов через экстеншены (может завезут в c# 13, но маловероятно) поэтому : заменили на for
Только на это и надежда. Но почему тогда нельзя было воспользоваться существующим синтаксисом двоеточия, который позволяет после "базового" класса указать (через запятую) все интерфейсы которые мы хотим реализовать (расширить)?
Про extension types: - Я думаю, все уже знают, но implicit и explicit есть в языке - Согласен что : вместо for лучше и слово extension должно помочь парсеру однозначно распознать конструкцию... Мне кажется, они просто на коленке до билда эту фичу подлатали. Много вопросов, потому что ее имплементация годами лежала в форках, и была не одна (еще были concepts and roles). - Жду расширения UnsafeAccessAttribute для работы поверх экстеншена, чтобы доступаться к non public типам.
В обсуждении пропозала на GH очень подробно расписано про то, почему ввели for. Если вкратце, то ради избежания неоднозначности: после расширяемого типа могут указываться реализуемые данным экстеншеном интерфейсы.
@@zachemny Ок, тогда нет вопросов.
Да, есть implicit и explicit, но они настолько редко используют обычными людьми, что этим можно пренебречь. Давайте переформулируем так: в большинстве проектов их нет, большенство разработчиков их никогда в жизни не использовало и вряд ли будет. Тоже самое, что и unsafe, fixed, extern, они конечно есть, но в повседневной жизни вы их не встретите.
@@zachemny Да, был такой разговор. Но, опять же, для однозначности достаточно было бы выдумать какой-то один признак, допустим ключевое слово `extension`. Его наличие - достаточный признак для компилятора, чтобы устранить все последующие неоднозначности. Зачем было так сильно извращаться и закапываться, не ясно. Зачем так много признаков, костылей и избыточностей. for прекрасно эмулируется двоеточием. Расширение наследования, через множественное наследование от интерфейсов (оно уже есть в языке). implicit и explicit эмулируются синтаксисом явных и неявных реализаций интерфейса (он уже есть в языке). Устранить все эти неоднозначности (в самом ленивом случае) можно добавив едино единственное новые слово extension. Сравните с LINQ. Авторы встроили отдельный язык в C#, со своим синтаксисом, ключевыми словами, операторами и не было никакой неоднозначности. Была сложная и продуманная работа над реализацией. А так получается, что сново, проблемы в Roslyn Team спихнули на разработчиков. Вместо того чтобы сделать хорошо (пусть и сложно) в компиляторе, родили уродливый, избыточный, неконсистентный синтаксис с которым теперь придётся жить всем вечно.
@@tt0nix На все эти сомнения в пропозале отвечено. Если вкратце: extension A: B, C, D. Что такое B, C, D - не ясно. Если при обычном наследовании порядок членов не важен, то здесь получается, что B - это всегда должен быть расширяемый тип, а C и D - реализуемые интерфейсы. То есть порядок следования теперь уже важен, что является нарушением логики языка.
поменяйте тему видео на темную
Невозможно это слушать. Это мы там рассматривали, это мы тут рассматривали, это в книге подробно написано. Делайте самодостаточные видосы без миллиона отсылок.
Общая архитектура в итоге замылилась, не имея под рукой книжку вообще невозможно понять конечное решение. Хорошо бы в конце резюмировать
Все указывает на то, что MS при покупке mono просто пообещали, что не будут убивать xamarin/maui какое-то время. И сейчас выделяют минимум ресурсов на поддержку. Как будто там всего 5 человек и то, на парт-тайме. Ну и в МС, зная, что xamarin/maui скоро сами же убьют, нигде не используют сами.
Зачем тогда городить maui? оставили бы xamarin без изменений добавляя только поддержку новых target sdk
После многообещающего начала "бугаенко-долбоящер" ожидал увидеть феерию технической экспертизы. Однако дальше проганья с похмелья не поехало... Спасибо, что час, а не три с половиной. Обнял - приподнял!
Тема тестов не раскрыта ) Почему ничего не сказали про архитектуру? Когда пишешь через тесты, классы/модули получаются слабосвязанными и хорошо тестируемыми (автоматически), а не прибитыми гвоздями друг к другу. Архитектура как бы выкристаллизовывается под давлением тестов - и она получается как ни странно красивой. Лучше прорабатываются различные конеркейсы. Падение скорости разработки - это иллюзия. Поддерживать потом такой код - это одно удовольствие: - новая фича имплементиться написанием теста/тестов быстро и просто - код легко читается - тесты заменяют документацию - не нужен раздутый штат тестировщиков. экономия по деньгам 2x/3x для компании. Я уж молчу про стабильность работы - на порядки возрастает.
рекомендую инструмент NCrunch - просто песня, просто пишешь тесты.
Ребята, у вас сильно идеализированное рассуждение про работу с легаси для доработок: "Сломал систему тестом, разобрался, почему не работает; сделал доработку - починился тест". По факту бывает так, что ты нифига не понимаешь, что там за значения бегают на входе и на выходе, и не можешь их соотнести с бизнес-требованиями по доработке... пока не продебажишь *систему целиком* на самой бизнес-задаче.
Есть такое, и даже есть отличный лайвхак как тесты писать для таких фиксов: написал фикс, потом git stash, потом пишешь тест чтобы он был красный, git stash pop -> тест должен быть зеленым.
TDD не дает возможности писать код, выключив голову - что бы там Саша не говорил. Потому что правильный тест на код написать бывает в 2 раза сложнее, чем сам код. Более того, сосредоточение на тестах переносит умственные усилия не в ту сторону, поскольку часто одну и ту же задачу можно решить разными способами уровня выше, чем тестируемый модуль. А иногда некоторые изначально придуманные и тщательно протестированные по TDD способы в реале оказываются нерабочими, и крупноблочную архитектуру приходится переделывать. Поэтому эффективнее сначала реализовать MVP-версию своего решения, а потом допиливать, паралельно покрывая тестами.
Стоит попробовать TDD именно когда голова плохо думает... Прям поймешь насколько он снимает когнитивную нагрузку. А вот когда программист "в ресурсе" TDD наоборот притормаживает поток мысли (но не у всех... люди разные)
@@DotNetRu если писать простенький бэкенд, например для сайта пельменной - то да голову можно выключить. Но если tdd включать на полную катушку с проектированием архитектуры - то через tdd писать несколько сложнее. Скорее всего тестовую инфраструктуру придётся возводить.
по поводу нсвага: всю кастомизацию можно делать за счет .liquid шаблонов. мы у себя так делаем больше 2-3 лет)
с tdd тебе не нужно знать полный путь до метода, ты сразу его запускаешь из теста
Nikolay шарит
лучше tdd пока не придумано
Почитал статью про каналы, ну такое, шина сообщений чаще всего синхронная (просто как способ развязать классы, избавится от прямых зависимостей, сделать код расширяемым) и тут смысла в каналах нет, для асинхронного режима все же лучше через базу прокидывать, это надежный способ. В сухом остатке задач под каналы практически нет, ну может какой-то не очень важный паблишинг в signalr.
Каналы это больше про InMemory история. База и Кафки это уже совсем другой уровень. Просто они слишком низкоуровневые: вычитать сокет, сделать свой MediatR, написать клиент для RabbitMQ, вот для таких инфраструктурных вещей нужны каналы. Конечно подобный код пишется не каждый день. Поэтому каналы и редко нужны обычным разработчикам.
Согласованное хэширование используется при клиентском шардировании БД для определения в какой шард идти за данными