Как я познакомился с xUnit DI
В xUnit есть классный инструментарий для создания разделяемого контекста между тестами с разным временем жизни - https://xunit.net/docs/shared-context
Если кто-то читал исходники интеграционных тестов
Силами фреймворка экземпляр класса контекста пропихивается в конструктор класса тестов, реализующих указанный интерфейс
Однако, что меня всегда смущало абстрацию для вывода он прогнать в конструктор контекста не может
Приходилось писать руками бойлерплейт:
1. Запросить
2. Передать в
Однако, я познакомился с библиотекой Xunit.DependencyInjection, которая решает эту проблему добавляя DI для этих самых контекстов
Получилось очень хитрое решение, убравшее бойлерплейт - TestHostFixture
Ну а PR отрисуется чуть ниже 👇
В xUnit есть классный инструментарий для создания разделяемого контекста между тестами с разным временем жизни - https://xunit.net/docs/shared-context
Если кто-то читал исходники интеграционных тестов
hydranoscript, то мог заметить, что там я использую IClassFixture<>Силами фреймворка экземпляр класса контекста пропихивается в конструктор класса тестов, реализующих указанный интерфейс
Однако, что меня всегда смущало абстрацию для вывода он прогнать в конструктор контекста не может
Приходилось писать руками бойлерплейт:
1. Запросить
ITestOutputHelper в конструкторе тестового класса2. Передать в
fixture.GetRunnerОднако, я познакомился с библиотекой Xunit.DependencyInjection, которая решает эту проблему добавляя DI для этих самых контекстов
Получилось очень хитрое решение, убравшее бойлерплейт - TestHostFixture
Ну а PR отрисуется чуть ниже 👇
GitHub
Внедрение ITestOutputHelper через xUnit DI +semver:skip by Stepami · Pull Request #116 · Stepami/hydranoscript
Denoscription
https://stackoverflow.com/a/73141087
При создании новых интеграционников я бы упёрся в проблему копипасты бойлерплейта:
Запросить ITestOutputHelper в конструкторе тестового класса
Пере...
https://stackoverflow.com/a/73141087
При создании новых интеграционников я бы упёрся в проблему копипасты бойлерплейта:
Запросить ITestOutputHelper в конструкторе тестового класса
Пере...
👍5🔥3❤1
StepOne | Степан Минин
На что обратить внимание из октябрьского? 🥇 Обходим ограничения Source Generators 📱 W Youtube ролик 🌎 DbMocker, must install 🔄 Улучшаем .csproj двумя дедовскими методиками и ещё пакет не забываем, ага Напишите в комментах - зарядить ли на Хабр текстовые…
Зима близко 🥶
Ноябрь заканчивается…
🛫 ОФИЦИАЛЬНО
StepOne - open source contributor
🛫 Позор ФуфлЯндекса
🥜 NNNUT
🛫 Прожарка HR
🛫 StepOne technologies edit
Ноябрь заканчивается…
StepOne - open source contributor
🥜 NNNUT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2❤1😍1
Выйдя из военкомата, захотелось сообщить важную новость
С этого дня открываю постоянную рубрику гостевых постов
Вы можете прислать мне в личку ( @ststphn ) контент/идеи/наработки, а я помогу их допилить и опубликовать здесь, на канале
Это предложение для тех, кому нужна площадка для публикации, не такая токс как Хабр, когда хотелось попробовать, но идей только на один пост или нужна простая проба пера
Всем StepOne, конец связи 🤝
Вы можете прислать мне в личку (
Это предложение для тех, кому нужна площадка для публикации, не такая токс как Хабр, когда хотелось попробовать, но идей только на один пост или нужна простая проба пера
Всем StepOne, конец связи 🤝
👍26🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥12😁7❤5❤🔥2👍1
Найм сломан
Давайте честно, хх ру, хабр карьера и линкедин просто достали!
Эти бездушные гигантские корпораты только поощряют ту вакханалию, которую постоянно устраивают HRюши…
А что если бы появилось онлайн пространство для построения карьеры, которое о вас заботится?
Что если бы появился помощник, который всегда доступен и подберёт наилучшую стратегию карьерного роста, используя индивидуальный подход?
И я тоже) Потому что мой подписчик, Роман Сухих @Roman_Suhih_tg, занимается разработкой такого проекта
Его детище - соцсеть Grossmann, которая заставит наконец отказаться от паразита на теле IT в виде HR
Индивидуальные рекомендации по развитию талантов, постоянная поддержка в развитии, нетворкинг с единомышленниками, анализ роста доходов и многое другое
That’s the whole freaking package!
Роман занимается разработкой в одиночку на протяжении полугода и ему нужна помощь
Не помешают как бэкенд разработчики, так и фронтенд в особенности
За это время уже есть есть три полноценных микросервиса, и еле движимый фронт
Джависты мимо - стек джентельменский, шарпы: SignalR, RabbitMQ, Garnet
Со стороны фронта Vue, SCSS, Typenoscript
Связаться с Романом:
https://news.1rj.ru/str/Roman_Suhih_tg
#гостевой
Давайте честно, хх ру, хабр карьера и линкедин просто достали!
Эти бездушные гигантские корпораты только поощряют ту вакханалию, которую постоянно устраивают HRюши…
А что если бы появилось онлайн пространство для построения карьеры, которое о вас заботится?
Что если бы появился помощник, который всегда доступен и подберёт наилучшую стратегию карьерного роста, используя индивидуальный подход?
Имаджинировали увольнение бесполезных рекрутерш?
И я тоже) Потому что мой подписчик, Роман Сухих @Roman_Suhih_tg, занимается разработкой такого проекта
Его детище - соцсеть Grossmann, которая заставит наконец отказаться от паразита на теле IT в виде HR
Индивидуальные рекомендации по развитию талантов, постоянная поддержка в развитии, нетворкинг с единомышленниками, анализ роста доходов и многое другое
That’s the whole freaking package!
Роман занимается разработкой в одиночку на протяжении полугода и ему нужна помощь
Не помешают как бэкенд разработчики, так и фронтенд в особенности
За это время уже есть есть три полноценных микросервиса, и еле движимый фронт
Джависты мимо - стек джентельменский, шарпы: SignalR, RabbitMQ, Garnet
Со стороны фронта Vue, SCSS, Typenoscript
Связаться с Романом:
https://news.1rj.ru/str/Roman_Suhih_tg
#гостевой
❤🔥14🔥6👍3🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
gotta pump those numbers up, those are rookie numbers 🗿
😁12🤩3❤2
В декабрьской суете я пропустил, что .NET 9 оказывается уже релизнулся, аж месяц назад
Одним из самых значимых нововведений считаю внедрение в стандартную библиотеку UUIDv7
Почему цифра 7 важна?
Раньше, значение было реализовано согласно стандарту v4 - на основе случайных байтов
Грубо говоря, написать
Это создаёт проблемы с производительностью, поскольку когда значения случайны, они неупорядочены, как следствие, их тяжелее индексировать и сортировать
Стандарт v7 предлагает другую концепцию - идентификатор, основанный на метке времени
Соответственно, значения будут упорядочены в неубывающем порядке по определению, такой вот IDENTITY автоинкремент на стероидах
Новый API:
Одним из самых значимых нововведений считаю внедрение в стандартную библиотеку UUIDv7
Почему цифра 7 важна?
Guid полезен для БД, как тип первичного ключа, поскольку гарантирует сильную уникальность своим разнообразием значенийРаньше, значение было реализовано согласно стандарту v4 - на основе случайных байтов
Грубо говоря, написать
Guid.NewGuid() семантически равносильно Random.NextInt64()Это создаёт проблемы с производительностью, поскольку когда значения случайны, они неупорядочены, как следствие, их тяжелее индексировать и сортировать
Стандарт v7 предлагает другую концепцию - идентификатор, основанный на метке времени
Соответственно, значения будут упорядочены в неубывающем порядке по определению, такой вот IDENTITY автоинкремент на стероидах
Новый API:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
🔥35👍17❤5
StepOne | Степан Минин
Потому что в скором времени будет совместный стрим с Анатолием @overrideTech, где ваши CV будут прожарены)
Рад вам анонсировать, что стрим состоится 21 декабря в 18:00
Ссылочка
https://www.twitch.tv/overrideTech
Ссылочка
https://www.twitch.tv/overrideTech
Twitch
OverrideTech - Twitch
Аллоха, меня зовут Толя, в недавнем прошлом я разработчик. Почти каждый вечер на стриме я менторю: провожу ревью кода и знаний, готовлю к собеседованиям, помогаю делать крутые продающие резюме. Присоединяйся, задавай вопросы и проси помощи, если думаешь,…
👍3🔥3🤩1
StepOne | Степан Минин
Запись выступления на Стачке 💪 Наконец-то стала доступна! Бекендеры были в шоке, когда узнали, что при перекладывании JSON'ов можно...😅
Начиная с .NET 7 я пристально слежу за обновлениями платформенного сериализатора
9-я же версия не копает куда-то вглубь, а растёт вширь, охватывая всего понемножку.
Во-первых, наконец-то завезли нормальную сериализацию енамов:
Во-вторых, добавили глубокую проверку на равенство:
В-третьих, убрали строгость порядка полей метанаданных:
В общем, то тут то там, по мелочи чего-то добавили
Полная сводка всех свежих новостей тут 👉 https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9
System.Text.Json просто потому, что в 7-й версии сделали прорыв с полиморфизмом, а в 8-й с интеграцией Source Generators9-я же версия не копает куда-то вглубь, а растёт вширь, охватывая всего понемножку.
Во-первых, наконец-то завезли нормальную сериализацию енамов:
JsonSerializer.Serialize(MyEnum.Value1 | MyEnum.Value2); // "Value1, Custom enum value"
[Flags, JsonConverter(typeof(JsonStringEnumConverter))]
enum MyEnum
{
Value1 = 1,
[JsonStringEnumMemberName("Custom enum value")]
Value2 = 2,
}
Во-вторых, добавили глубокую проверку на равенство:
JsonElement left = JsonDocument.Parse("10e-3").RootElement;
JsonElement right = JsonDocument.Parse("0.001").RootElement;
JsonElement.DeepEquals(left, right); // TrueВ-третьих, убрали строгость порядка полей метанаданных:
JsonSerializerOptions options = new() { AllowOutOfOrderMetadataProperties = true };
JsonSerializer.Deserialize<Base>("""{"Name":"Name","$type":"derived"}""", options); // SuccessВ общем, то тут то там, по мелочи чего-то добавили
Полная сводка всех свежих новостей тут 👉 https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9
Microsoft News
What’s new in System.Text.Json in .NET 9
An overview of all new .NET 9 features in System.Text.Json for developers.
👍25🔥4❤3
Моя скромная заявка на вступление в айтишный лор
Жду реакт беляша и разоблачение набоки
Наслаждайтесь 😘
https://youtu.be/D9_K3aaldD4?si=wIcegqCrD4iMKt-p
Жду реакт беляша и разоблачение набоки
Наслаждайтесь 😘
https://youtu.be/D9_K3aaldD4?si=wIcegqCrD4iMKt-p
YouTube
HR - раковая опухоль IT
Telegram канал https://news.1rj.ru/str/steponeit
Закрытый телеграм канал https://news.1rj.ru/str/tribute/app?startapp=slOA
Запись лекции - https://news.1rj.ru/str/steponeit/461
Исследование eye tracking - https://news.1rj.ru/str/steponeit/367
Кейс Джерри Ли - https://news.1rj.ru/str/steponeit/367
HR чуть лучше…
Закрытый телеграм канал https://news.1rj.ru/str/tribute/app?startapp=slOA
Запись лекции - https://news.1rj.ru/str/steponeit/461
Исследование eye tracking - https://news.1rj.ru/str/steponeit/367
Кейс Джерри Ли - https://news.1rj.ru/str/steponeit/367
HR чуть лучше…
🔥24❤🔥5❤3🥰1
Твой шанс на 2025
Из моего последнего видео вы поняли, что из-за плохой работы рекрутеров найти работу в IT становится всё сложнее
Однако, помимо апгрейда резюме есть ещё одно решение от моего кореша Сани из канала «Папочка Дотнета»
Совсем недавно, он запустил лютое менторство с сопровождением до оффера, внимание, БЕЗ ПРЕДОПЛАТЫ
Александру помогает мой знакомый по крупному финтеху, Сергей Назаров, опытный руководитель разработки бэкенда, подтверждающий в комментариях верность моих тезисов
Никакого подвоха, никакого инфоцыганства - только спецы, желающие вырастить ещё более крутых спецов
Вся инфа на канале @dotnetdad по ссылке
https://news.1rj.ru/str/dotnetdad/204
Из моего последнего видео вы поняли, что из-за плохой работы рекрутеров найти работу в IT становится всё сложнее
Однако, помимо апгрейда резюме есть ещё одно решение от моего кореша Сани из канала «Папочка Дотнета»
Совсем недавно, он запустил лютое менторство с сопровождением до оффера, внимание, БЕЗ ПРЕДОПЛАТЫ
Александру помогает мой знакомый по крупному финтеху, Сергей Назаров, опытный руководитель разработки бэкенда, подтверждающий в комментариях верность моих тезисов
Никакого подвоха, никакого инфоцыганства - только спецы, желающие вырастить ещё более крутых спецов
Вся инфа на канале @dotnetdad по ссылке
https://news.1rj.ru/str/dotnetdad/204
Telegram
Папочка Дотнета
Ну что же, мы готовы анонсировать менторство до оффера без предоплаты 🥰
Подробнее узнать можно тут — https://devdad.ru/?from=tg-p
Вы платите только по факту трудоустройства процент от суммы оффера, который можно разбить на несколько месяцев. Никаких штрафов…
Подробнее узнать можно тут — https://devdad.ru/?from=tg-p
Вы платите только по факту трудоустройства процент от суммы оффера, который можно разбить на несколько месяцев. Никаких штрафов…
👍8❤5🔥3
Спасибо за круглые цифры на ютубчике 📱
Почему тебе не даётся программирование 10к
HR - раковая опухоль IT перевалил за 30к
❤️❤️❤️
Почему тебе не даётся программирование 10к
HR - раковая опухоль IT перевалил за 30к
❤️❤️❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥8❤🔥6👍1