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
289
Videos
39
Links
356

Showing posts older than #379 · Back to latest

Older Posts 18 shown
Post #378 3.81K
Долой микросервисы!
Даёшь монолиты с монорепами!!!
  • ❤‍🔥 10
  • 🔥 9
  • 👍 5
  • ❤ 1
Post #377 3.7K
StepOne | Степан Минин Контроль архитектуры компилятором вместо тестов Наконец-то окончательно завершён многолетний рефакторинг моего интерпретатора - архитектура настолько проработана, хороша и не противоречива, насколько это возможно и задумывалось изначально ООП, DDD, Clean…
StepOne - Senior DevOps???
GitHub Actions CI/CD Expert


На выходных сделал две вещи:

1️⃣Дописал статью на Хабр с подробным рассказом про свой пет-проект hydrascript.
Там появился логотип кстати, прикладываю к посту!
Выйдет в конце августа - начале сентября

Как раз добью рейтинги перед конфами

2️⃣ Провозился с пайплайнами и построил свою маленькую автоматизацию мечты 🥰
Разобрался с автоматическим версионированием и сборкой GitHub релиза (не путать с паблишем исполняемых файлов)

Версионирование на плечах GitVersion: версия не прописывается руками, а подставляется при билде!

Теперь разработка ведётся согласно GitHubFlow - каждый мёрж в master == Patch increment.

Каждый пуш триггерит workflow (она же pipeline в GitLab), где происходит:
- сборка и прогон юнит тестов
- создание и загрузка отчёта о покрытии
- прогон интеграционников
- загрузка windows билда (для фича веток)

При мерже в мастер если есть инкремент, то происходит пуш тега

Чтобы не релизить на каждый тег, было принято решение запускать релизный workflow при пуше в ветку release

Там происходит автоматическое создание и заполнение релиза тулзой GitReleaseManager, которая считывает milestone и связанные issues

А в артефакты загружаются исполняемые файлы для четырёх платформ: винда, линух, мак интел, мак м1

Подсмотреть yml можно тут -> https://github.com/Stepami/hydrascript/tree/master/.github/workflows

UPD Автоматически сгенерированный релиз выглядит так https://github.com/Stepami/hydrascript/releases/tag/v2.0.0
  • 👍 12
  • ❤ 1
  • 🔥 1
Post #376 3.19K
Забыл написать, если вы хотите знать какие задачи лёгкие и брать сейчас, то в Issues проекта hydrascript выбираете:
- milestone 2.0.0
- label "good first issue"

https://github.com/Stepami/hydrascript/issues?q=is%3Aopen+is%3Aissue+milestone%3Av2.0.0+label%3A%22good+first+issue%22
GitHub Stepami/hydrascript TypeScript & Go inspired open-source public research project written in C# - Stepami/hydrascript
  • 👍 4
  • ❤ 1
  • 🔥 1
Post #375 3.24K
Разрабатывай HydraScript

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

Как mantainer расскажу о приоритетной вещи, на которую стоит обратить внимание, помимо тех задач, которые выкладывал на канале ранее

Сейчас хочется увеличить покрытие проекта unit тестами, да и в целом написать их)

Какие-то тесты есть, и часть из них использует библиотеку Moq

Чтобы не погружаться корнями в зависимость от этого инструмента - сейчас надо перейти на другой, пока переезд будет стоит дёшево (очень)

Поэтому приглашаю забрать этот issue и помочь мне переехать на NSubstitute
GitHub [feature request] Переход с Moq на NSubstitute · Issue #52 · Stepami/hydrascript Is your feature request related to a problem? Please describe. Moq очень многословен Инцидент SponsorLink https://www.securitylab.ru/news/540800.php Describe the solution you'd like NSubstitute...
  • 👍 4
  • ❤ 1
  • 🤩 1
Post #373 3.18K
Контроль архитектуры компилятором вместо тестов

Наконец-то окончательно завершён многолетний рефакторинг моего интерпретатора - архитектура настолько проработана, хороша и не противоречива, насколько это возможно и задумывалось изначально

ООП, DDD, Clean Architecture, изолированные поддомены, независимые контракты, слабосвязанные компоненты и сильносвязные модули

