Как превратить свой говнокод в тренажер для слепой печати

23 июн 2026
1,583
43
3
1 неделя

Знакомая ситуация: вы открываете MonkeyType или любой другой тренажер печати, а там — бесконечные цитаты из классики или бессмысленные наборы слов вроде «the quick brown fox». Это полезно для скорости, но совершенно не готовит пальцы к реальности, где нужно постоянно вводить async, pub(crate), двойные подчеркивания и фигурные скобки. В какой-то момент мозг просто отключается, потому что текст не имеет отношения к вашей работе.

Недавно наткнулся на GitType. Это CLI-утилита на Rust, которая решает проблему радикально: она превращает ваш собственный исходный код в уровни для игры. Вместо «Hello World» вы будете набирать ту самую функцию, которую написали в три часа ночи и за которую вам немного стыдно.

GitType Banner

Что это вообще такое

GitType — это терминальная игра, которая вытягивает код из локальных папок или прямо из репозиториев GitHub. Она использует парсер tree-sitter, чтобы понимать структуру файлов, поэтому вы не просто печатаете текст, а работаете с логическими блоками кода.

Проект написан на Rust с использованием библиотеки Ratatui (это сейчас золотой стандарт для красивых TUI-интерфейсов). Выглядит все очень стильно: графики, ASCII-арт и темы оформления, которые не выжигают глаза.

Реклама

GitType Demo

Зачем это нужно нормальному человеку

Первая мысль — «очередная игрушка». Но если копнуть глубже, у GitType есть несколько неочевидных сценариев использования.

Во-первых, это отличный способ познакомиться с новой кодовой базой. Когда вы приходите в новый проект, полезно не просто «проглядеть» файлы, а буквально пропустить их через кончики пальцев. Пока вы набираете чужой код, мозг волей-неволей замечает паттерны именования, структуру модулей и странные архитектурные решения.

Во-вторых, это легальный способ «выглядеть занятым». Со стороны кажется, что вы яростно строчите код (что правда), хотя на самом деле вы просто проходите уровень в Time Attack. Автор проекта в README прямо так и пишет: «Используйте это как оправдание, чтобы не работать».

Главные фишки

Инструмент поддерживает кучу языков: от Rust и TypeScript до Haskell и Zig. Список постоянно пополняется. Вот что мне показалось наиболее интересным:

  • Работа с реальными репозиториями. Можно натравить утилиту на конкретный URL. Например, gittype --repo ratatui-org/ratatui загрузит код популярной библиотеки, и вы сможете попрактиковаться на коде профессионалов.
  • Тренды GitHub. Команда gittype trending открывает список самых популярных репозиториев за день. Можно выбрать язык (например, Go) и посмотреть, что сейчас пишут люди, заодно прокачав скорость печати.
  • Система рангов. За прохождение уровней дают звания. Начинаете как «Hello World Newbie», а закончить можно в статусе «Quantum Computer». Каждое звание сопровождается своим ASCII-артом. Мелочь, а приятно.
  • Аналитика. Внутри есть полноценный раздел с графиками. Можно отследить свою точность, WPM (слов в минуту) и консистентность по разным языкам программирования.

GitType Analytics

Как запустить

Установка максимально простая, особенно если у вас уже стоит Rust.

Если есть Cargo:

cargo install gittype

Для пользователей macOS через Homebrew:

brew install gittype

Или просто через curl, если не хочется возиться с пакетными менеджерами:

curl -sSL https://raw.githubusercontent.com/unhappychoice/gittype/main/install.sh | bash

После установки просто перейдите в папку со своим проектом и введите gittype. Утилита сама найдет файлы и предложит начать игру.

Техническая сторона вопроса

Интересно, как проект обрабатывает код. Он не просто берет сырой файл и разбивает его на строки. Благодаря tree-sitter, GitType понимает, где заканчивается одна функция и начинается другая. Это позволяет генерировать осмысленные фрагменты для печати, а не обрывки текста на середине условия.

Внутри также зашито более 15 тем оформления. Есть темные, светлые и даже кастомные варианты. Если вам нравится эстетика Gruvbox или Solarized, вы найдете что-то для себя.

GitType Settings

Стоит ли пробовать

Если вы проводите в терминале большую часть рабочего времени, GitType — это отличная альтернатива скучным тренажерам. Он помогает набить руку именно на тех конструкциях, которые вы используете каждый день: стрелочные функции, пайпы, сложные типы в Rust или декораторы в Python.

Особенно проект зайдет тем, кто хочет подтянуть слепую печать, но засыпает на втором абзаце «Алисы в стране чудес». Печатать собственный код (или код крутых опенсорс-проектов) куда азартнее.

Конечно, это не заменит полноценную работу, но как пятиминутный перерыв между задачами — вариант идеальный. По крайней мере, это полезнее, чем в очередной раз обновлять ленту новостей.

Единственный минус — на очень больших файлах или специфических конфигурациях парсер иногда может вести себя странно, но проект активно развивается, и патчи выходят довольно часто. На данный момент у проекта уже больше 1400 звезд на GitHub, что для такой нишевой утилиты очень достойный результат.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.