Прямо сейчас у вас есть уникальная возможность получить опыт контрибута в опен-сорс проект!
При чём не за счёт обновления библиотек или правки опечаток, а благодаря разработке фичей и проектированию архитектуры!
Приглашаю всех желающих в свой репозиторий https://github.com/Stepami/hydrascript
Это учебный проект, начинавшийся как недоJS, и пришедший в состояние смеси TypeScript и Go
Я наконец-то закончил годовалый рефакторинг, и готов открыть миру его исходный код без стыда)
Помимо этого, получился публичный реверс инжиниринг статического анализа современных ЯП: как реализуется вывод типов, синтаксический сахар разный и тд
Проект движется в сторону интерпретатора на DDD и Clean Architecture - эксперимент по упрощению понимания и без того архисложной предметки
Также из интересного: получилось изобрести
Что это значит?
Например, есть список инструкций, и у каждой инструкции есть адрес, например, некоторое число:
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
С меня опыт на интересном, уважаемом и перспективном проекте, с вас - звёздочка репозиторию)