В этом посте расскажу об одном приёме, который помог мне добиться этого архитектурного успеха

Остальную историю проекта расскажу чуть позже в статье на Хабре

Секрет в использовании проектов вместо папок 😱

Это настоящая архитектурная статическая типизация

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

Так гораздо проще, чем писать тесты на ArchUnitNET и потом внедрять их в CI/CD
  • 👍 13
  • 🔥 4
  • ❤ 3
Post #372 3.29K
Строго типизированные теории в xUnit

Для передачи данных в тест есть много способов: [InlineData] [MemberData] [ClassData]

Последние два способа оперируют контрактом IEnumerable<object[]>

Встаёт вопрос - как надавать по рукам тем, кто засунет в object[] то, что в тест попадать не должно?

Для этого существует класс TheoryData<>

Он даёт все преимущества строгих проверок типов C# на этапе компиляции

Использовать можно по-разному, например так:
public class CalculatorTestData : TheoryData<int, int, int>
{
public CalculatorTestData()
{
Add(1, 2, 3);
Add(-4, -6, -10);
Add(-2, 2, 0);
Add(int.MinValue, -1, int.MaxValue);
Add(1.5, 2.3m, "The value"); // will not compile!
}
}


И далее в тесте:

[Theory]
[ClassData(typeof(CalculatorTestData))]
public void CanAdd(int value1, int value2, int expected)
{
var calculator = new Calculator();
var result = calculator.Add(value1, value2);
Assert.Equal(expected, result);
}


А пример с мембер датой можно подсмотреть в моём репозитории hydrascript:
https://github.com/Stepami/hydrascript/blob/master/tests/HydraScript.IntegrationTests/SuccessfulProgramsTests.cs
GitHub hydrascript/tests/HydraScript.IntegrationTests/SuccessfulProgramsTests.cs at master · Stepami/hydrascript TypeScript & Go inspired open-source public research project written in C# - Stepami/hydrascript
  • 👍 13
  • ❤ 2
  • 🔥 2
Post #371 3.07K
StepOne | Степан Минин Итоги июня ...так поздно, потому что руки всё время заняты мороженым последние несколько дней...🥵 💎 Новый закреп на канале и личная история в трёх главах 🥇 Запуск ютуба и начало выпуска роликов 🟦 Попадание в программу DotNext 💎 7 лет на Хабре
Июль закончился! Как ваше лето, товарищи?

🌐 Ролик про фильм "Социальная сеть"

🌐 Motivational StepOne edit

🔥 Анонс дотнет тура

👩‍💻 Приглашение контрибутить в мой проект
  • 🔥 4
  • ❤ 2
  • 👍 2
Post #369 3.7K
StepOne | Степан Минин Меня зовут Степан Минин, мне 23 и я - один из самых успешных 📱 программистов в медийной сфере Моя история настолько исключительная и уникальная, что её нельзя описать двумя предложениями Поэтому, я сделал целую трилогию постов, ознакомиться с которой можно…
Дорогие подписчики 💔

Мне кажется, я вас обманул(

Это настолько фундаментальное противоречие, что молчать невозможно!

Нет, я действительно сеньор, работаю в хорошем месте над сложными задачами и получаю за это много денег)

Но путь в эту точку был другим.

Я не смотрел чужие собесы, не искал сливы задач, не просил опытного программиста ласково шептать в наушник.

Во время составления резюме мне не приходилось придумывать достижения, потому что они реально были!

А опыт не надо было накручивать, так как трудовую книжку получил в 18 лет.

Наоборот, его так много, что пора уже скрывать лишнее!)

Каждый день в голове проскакивают строчки, и не рэперские, а на C#!)

Программирование для меня не просто работа, а образующее дело, за пределами которого себя не вижу...

Да, мне в кайф этим жить и дышать, как бы душно и скучно моментами это не казалось.

Только вдумайтесь, три поста, три простыни текста потрачено на описание моей пахоты, а вы так и не поняли, что у вас было прямо под носом...

Верно говорят - хочешь что-то спрятать, положи у всех на виду.

