TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
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
More from @steponeit
  1. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  2. Sep 27, 2026Post #860
  3. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  4. Sep 22, 2026Post #858
  5. Sep 21, 2026Post #857
  6. Sep 15, 2026Напомню, что у меня есть WireMock.Grpc.Protobuf — расширение для тех, кто пишет компонентн…
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 →