StepOne | Степан Минин – Telegram
StepOne | Степан Минин
3.42K subscribers
249 photos
35 videos
6 files
313 links
StepOne by Степан Минин @ststphn

Твой первый шаг к успеху в программировании

Закрытый тг канал https://news.1rj.ru/str/tribute/app?startapp=slOA

По вопросам рекламы @Spiral_Yuri

Ютуб https://www.youtube.com/@steponeit
Download Telegram
официальный лор StepOne
😁44🔥32🤩1
Как я познакомился с xUnit DI

В xUnit есть классный инструментарий для создания разделяемого контекста между тестами с разным временем жизни - https://xunit.net/docs/shared-context

Если кто-то читал исходники интеграционных тестов hydranoscript, то мог заметить, что там я использую IClassFixture<>

Силами фреймворка экземпляр класса контекста пропихивается в конструктор класса тестов, реализующих указанный интерфейс

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

Приходилось писать руками бойлерплейт:
1. Запросить ITestOutputHelper в конструкторе тестового класса
2. Передать в fixture.GetRunner

Однако, я познакомился с библиотекой Xunit.DependencyInjection, которая решает эту проблему добавляя DI для этих самых контекстов

Получилось очень хитрое решение, убравшее бойлерплейт - TestHostFixture
Ну а PR отрисуется чуть ниже 👇
👍5🔥31
Выйдя из военкомата, захотелось сообщить важную новость

С этого дня открываю постоянную рубрику гостевых постов

Вы можете прислать мне в личку (
@ststphn) контент/идеи/наработки, а я помогу их допилить и опубликовать здесь, на канале

Это предложение для тех, кому нужна площадка для публикации, не такая токс как Хабр, когда хотелось попробовать, но идей только на один пост или нужна простая проба пера


Всем StepOne, конец связи 🤝
👍26🔥31
7😁43🤩11👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Делитесь, даже с джавистами
😁221🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥12😁75❤‍🔥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

#гостевой
❤‍🔥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🤩32
StepOne выбирает город для переезда

❤️ Нижний Новгород
🔥 Севастополь
73🔥27🥰2😁2
В декабрьской суете я пропустил, что .NET 9 оказывается уже релизнулся, аж месяц назад

Одним из самых значимых нововведений считаю внедрение в стандартную библиотеку UUIDv7

Почему цифра 7 важна?

Guid полезен для БД, как тип первичного ключа, поскольку гарантирует сильную уникальность своим разнообразием значений

Раньше, значение было реализовано согласно стандарту v4 - на основе случайных байтов

Грубо говоря, написать Guid.NewGuid() семантически равносильно Random.NextInt64()

Это создаёт проблемы с производительностью, поскольку когда значения случайны, они неупорядочены, как следствие, их тяжелее индексировать и сортировать

Стандарт v7 предлагает другую концепцию - идентификатор, основанный на метке времени

Соответственно, значения будут упорядочены в неубывающем порядке по определению, такой вот IDENTITY автоинкремент на стероидах

Новый API:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
🔥35👍175
StepOne | Степан Минин
Запись выступления на Стачке 💪 Наконец-то стала доступна! Бекендеры были в шоке, когда узнали, что при перекладывании JSON'ов можно...😅
Начиная с .NET 7 я пристально слежу за обновлениями платформенного сериализатора System.Text.Json просто потому, что в 7-й версии сделали прорыв с полиморфизмом, а в 8-й с интеграцией Source Generators

9-я же версия не копает куда-то вглубь, а растёт вширь, охватывая всего понемножку.

Во-первых, наконец-то завезли нормальную сериализацию енамов:
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
👍25🔥43
Твой шанс на 2025

Из моего последнего видео вы поняли, что из-за плохой работы рекрутеров найти работу в IT становится всё сложнее

Однако, помимо апгрейда резюме есть ещё одно решение от моего кореша Сани из канала «Папочка Дотнета»

Совсем недавно, он запустил лютое менторство с сопровождением до оффера, внимание, БЕЗ ПРЕДОПЛАТЫ

Александру помогает мой знакомый по крупному финтеху, Сергей Назаров, опытный руководитель разработки бэкенда, подтверждающий в комментариях верность моих тезисов

Никакого подвоха, никакого инфоцыганства - только спецы, желающие вырастить ещё более крутых спецов

Вся инфа на канале @dotnetdad по ссылке

https://news.1rj.ru/str/dotnetdad/204
👍85🔥3