Не осуждаю тех, кто следует, например, советам сообщества "Осознанная Меркантильность" - каждый волен жить так, как ему хочется.

Но я не могу научить вас читкодам и схемам, потому что сам этим не пользовался и просто являюсь ох*енным спецом, потратившим уйму сил и времени, чтобы им стать.

Чему вас точно могу научить, так это:
- Мужественно встречать жизненные испытания
- Воле к победе
- Труду вопреки слабости и обстоятельствам
- Упорству не меньше бычьего

Так что, vision перенастроен.
Идём дальше, надеюсь вы со мной💪

Настал момент, когда пора самому быть примером
Отлиться светом, на который смогли бы плыть люди

🙏🙏🙏
YouTube Batman v Superman - Training Bruce Wayne Batman v Superman: Dawn of Justice - The Ultimate Edition Director: Zack Snyder Production Companies Warner Bros. (presents) (as Warner Bros. Pictures) Atlas Entertainment Cruel & Unusual Films DC Comics DC Entertainment RatPac-Dune Entertainment (in association…
  • 🔥 16
  • 👍 9
  • 😁 5
  • ❤ 3
  • 🥰 1
Post #368 3.25K
Ловите ещё одну красивую картинку, которая возможно пригодится на собесе
  • 👍 10
  • ❤ 9
  • 🔥 2
Post #365 3.41K
HR не нужны или нужны?

Наткнулся в интернетах на очередной кейс дискредитации современного найма в айти и института подбора кадров в целом

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

Данную мной структуру иностранный специалист сохранил, а опыт он решил придумать 👀
При этом намеренно абсурдным:
Запускал новые продукты под ЛСД и грибами


Результаты, каких я не мог обещать даже в своём гайде - из 100 откликов 40 приглашений на собеседование

Естественно, это в очередной раз доказывает то, насколько левой пяткой правого полупопия выполняется просмотр резюме отдельно взятыми специалистами сферы рекрутинга

Так что мои фразы про 6 секунд в гайде нисколько не драматизация

Всё это уже было доказано научно в рамках исследования

Прикладываю в виде пдфок полный кейс и исследование

P.S. ИЧСХ, об этом изначально написала другая рекрутерша 🤣
Telegram StepOne Самый лучший гайд по резюме в IT 🔥 Проводя очередной разбор резюме, понял, что рассказываю в десятый раз один и тот же скрипт 👀 Поэтому, решил структурировать все свои знания и чужие ошибки в понятный гайд по цене чашки кофе Теперь, у вас есть волшебная…
  • ❤ 6
  • 🔥 3
  • 👍 2
  • 😁 2
  • 🤩 2
Post #364 2.53K
Всем привет, коллеги!

Прямо сейчас у вас есть уникальная возможность получить опыт контрибута в опен-сорс проект!

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

Приглашаю всех желающих в свой репозиторий https://github.com/Stepami/hydrascript

Это учебный проект, начинавшийся как недоJS, и пришедший в состояние смеси TypeScript и Go

Я наконец-то закончил годовалый рефакторинг, и готов открыть миру его исходный код без стыда)

Помимо этого, получился публичный реверс инжиниринг статического анализа современных ЯП: как реализуется вывод типов, синтаксический сахар разный и тд

Проект движется в сторону интерпретатора на DDD и Clean Architecture - эксперимент по упрощению понимания и без того архисложной предметки

Также из интересного: получилось изобрести велосипед структуру данных для адресации, которая при изменении набора элементов пересчитывает адреса за O(1)

Что это значит?

Например, есть список инструкций, и у каждой инструкции есть адрес, например, некоторое число:
0: a = 0
1: x = 2
2: y = a
3: print x

Мы видим, что инструкции с адресом 0 и 2 можно выкинуть, они являются мёртвым кодом.
Тогда останется:
1: x = 2
3: print x

Но теперь виртуальная машина ах*еет , потому что старт у неё ноль, следующий шаг плюс 1 - она просто не сможет пройтись по оставшемуся набору, нужно пересчитать адреса:
0: x = 2
1: print x

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

Сейчас там есть две горящих задачки, с которыми справится даже джун:


