StepOne | Степан Минин
Январь пролетел быстрее билда на девятом дотнете 💨 Месяц выдался продуктивным на канале 📱 запустил StepOne Premium через tribute 📱 Провёл там два эфира: 6 и 22 января 📱 Выпустил айти ремикс дотнеткор 📱 В предпоследний день месяца дропнул видос, но он…
Поздравляю с началом весны!
Март - месяц премий!
Поэтому, номинирую следующие посты:
👩💻 Обнаружил баг в Rider
👩💻 Выкатил hydranoscript 2.1.0
📣 Стал ПК конференции Стачка
👩💻 Раздал базы по зарплатным переговорам в Шарпизме
📱 Дропнул 52 созвона
Март - месяц премий!
Поэтому, номинирую следующие посты:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥4🔥4
Вы не знали этот NuGet пакет!
Речь конечно же про Fare, но что эта штука умеет?
Инструмент генерирует строки, под заданное регулярное выражение.
ВНЕЗАПНО, порт джавовской либы, имеет ряд ограничений к регуляркам(
Пример, использования:
Очевидно, что применение в тестах - можно генерировать номера телефонов, имейлы, данные по спецификациям.
Есть вариант удобно интегрировать, поскольку пакет включён в
Чтобы понять подход, советую смотреть доклад про юнит тесты в Шарпизме
Пример из hydranoscript.
Создаём класс-обёртку над строкой, поле размечаем атрибутом
Далее берём автоданные и просим в тест массив от 10 до 25 токенов:
Реализацию контрактов
Речь конечно же про Fare, но что эта штука умеет?
Инструмент генерирует строки, под заданное регулярное выражение.
ВНЕЗАПНО, порт джавовской либы, имеет ряд ограничений к регуляркам(
Пример, использования:
using Fare;
var regex = "[a-zA-Z]+";
var xeger = new Xeger(regex);
var text = xeger.Generate();
Очевидно, что применение в тестах - можно генерировать номера телефонов, имейлы, данные по спецификациям.
Есть вариант удобно интегрировать, поскольку пакет включён в
AutoFixture.Пример из hydranoscript.
Создаём класс-обёртку над строкой, поле размечаем атрибутом
[RegularExpression], оттуда будет считываться паттерн.
public record TokenInput(
[property: RegularExpression(TokenInput.Pattern)]
string Value) :
IAdditiveIdentity<TokenInput, TokenInput>,
IAdditionOperators<TokenInput, TokenInput, TokenInput>
{
[StringSyntax(StringSyntaxAttribute.Regex)]
public const string Pattern = "[a-zA-Z]+|[0-9]+|[+]{2}";
public static TokenInput operator +(TokenInput left, TokenInput right) =>
new(left.Value + " " + right.Value);
public static TokenInput AdditiveIdentity { get; } = new(string.Empty);
}
Далее берём автоданные и просим в тест массив от 10 до 25 токенов:
[Theory, AutoData]
public void GetTokens_MockedRegex_ValidOutput(
[MinLength(10), MaxLength(25)] TokenInput[] tokenInputs
Реализацию контрактов
System.Numerics сделал для удобного склеивания через LINQ:
var text = tokenInputs.Aggregate(
TokenInput.AdditiveIdentity,
(x, y) => x + y).Value
www.nuget.org
Fare 2.2.1
.NET port of dk.brics.automaton - Project Fare is an effort to bring a DFA/NFA (finite-state automata) implementation from Java to .NET. There are quite a few implementations available in other languages today. This project aims to fill the gap in .NET.
1👍14❤4🔥4❤🔥1
StepOne | Степан Минин
А может это был не баг?
Спустя месяц борьбы мне таки удалось победить райдер и заставить его видеть результат работы сурс генератора
Не знаю, что случилось с обновлением и переходом на 9 net sdk, но стало очевидно, что IDE запускает билд и Roslyn плагины через MSBuild
А он гораздо капризнее, чем
Например, даже при заглушённом RS1041 MSBuild тупо отказывался создавать инстанс генератора
Вот TFM не netstandard2.0, значит не хочу не буду!
Дальше всё стало сложнее - генератор парсил JSON строку для сборки глобального паттерна, но в стандарте либы нет - она только в sdk)))
Но подключить в плагин NuGet reference, это та ещё боль - https://github.com/dotnet/roslyn/issues/52017
Надо позаботиться о том, чтобы зависимость и всё, что ей требуется вышли в папку analyzers!
А там начнутся неразрешимые конфликты версий…
В итоге отказался от JSON и перешёл на стрим объектов
А дальше ещё лучше - правило с перекладыванием DLL применяется не только к внешним пакетам, но и проектным референсам!
Но там проще, всего лишь выставляем
Результат борьбы в виде PR hydranoscript прикрепляю
Победил, но какой ценой…
Спустя месяц борьбы мне таки удалось победить райдер и заставить его видеть результат работы сурс генератора
Не знаю, что случилось с обновлением и переходом на 9 net sdk, но стало очевидно, что IDE запускает билд и Roslyn плагины через MSBuild
А он гораздо капризнее, чем
dotnet buildНапример, даже при заглушённом RS1041 MSBuild тупо отказывался создавать инстанс генератора
Вот TFM не netstandard2.0, значит не хочу не буду!
Дальше всё стало сложнее - генератор парсил JSON строку для сборки глобального паттерна, но в стандарте либы нет - она только в sdk)))
Но подключить в плагин NuGet reference, это та ещё боль - https://github.com/dotnet/roslyn/issues/52017
Надо позаботиться о том, чтобы зависимость и всё, что ей требуется вышли в папку analyzers!
А там начнутся неразрешимые конфликты версий…
В итоге отказался от JSON и перешёл на стрим объектов
А дальше ещё лучше - правило с перекладыванием DLL применяется не только к внешним пакетам, но и проектным референсам!
Но там проще, всего лишь выставляем
OutputItemType="Analyzer"Результат борьбы в виде PR hydranoscript прикрепляю
Победил, но какой ценой…
GitHub
Refactoring/constants by Stepami · Pull Request #140 · Stepami/hydranoscript
Related Issues
Closes #139 #138
Closes #139 #138
🔥8❤2👍2❤🔥1
12 марта 19-30 новый эфир в Шарпизме 👩💻
Так теперь называется закрытый канал
В течение получаса буду разбирать личный список компаний для работы дотнет по следующим критериям:
1. Деньги
2. Напряг
3. Собес
4. Легаси/скилл
Успей подписаться, потому что уже завтра я выключу скидку на первый месяц, и все новые шарписты будут платить по фулл прайсу
На скрине та мощная база, которая доступна уже сейчас
Вступай в шарпизм, и твой оффер пробьёт 450👩💻
Так теперь называется закрытый канал
В течение получаса буду разбирать личный список компаний для работы дотнет по следующим критериям:
1. Деньги
2. Напряг
3. Собес
4. Легаси/скилл
Успей подписаться, потому что уже завтра я выключу скидку на первый месяц, и все новые шарписты будут платить по фулл прайсу
На скрине та мощная база, которая доступна уже сейчас
Вступай в шарпизм, и твой оффер пробьёт 450
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4❤🔥2❤2
StepOne | Степан Минин
Всем привет! Буквально через пару недель я выступлю на конференции DotNext 2024 с докладом про обобщенную математику в C# 11. Посмотрим на концепцию обобщенной математики с нуля, покажу участникам конференции как она выглядит в C# 11 и как она могла бы выглядеть…
Маленькие победы Generic Math в .NET
Осенью 2024 года я рассказывал всё, что нужно знать про обобщённую математику в C#
Она появилась в 7 дотнете, а в этом ноябре уже будет релиз 10 версии.
И с тех пор очевидный ответ на вопрос "зачем" проявляется отдельными частями только сейчас
Становится очевидно, что Microsoft готовят нечто похожее на платформу для создания экосистемы AI разработки
Например, в 9 .NET появился тип данных
Что интересно эти методы разработаны так, чтобы использовать SIMD ускорения CPU в зависимости от предоставляемых возможностей (AVX, SSE и так далее)
Получается некоторая долголетняя многоходовочка из Generic Math,
- Адепты ООП получают новый мощный архитектурный инструмент, решающий проблемы костылей из синглотонов и жалких попыток симуляции ad-hoc полиморфизма
- Microsoft приближается ещё на один шаг к обретению конкурентоспособности на рынке ML разработки, добиваясь возможности разработки глубоких моделей, чтобы нейросети тренировали не на Python, а на C#
- Любителям Производительности закрывают вопрос ускорения вычислений на
Ставьте 🔥 и ❤️ на пост, чтобы я написал пост про Generic Math в действии
Осенью 2024 года я рассказывал всё, что нужно знать про обобщённую математику в C#
Запись доклада доступна в Шарпизме👩💻
Она появилась в 7 дотнете, а в этом ноябре уже будет релиз 10 версии.
И с тех пор очевидный ответ на вопрос "зачем" проявляется отдельными частями только сейчас
Становится очевидно, что Microsoft готовят нечто похожее на платформу для создания экосистемы AI разработки
Например, в 9 .NET появился тип данных
Tensor<> для работы с тензорами и был расширен класс TensorPrimitives, содержащий (теперь обобщённые) операции над векторными типами данных в обёртке Span'овЧто интересно эти методы разработаны так, чтобы использовать SIMD ускорения CPU в зависимости от предоставляемых возможностей (AVX, SSE и так далее)
public class ManhattanDistance<T> : IDistanceCalculator<T>
where T : unmanaged, INumberBase<T>
{
public double ComputeDistance(T[] attributesOne, T[] attributesTwo)
{
Span<T> diff = stackalloc T[Math.Min(attributesOne.Length, attributesTwo.Length)];
TensorPrimitives.Subtract(attributesOne, attributesTwo, diff);
var l1Norm = TensorPrimitives.SumOfMagnitudes<T>(diff);
return double.CreateTruncating(l1Norm);
}
}
Получается некоторая долголетняя многоходовочка из Generic Math,
Span, stackalloc и много другого, которая убивает несколько зайцев сразу:- Адепты ООП получают новый мощный архитектурный инструмент, решающий проблемы костылей из синглотонов и жалких попыток симуляции ad-hoc полиморфизма
- Microsoft приближается ещё на один шаг к обретению конкурентоспособности на рынке ML разработки, добиваясь возможности разработки глубоких моделей, чтобы нейросети тренировали не на Python, а на C#
- Любителям Производительности закрывают вопрос ускорения вычислений на
Span, который не оптимизируется JIT'ом так, как массив или списокЧто дальше, Гейтс и Наделла?
Ставьте 🔥 и ❤️ на пост, чтобы я написал пост про Generic Math в действии
Please open Telegram to view this post
VIEW IN TELEGRAM
Docs
What's new in .NET libraries for .NET 9
Learn about the new .NET libraries features introduced in .NET 9.
🔥50❤12🤯5👍2❤🔥1
Generic Math in Action
Сейчас я работаю над закрытым пет-проектом, где понадобилась кластеризация данных
Погуглив варианты различных алгоритмов, я пришёл к выводу, что мне подходит класс иерархических кластеризаторов, поскольку они не требуют указания числа кластеров
DBSCAN и HDBSCAN по сути, однако HDBSCAN лучше, так как более устойчив к шуму, и его наличие не влияет на результат
Оказалось, что некий канадец реализовал HDBSCAN в NuGet пакете HdbscanSharp, однако код принуждал использовать тип данных
Взглянув на код, стало понятно, что его можно актуализировать внедрением обобщённой математики, поскольку функции вычисления расстояний отделены от алгоритма, и жёсткой зависимости в виде хранения векторов тоже нет
Открыл PR, подождал какое-то время, однако его не вмержили, поскольку было много breaking change, тогда я решил самостоятельно выпустить новый пакет
Получился HdbscanSharp.GenericMath - https://www.nuget.org/packages/HdbscanSharp.GenericMath
Код можно посмотреть на гитхабе - https://github.com/Stepami/HdbscanSharp-GenericMath
Сейчас я работаю над закрытым пет-проектом, где понадобилась кластеризация данных
Погуглив варианты различных алгоритмов, я пришёл к выводу, что мне подходит класс иерархических кластеризаторов, поскольку они не требуют указания числа кластеров
DBSCAN и HDBSCAN по сути, однако HDBSCAN лучше, так как более устойчив к шуму, и его наличие не влияет на результат
Оказалось, что некий канадец реализовал HDBSCAN в NuGet пакете HdbscanSharp, однако код принуждал использовать тип данных
double для датасета, что было неудобным для меня, поскольку я пользовался float и конвертациями заниматься не хотелосьВзглянув на код, стало понятно, что его можно актуализировать внедрением обобщённой математики, поскольку функции вычисления расстояний отделены от алгоритма, и жёсткой зависимости в виде хранения векторов тоже нет
Открыл PR, подождал какое-то время, однако его не вмержили, поскольку было много breaking change, тогда я решил самостоятельно выпустить новый пакет
Получился HdbscanSharp.GenericMath - https://www.nuget.org/packages/HdbscanSharp.GenericMath
Код можно посмотреть на гитхабе - https://github.com/Stepami/HdbscanSharp-GenericMath
www.nuget.org
HdbscanSharp.GenericMath 1.0.0
It is the fork of original HdbscanSharp package (2.0.0) refactored to support Generic Math with usage of SIMD accelerated tensor calculations
🔥18👍6❤🔥3❤2
Dapper больше не нужен
К такому выводу я пришёл, когда изучал последние версии EF Core
Вообще, необходимость linq2db тоже уже под вопросом...
Так вот, оказывается в 8 версии мелкомягкие тупо отжали рынок у библиотеки
Выглядит это так:
Причём такой запрос параметризируется с защитой от инъекции
Да и вообще там сейчас много всего крутого, особенно для проектирования DDD моделей
Советую присмотреться(я админ мне можно советовать)
К такому выводу я пришёл, когда изучал последние версии EF Core
Вообще, необходимость linq2db тоже уже под вопросом...
Так вот, оказывается в 8 версии мелкомягкие тупо отжали рынок у библиотеки
Выглядит это так:
public class BlogPost
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateOnly PublishedOn { get; set; }
public int BlogId { get; set; }
}
var start = new DateOnly(2022, 1, 1);
var end = new DateOnly(2023, 1, 1);
var postsIn2022 =
await context.Database
.SqlQuery<BlogPost>($"SELECT * FROM Posts as p WHERE p.PublishedOn >= {start} AND p.PublishedOn < {end}")
.ToListAsync();
Причём такой запрос параметризируется с защитой от инъекции
Да и вообще там сейчас много всего крутого, особенно для проектирования DDD моделей
Советую присмотреться
👍32❤7🔥5❤🔥1
StepOne | Степан Минин
12 марта 19-30 новый эфир в Шарпизме 👩💻 Так теперь называется закрытый канал В течение получаса буду разбирать личный список компаний для работы дотнет по следующим критериям: 1. Деньги 2. Напряг 3. Собес 4. Легаси/скилл Успей подписаться, потому что…
В среду 26 марта в 19-30 кодирую hydranoscript в live
Эфир будет посвящен внедрению в язык перегрузки функций
Увидите, как я разрабатываю это чудо, и возможно даже дойдёт до релиза!
Присоединяйся по ссылке в Шарпизм, пока лошки на го пытаются в новый компилятор ts
Эфир будет посвящен внедрению в язык перегрузки функций
Увидите, как я разрабатываю это чудо, и возможно даже дойдёт до релиза!
Присоединяйся по ссылке в Шарпизм, пока лошки на го пытаются в новый компилятор ts
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
🔥6❤1❤🔥1👍1
Последние два месяца активно занимался сбором C# секции на конференцию Стачка
Впервые в роли ПК оказалось тяжело, потому что задача
мягко говоря, непростая
При чём, как мне показалось активность очень похожа на тимлидство
У меня есть проект - секция на конфе, мои разрабы это спикеры, и их таски это доклады
С другой стороны, есть лид лидов, которому я отчитываюсь, в виде оргов
В конце концов, на мне висит ответственность и задача как-то спикеров найти (нанять/захантить), проводить прогоны (пулл реквесты и код ревью) и собрать в установленные сроки продукт
Ростер, на мой взгляд, получился более чем годный, особенно в поставленных условиях:
- Алексей Калдузов, head of C# в Ozon, расскажет про дотнет сервисы в кубере и поделиться практиками по эффективному использованию ресурсов подов
- Дмитрий Егоров, спикер DotNext, расскажет про JIT оптимизации: вы увидите насколько продвинутый компилятор дотнета + что случится с лицом гоферов и джавистов
- наконец, Денис Павлов, Senior C# разработчик, поделиться нетривиальным опытом разработки бекенда для хранения и обработки видео
Жду всех в Ульяновске, 18-19 апреля, на Стачке!
Шарпизм👩💻 👩💻 👩💻
Впервые в роли ПК оказалось тяжело, потому что задача
собрать с нуля годный ростер за два месяца до сдачи чистовиков презентаций
мягко говоря, непростая
При чём, как мне показалось активность очень похожа на тимлидство
У меня есть проект - секция на конфе, мои разрабы это спикеры, и их таски это доклады
С другой стороны, есть лид лидов, которому я отчитываюсь, в виде оргов
В конце концов, на мне висит ответственность и задача как-то спикеров найти (нанять/захантить), проводить прогоны (пулл реквесты и код ревью) и собрать в установленные сроки продукт
Ростер, на мой взгляд, получился более чем годный, особенно в поставленных условиях:
- Алексей Калдузов, head of C# в Ozon, расскажет про дотнет сервисы в кубере и поделиться практиками по эффективному использованию ресурсов подов
- Дмитрий Егоров, спикер DotNext, расскажет про JIT оптимизации: вы увидите насколько продвинутый компилятор дотнета + что случится с лицом гоферов и джавистов
- наконец, Денис Павлов, Senior C# разработчик, поделиться нетривиальным опытом разработки бекенда для хранения и обработки видео
Жду всех в Ульяновске, 18-19 апреля, на Стачке!
Шарпизм
Please open Telegram to view this post
VIEW IN TELEGRAM
ul25.nastachku.ru
C# - Секции
C#Разработка
👍21🔥3❤🔥1❤1😁1
StepOne ft. @safon_qa - NAKRUTILI
(Ameli IT Remix)
Мой третий айти ремикс, на этот раз фитанул с тестером по имени Кирилл
Он вызвался добровольцем, я помог дописать куплет, посоветовал студию и получилось круто)
Пишите в комменты свою любимую строчку среди всех ремиксов
https://youtu.be/6a3768JwZUM?si=-BKpa8dd2fcqdHS5
(Ameli IT Remix)
Мой третий айти ремикс, на этот раз фитанул с тестером по имени Кирилл
Он вызвался добровольцем, я помог дописать куплет, посоветовал студию и получилось круто)
Призываю беляша на реакт!
Пишите в комменты свою любимую строчку среди всех ремиксов
https://youtu.be/6a3768JwZUM?si=-BKpa8dd2fcqdHS5
🔥10❤3👍3❤🔥1
StepOne | Степан Минин
Поздравляю с началом весны! Март - месяц премий! Поэтому, номинирую следующие посты: 👩💻 Обнаружил баг в Rider 👩💻 Выкатил hydranoscript 2.1.0 📣 Стал ПК конференции Стачка 👩💻 Раздал базы по зарплатным переговорам в Шарпизме 📱 Дропнул 52 созвона
Приготовьтесь, завтра у вас будет белая спина, потому что 1 апреля!
👩💻 Рассказал про Fare
👩💻 Победил Roslyn плагины с .NET 9
📱 Рассказал в Шарпизме про топ-мест работы C# прогера
👩💻 Раскрыл заговор обобщённой математики
📱 Дропнул третий айти ремикс с фитом
👩💻 А ещё в закрытом канале с подписчиками добавили в hydranoscript перегрузку функций в версию 2.2.0
В новой версии язык делает то, чего typenoscript не может!
Записи эфиров с лайвкодингом уже в Шарпизме, доступ в закрепе
В новой версии язык делает то, чего typenoscript не может!
Записи эфиров с лайвкодингом уже в Шарпизме, доступ в закрепе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11🔥4❤3❤🔥2🤯1
StepOne | Степан Минин
Твой шанс на 2025 Из моего последнего видео вы поняли, что из-за плохой работы рекрутеров найти работу в IT становится всё сложнее Однако, помимо апгрейда резюме есть ещё одно решение от моего кореша Сани из канала «Папочка Дотнета» Совсем недавно, он запустил…
Важный эфир 17 апреля в 19-00
Что дальше? Повсеместный отказ от C# в пользу Go?
Мои коллеги по цеху, Папочка Дотнета @dotnetdad и Сергей Назаров, 17 апреля выступят на эфире в Шарпизме, где расскажут самое важное о текущем состоянии дотнет рынка в РФ
Они занимаются менторством без предоплаты и уже успели довести до оффера десяток шарпистов
В их руках самые свежие данные по собесам, задачам, зарплатам и вакансиям
Помимо этого, они ответят на ваши вопросы, которые вы оставите в комментариях под этим постом
Твой последний шанс получить преимущество и обогнать всех находиться здесь
Топ-5 крупнейших IT компаний СНГ перестали нанимать любых мобильных разработчиков
Везде поставили стоп на повышения, деньги дают только руководителям
Что дальше? Повсеместный отказ от C# в пользу Go?
Мои коллеги по цеху, Папочка Дотнета @dotnetdad и Сергей Назаров, 17 апреля выступят на эфире в Шарпизме, где расскажут самое важное о текущем состоянии дотнет рынка в РФ
Почему им можно верить?
Они занимаются менторством без предоплаты и уже успели довести до оффера десяток шарпистов
В их руках самые свежие данные по собесам, задачам, зарплатам и вакансиям
Помимо этого, они ответят на ваши вопросы, которые вы оставите в комментариях под этим постом
Твой последний шанс получить преимущество и обогнать всех находиться здесь
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
👍5❤3❤🔥1🔥1
StepOne | Степан Минин
В новой версии язык делает то, чего typenoscript не может!
Записи эфиров с лайвкодингом уже в Шарпизме, доступ в закрепе
Новости hydranoscript 2.3.0
После победы над typenoscript в прямом эфире мой подписчик Илья Левин @mmm_ilya пришёл в репу и закрыл много задач!
Респект уважуха и благодарность от лица Шарпизма!
Вообще, я обожаю, когда люди приходят в репу и контрибутят - так реализуются созданные мной возможности по прокачке резюме
Илья не просто обновил какие-то пакеты или доки, а сделал реально важный вклад:
- пофиксил баг с выводом в консоль, который я засадил во время рефакторинга
- внедрил логгирование на основе Source Generators: ещё одна фишка дотнета для повышения эффективности системы, которую, на мой взгляд, надо обязательно использовать в коммерческих проектах
- Упростил добавление тест-кейсов, реализовав типизированную авто подгрузку скриптов из файловой системы
Его подход лишил меня сомнений по поводу идеологии проекта по использованию полезных наворотов дотнета - поэтому утилита наконец переезжает на NativeAot, что уберёт необходимость в установке рантайма и повысит эффективность работы программы
Эти достижения будут отличать Илью от других кандидатов при поиске работы - воспользуйтесь и вы шансом апгрейднуть свой карьерный трек
Теперь движемся семимильными шагами к релизу версии 2.3.0 - в язык доедут параметры функций по умолчанию, сейчас проектирую решение
Не за горами тот день, когда пулл реквесты с фичами языка буду делать не только я
https://github.com/Stepami/hydranoscript/milestone/7
После победы над typenoscript в прямом эфире мой подписчик Илья Левин @mmm_ilya пришёл в репу и закрыл много задач!
Респект уважуха и благодарность от лица Шарпизма!
Вообще, я обожаю, когда люди приходят в репу и контрибутят - так реализуются созданные мной возможности по прокачке резюме
Илья не просто обновил какие-то пакеты или доки, а сделал реально важный вклад:
- пофиксил баг с выводом в консоль, который я засадил во время рефакторинга
- внедрил логгирование на основе Source Generators: ещё одна фишка дотнета для повышения эффективности системы, которую, на мой взгляд, надо обязательно использовать в коммерческих проектах
- Упростил добавление тест-кейсов, реализовав типизированную авто подгрузку скриптов из файловой системы
Его подход лишил меня сомнений по поводу идеологии проекта по использованию полезных наворотов дотнета - поэтому утилита наконец переезжает на NativeAot, что уберёт необходимость в установке рантайма и повысит эффективность работы программы
Эти достижения будут отличать Илью от других кандидатов при поиске работы - воспользуйтесь и вы шансом апгрейднуть свой карьерный трек
Теперь движемся семимильными шагами к релизу версии 2.3.0 - в язык доедут параметры функций по умолчанию, сейчас проектирую решение
Не за горами тот день, когда пулл реквесты с фичами языка буду делать не только я
https://github.com/Stepami/hydranoscript/milestone/7
GitHub
Stepami/hydranoscript
TypeScript & Go inspired small interpreted programming language written in C#. The interpreter build with DDD principles and Clean Architecture. Implementation powered by Source Generators ...
👍15❤3🔥3❤🔥2😁2
StepOne | Степан Минин
StepOne - Senior DevOps??? GitHub Actions CI/CD Expert На выходных сделал две вещи: 1️⃣ Дописал статью на Хабр с подробным рассказом про свой пет-проект hydranoscript. Там появился логотип кстати, прикладываю к посту! Выйдет в конце августа - начале сентября…
Что такое CI/CD?
За что девоПсины получают свои какосеки?
В эту среду 9 апреля в 19-00 я проведу эфир в Шарпизме, где разберу по косточкам самое непонятное и частое требование из вакансий
А потом покажу свой большой и длинныйпайплайн hydranoscript в GitHub Actions
После этого эфира твойоффер увеличиться минимум на 50к
За что девоПсины получают свои какосеки?
В эту среду 9 апреля в 19-00 я проведу эфир в Шарпизме, где разберу по косточкам самое непонятное и частое требование из вакансий
А потом покажу свой большой и длинный
После этого эфира твой
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
❤6🔥3❤🔥2👍2
StepOne | Степан Минин
Последние два месяца активно занимался сбором C# секции на конференцию Стачка Впервые в роли ПК оказалось тяжело, потому что задача собрать с нуля годный ростер за два месяца до сдачи чистовиков презентаций мягко говоря, непростая При чём, как мне показалось…
Замена на поле
По абсолютно непредвиденным обстоятельствам Алексей не сможет выступить на Стачке
На его место пришёл мой наставник и проводник в мир дотнета - Сергей Банников
Он поделится опытом импортозамещения систем построения отчётов, что является не только важной и актуальной темой в наше время, но и крайне болезненной
Так что, 19 апреля прекращаем работать и идём на Стачку!
По абсолютно непредвиденным обстоятельствам Алексей не сможет выступить на Стачке
На его место пришёл мой наставник и проводник в мир дотнета - Сергей Банников
Он поделится опытом импортозамещения систем построения отчётов, что является не только важной и актуальной темой в наше время, но и крайне болезненной
Так что, 19 апреля прекращаем работать и идём на Стачку!
👍7❤6🔥3❤🔥1
Кажется, до кого-то начало доходить...
Как же надоели эти вездесущие микросервисы в круд приложениях, где меньше 1000 RPS...
А то понапихают своих модных-молодёжных приёмов, а потом:
1. Дебажишь data inconsistency
2. Чинишь распределённые транзакции
3. Думаешь как вставить outbox
4. Решаешь постоянные конфликты версий пакетов контрактов (даунгрейды и циклические ссылки)
5. Дублируешь код
6. Пытаешься собрать логи из разных хостов
7. Мучаешься с локальным развёртыванием, потому что докер можно не во всех компаниях
Накидывайте в комментах ещё попоболи, мой список - это не всё
Я прям жду вакансии, где будут писать не "распиливаем на микросервисы", а "склеиваем в монолит"!
Как же надоели эти вездесущие микросервисы в круд приложениях, где меньше 1000 RPS...
А то понапихают своих модных-молодёжных приёмов, а потом:
1. Дебажишь data inconsistency
2. Чинишь распределённые транзакции
3. Думаешь как вставить outbox
4. Решаешь постоянные конфликты версий пакетов контрактов (даунгрейды и циклические ссылки)
5. Дублируешь код
6. Пытаешься собрать логи из разных хостов
7. Мучаешься с локальным развёртыванием, потому что докер можно не во всех компаниях
Накидывайте в комментах ещё попоболи, мой список - это не всё
Я прям жду вакансии, где будут писать не "распиливаем на микросервисы", а "склеиваем в монолит"!
Хабр
Я стала злодейкой и теперь мои контроллеры лежат в библиотеках. Архитектурный паттерн SUFA в .net приложении
Много лет мы обсуждали, как разбить монолит на микросервисы. Микросервисная архитектура стала стандартом для создания сложных систем. Однако что делать, если растущее число сервисов начинает тормозить...
❤🔥11😁7🔥3❤1
Во время работы в большом красном телекоме в 2022 году мне удалось разработать методику написания unit-тестов, которая значительно сокращает время их написания, улучшая качество кода
С тех пор мне удалось успешно внедрить эту практику в нескольких компаниях, не только через работу, но и через этот канал
Решил зафиксировать на Хабре кейс, чтобы вы могли присылать это в свои команды, своим техлидам, тимлидам, архитекторам и так далее
Подробности внутри 👇
https://habr.com/ru/companies/ruvds/articles/894522/
С тех пор мне удалось успешно внедрить эту практику в нескольких компаниях, не только через работу, но и через этот канал
Решил зафиксировать на Хабре кейс, чтобы вы могли присылать это в свои команды, своим техлидам, тимлидам, архитекторам и так далее
Подробности внутри 👇
https://habr.com/ru/companies/ruvds/articles/894522/
Хабр
Искусство Unit-тестирования: сокращаем Arrange до нуля
Unit-тесты очень важно и нужно писать, но вот незадача — на них никогда не хватает времени! Прочитав эту статью, вы узнаете абсолютно новый способ их написания, который сэкономит кучу времени и...
1🔥13👍5❤2❤🔥1