TGViewer
Channel Public Channel
StepOne | Степан Минин

StepOne | Степан Минин

@steponeit

StepOne by Степан Минин @ststphn

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

Закрытый тг канал https://t.me/tribute/app?startapp=slOA

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

Ютуб https://www.youtube.com/@steponeit
Subscribers
3.27K
Photos
288
Videos
39
Links
355

Showing posts older than #486 · Back to latest

Older Posts 16 shown
Post #485 4.23K
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
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.
  • 👍 26
  • 🔥 4
  • ❤ 3
Post #483 3.6K
StepOne | Степан Минин Потому что в скором времени будет совместный стрим с Анатолием @overrideTech, где ваши CV будут прожарены)
Рад вам анонсировать, что стрим состоится 21 декабря в 18:00

Ссылочка
https://www.twitch.tv/overrideTech
Twitch OverrideTech - Twitch Аллоха, меня зовут Толя, в недавнем прошлом я разработчик. Почти каждый вечер на стриме я менторю: провожу ревью кода и знаний, готовлю к собеседованиям, помогаю делать крутые продающие резюме. Присоединяйся, задавай вопросы и проси помощи, если думаешь,…
  • 👍 3
  • 🔥 3
  • 🤩 1
Post #482 3.6K
В декабрьской суете я пропустил, что .NET 9 оказывается уже релизнулся, аж месяц назад

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

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

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

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

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

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

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

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

Новый API:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
  • 🔥 35
  • 👍 17
  • ❤ 5
Post #481 3.24K
StepOne выбирает город для переезда

❤️ Нижний Новгород
🔥 Севастополь
  • ❤ 73
  • 🔥 27
  • 🥰 2
  • 😁 2
Post #480 3.55K
gotta pump those numbers up, those are rookie numbers 🗿
  • 😁 12
  • 🤩 3
  • ❤ 2
Post #475 3.89K
Найм сломан

Давайте честно, хх ру, хабр карьера и линкедин просто достали!

Эти бездушные гигантские корпораты только поощряют ту вакханалию, которую постоянно устраивают HRюши…

А что если бы появилось онлайн пространство для построения карьеры, которое о вас заботится?

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

Имаджинировали увольнение бесполезных рекрутерш?

И я тоже) Потому что мой подписчик, Роман Сухих @Roman_Suhih_tg, занимается разработкой такого проекта

Его детище - соцсеть Grossmann, которая заставит наконец отказаться от паразита на теле IT в виде HR

Индивидуальные рекомендации по развитию талантов, постоянная поддержка в развитии, нетворкинг с единомышленниками, анализ роста доходов и многое другое

That’s the whole freaking package!

Роман занимается разработкой в одиночку на протяжении полугода и ему нужна помощь

Не помешают как бэкенд разработчики, так и фронтенд в особенности

За это время уже есть есть три полноценных микросервиса, и еле движимый фронт

Джависты мимо - стек джентельменский, шарпы: SignalR, RabbitMQ, Garnet
Со стороны фронта Vue, SCSS, Typescript

Связаться с Романом:
https://t.me/Roman_Suhih_tg

#гостевой
  • ❤‍🔥 14
  • 🔥 6
  • 👍 3
  • 🥰 2
Post #474 3.24K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🔥 12
  • 😁 7
  • ❤ 5
  • ❤‍🔥 2
  • 👍 1
Post #473 3.83K
Делитесь, даже с джавистами
  • 😁 22
  • ❤ 1
  • 🔥 1
Post #472 3.44K
  • 😁 43
  • 🤩 11
  • 👍 1
  • 🔥 1
Post #471 3.61K
Выйдя из военкомата, захотелось сообщить важную новость

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

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

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


Всем StepOne, конец связи 🤝
  • 👍 26
  • 🔥 3
  • ❤ 1
Post #470 3.49K
StepOne | Степан Минин На что обратить внимание из октябрьского? 🥇 Обходим ограничения Source Generators 📱 W Youtube ролик 🌎 DbMocker, must install 🔄 Улучшаем .csproj двумя дедовскими методиками и ещё пакет не забываем, ага Напишите в комментах - зарядить ли на Хабр текстовые…
Зима близко 🥶
Ноябрь заканчивается…

🛫 ОФИЦИАЛЬНО
StepOne - open source contributor


🛫 Позор ФуфлЯндекса

🥜 NNNUT

🛫 Прожарка HR

🛫 StepOne technologies edit
  • 👍 4
  • 🔥 2
  • ❤ 1
  • 😍 1
Post #469 3.71K
Как я познакомился с xUnit DI

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

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

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

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

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

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

Получилось очень хитрое решение, убравшее бойлерплейт - TestHostFixture
Ну а PR отрисуется чуть ниже 👇
GitHub Внедрение ITestOutputHelper через xUnit DI +semver:skip by Stepami · Pull Request #116 · Stepami/hydrascript Description https://stackoverflow.com/a/73141087 При создании новых интеграционников я бы упёрся в проблему копипасты бойлерплейта: Запросить ITestOutputHelper в конструкторе тестового класса Пере...
  • 👍 5
  • 🔥 3
  • ❤ 1
Post #467 3.37K
официальный лор StepOne
  • 😁 44
  • 🔥 3
  • ❤ 2
  • 🤩 1
Post #465 3.37K
Post #464 3.27K
dotnet console

Бывает такое на работе, что надо потестить какое-нибудь решение: алгоритм, библиотеку не важно

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

Но как пользователь Rider столкнулся, судя по всему, с последствиями санкций

Когда в очередной раз хотел создать солюшн полигон через UI, то получил ошибку:
Error updating templates


Ну видимо, корпоративная сеть, все дела

И тут я вспомнил, что вообще-то в старом добром терминале всё есть - и создание проектов, и миллион шаблонов

Решил дропнуть сюда простенький скрипт для создания такого полигона из CLI:
mkdir TestSpace
cd TestSpace

dotnet new sln

mkdir ConsoleApp
cd ConsoleApp

dotnet new console
cd ..
dotnet sln .\TestSpace.sln add .\ConsoleApp\ConsoleApp.csproj


Ну а про другие шаблоны можно прочитать тут 👉 https://learn.microsoft.com/ru-ru/dotnet/core/tools/dotnet-new-sdk-templates
Docs Шаблоны по умолчанию для .NET для dotnet new - .NET CLI Узнайте о шаблонах dotnet new, которые поставляются с помощью пакета SDK для .NET.
  • 👍 16
  • ❤ 2
  • 🔥 1
  • 😁 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →