Я давно пишу на Go, но раньше у меня был довольно плотный опыт во фронтенде. Поэтому, когда я захожу в терминальные интерфейсы, я всё ещё ожидаю какого-то базового UX — чтобы было понятно, что происходит, что можно нажимать, и что именно ты сейчас делаешь.
Но каждый раз, когда мне нужно было поработать с TUI — особенно в задачах, вроде удаления файлов по фильтру, — я чувствовал, как мой мозг вытекает через уши.
Мои страдания
Недавно мне просто нужно было удалить старые тяжелые и всякий мусор из, кроме пары вложенных папок. Казалось бы, простая задача. Я поставил несколько популярных утилит для этой цели (не будем называть имён, вы и так их знаете), и каждый раз ловил фрустрацию.
— Что это за управление?
— Почему мышка не работает?
— Почему никакой подсказки, что вообще делает эта кнопка?
Это не UX. Это терминальное шаманство.
TUI ≠ для избранных
Вот в чём беда: большинство TUI-инструментов будто специально создаются для хардкорных пользователей. Тех, кто жил в vim
больше, чем в спальне. Это окей — я уважаю таких людей. Но я и сам не новичок, и мне всё равно неудобно. А теперь представьте, что вы обычный человек, который просто хочет подчистить пару гигов мусора…
Вы открываете инструмент, и там: тёмный экран, какие-то символы, реагирующие на клавиши (но не те, которые вы пробуете), отсутствие мышки, отсутствие подсказок и ощущение, будто вы случайно запустили BIOS.
Я не выдержал и сделал Deletor
TUI/CLI утилиту для менеджмента файлов и удаления. И подошёл к ней не как системный программист, а как фронтендер, у которого болит от странных интерфейсов. С той самой мыслью: “пользователь не должен страдать”. Я хотел, чтобы всё было интуитивно, сразу понятно. Чтобы ты открыл, и не возникало вопроса — “а что тут нажимать?”. Навигация — привычная: стрелки, таб, даже мышка работает. При этом, если хочется автоматизировать — тоже не проблема. Deletor умеет работать через CLI
Проект open-source, можно заглянуть в код, посмотреть, как устроено, и, если захочется — поучаствовать.
👉 github.com/pashkov256/deletor
TUI и CLI-инструменты не должны пугать — они могут быть понятными с первых секунд. Нужно просто проектировать их с учётом обычных пользователей: показывать, что происходит, давать интерактивность, не перегружать. Если ты делаешь инструмент — делай так, чтобы им хотелось пользоваться, а не гуглить мануалы.