1️⃣https://github.com/Stepami/hydrascript/issues/29

2️⃣ https://github.com/Stepami/hydrascript/issues/30

С меня опыт на интересном, уважаемом и перспективном проекте, с вас - звёздочка репозиторию)
GitHub GitHub - Stepami/hydrascript: TypeScript & Go inspired small interpreted programming language written in C#. The interpreter built… TypeScript & Go inspired small interpreted programming language written in C#. The interpreter built with DDD principles and Clean Architecture. Implementation powered by Source Generators ...
  • 🔥 9
  • 👍 6
  • ❤ 3
  • 😁 2
Post #363 2.33K
Сентябрь 2024 точно будет гореть 🔥

Ведь StepOne выступит аж на трёх конференциях!!!
Настоящий дотнет тур!

1️⃣5-8 сентября, DevFest в Омске
Искусство unit-тестирования. Сокращаем Arrange до нуля


2️⃣10-11 сентября, DotNext в Москве
Как в C# 11 появилась обобщенная математика


3️⃣ 27-28 сентября, Стачка в Санкт-Петербурге
Такого "Посетителя" вы ещё не видели - Visitor NET


Сохраняй этот пост, чтобы не потерять расписание ❤️
  • 🔥 16
  • 🤩 4
  • ❤ 3
  • 👍 1
Post #361 2.54K
Стать сеньором очень просто

Вы могли в этом убедиться, прочитав историю о том, как я это сделал в 21

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


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

Остаётся только обновить резюме, выйти на рынок и сделать всех

Старший/ведущий/главный - всё это может быть в вашем оффере, стоит лишь договориться об интервью.

Если вы мне не верите или вам не хватает отцовского наставления…😅

Загляните на канал Александра "Папочка Дотнета" @dotnetdad. Он прошел совершенно другой путь, не заканчивал топовый ВУЗ, не выигрывал олимпиад и рассказывает как стать синьором из таких исходных данных
Telegram Папочка Разработки Дэвдэд Автор — @mccalen. Рекламу не продаю
  • 👍 11
  • ❤ 3
  • 🔥 3
Post #360 2.63K
ТОП-10 АКРОНИМОВ CODE REVIEW ✅

Стань профи и получи заветный аппрув!

1. LGTM - Looks good to me
2. NIT - Nitpicking | Вкусовщина
3. PTAL - Please take a look
4. WIP - Work in progress
5. MR - Merge Request | GitLab
6. PR - Pull Request | GitHub
7. ACK - Acknowledged | Согласен
8. NACK - Not Acknowledged | Не согласен
9. DRY - Don't repeat yourself
10. KISS - Keep it stupid simple
  • 👍 14
  • 🔥 3
  • ❤ 2
Post #359 2.74K
StepOne Batfleck
  • 🔥 22
  • ❤‍🔥 3
  • 🤩 2
Post #357 2.52K
ИИ не виноват в сокращении числа вакансий

Людям в интернете свойственно путать тёплое с мягким

Такое особенно вспоминается, когда видишь подобные новости, где в очередной раз кричат как всем пора перестать учиться программированию

Мол, уже поздно, поезд ушёл, злой робот нейросеть отберёт у всех работу

Однако, это обычная подтасовка фактов, когда следствие одних вещей ошибочно связывают с причинами других

Например, многие любят связывать кризис мирового IT рынка труда с наступлением псевдо-Скайнета 🤣

Есть график статистики по открытым айти вакансиям в реальном времени

Если на него взглянуть, то даже жертве ЕГЭ станет очевидно, что активная фаза спада началась, когда на последствия вертолётных ковидных денег наложилось влияние СВО на мировую экономику

И в момент начала популярности ChatGPT (декабрь 2022) фриз найма и увольнения достигли пика скорости

Так что псевдо-ИИ оказывает не бОльшее влияние на судьбу профессии программиста, чем ваш знак зодиака на сумму оффера

Что интересно, дно было пройдено уже в 1 квартале 2023 года, а с того момента всё отросло на 30%

Так что не дайте себя обмануть очередными заявлениями людей, которым выгодно их делать
  • 👍 7
  • 🔥 4
  • ❤ 3
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 →