Инструменты Go: считаем, симулируем, разбираем
Двенадцать интерактивных штук, которые отвечают на вопросы из практики: сколько памяти съест этот код, кто заблокирован на канале, что означает ошибка компилятора, во сколько обойдётся запрос к базе и что не так с продакшен-каркасом сервиса. Всё считается в браузере — код не покидает вашу машину.
Калькулятор аллокаций
Сколько памяти съедает ваш Go-код: стек против кучи, escape analysis, цена срезов, карт и интерфейсов.
Карта памяти Go
Схема стека, кучи, среза и указателя. Пошагово видно, что происходит с массивом при append.
Симулятор планировщика
Горутины, буферизованные каналы и select по шагам: кто блокируется, кто просыпается, где возникает дедлок.
Разбор ошибок компилятора
Вставьте текст ошибки Go — получите человеческое объяснение и ссылку на урок, где тема разобрана.
Светофор качества кода
Простой, аргументы, вложенность, дубли и потерянные ошибки — разбор присланного Go-кода.
Калькулятор стоймости базы
Оценка нагрузки на PostgreSQL: трафик, N+1, индексы и кэш — с честными оговорками по точности.
Разбор пробелов
Короткая анкета — персональный план курсов по порядку с обоснованием каждого шага.
Дерево навыков Go
Карта курсов с разблокировкой по мере прохождения и подсветкой тем, где вы отстаёте.
Как читать pprof
Шесть профилей Go: cpu, heap, allocs, goroutine, block, mutex — команды и разбор вывода.
Чек-лист продакшена
34 пункта перед выкаткой Go-сервиса: таймауты, graceful shutdown, health-check, лимиты, логи и метрики.
Что изменилось в Go
Таймлайн релизов 1.18–1.25: дженерики, slices, errors.Join и что нового после вашей версии.
Симулятор собеседования
Вопросы из раздела собеседований с таймером, эталонным ответом и типичными ошибками кандидатов.
Инструменты дополняют курсы, а не заменяют их
Калькулятор покажет, куда уехала переменная, но понимать, почему escape analysis решил так, помогает урок про управление памятью. Симулятор горутин объяснит дедлок, а продвинутый курс покажет, как от него защищаться в рабочем коде.
С чего начать: какой инструмент открыть первым
Инструменты делятся на три группы по типу задачи. Первую вы открываете, когда вам нужно понять, что происходит внутри рантайма: калькулятор аллокаций, карта памяти и симулятор планировщика отвечают на вопросы «почему сервис ест память» и «кто заблокирован на канале». Вторая группа помогает с рабочим кодом: разбор ошибок компилятора подсказывает, что почитать дальше, светофор качества и калькулятор стоймости базы показывают, что чинить в первую очередь. Третья группа про организацию работы: дерево навыков показывает, что вы ещё не проходили, разбор пробелов собирает маршрут под вашу цель, а чек-лист продакшена не даст выкатить сервис без таймаутов и graceful shutdown.
Если вы только начинаете, порядок такой: базовый курс даст синтаксис, песочница даст практику без установки, а инструменты пригодятся, когда код уже пишется и надо понимать, почему он ведёт себя так, а не иначе. Разбор ошибок стоит держать открытым постоянно: он экономит время на каждом незнакомом сообщении компилятора.
Ни один из инструментов не заменяет чтение исходников Go и официальной документации — они показывают модель работы рантайма, чтобы вы задавали правильные вопросы коду, а не угадывали. Калькулятор аллокаций ничего не знает про ваш сервис: он показывает, сколько памяти стоит конструкция, а сколько она съест у вас, вы посчитаете сами.
Отдельный случай — разбор ошибок компилятора. Сообщение Go о несовпадении типов или о неиспользуемой переменной выглядит недружелюбно, пока вы не знаете правила: почему короткое объявление не работает на уровне пакета, почему интерфейс требует ровно своих методов, почему опечатка в имени поля даёт ошибку совсем в другом месте. Словарь переводит сообщение на язык правил и сразу отправляет в урок, где это правило разобрано с примерами, — так ошибка перестаёт быть препятствием и становится поводом разобраться.
И последнее: все расчёты идут в браузере, а значит, работают без интернета, без регистрации и без передачи вашего кода куда-либо. Это тот же принцип, что и у песочницы уроков: интерпретатор Go собран в WebAssembly и выполняется на вашей машине. Можно решать задачу в метро, в самолёте и в сетевой изоляции — и это не преимущество ради красивой формулировки, а требование к рабочим инструментам разработчика.
Все инструменты сделаны по одним правилам: сначала объяснение, потом интерактив; ответ идёт в первых словах; под каждым блоком — ссылка на урок, где тема разобрана подробно. Никакой магии и никаких «просто нажмите сюда»: если вы поняли, что происходит, инструмент сделал своё дело.
Какой инструмент для какой задачи
| Задача | Инструмент | Что покажет |
|---|---|---|
| Сервис ест больше памяти, чем ожидалось | Калькулятор аллокаций | Сколько памяти стоит каждая конструкция и куда она уехала — в стек или в кучу |
| Не понимаю, где в коде теряется память | Карта памяти Go | Схема стека, кучи, среза и указателя с пошаговым разбором append |
| Сервис встал под нагрузкой, не пойму почему | Симулятор планировщика | Кто заблокирован на канале, кто ждёт буфер и где возник дедлок |
| Не понимаю сообщение компилятора | Разбор ошибок | Что означает ошибка, какое правило Go нарушено и какой урок это разбирает |
| База медленная, надо понять, с чего начать | Калькулятор базы | Оценка нагрузки, эффект N+1, польза индексов и кэша |
| Рефакторинг: за что взяться первым | Светофор качества | Слишком много аргументов, глубокая вложенность, потерянная ошибка |
| Не знаю, с чего начать учить Go | Разбор пробелов | Персональный порядок курсов под ваш уровень и цель |
| Готовлюсь к собеседованию | Симулятор собеседования | Вопрос с таймером, эталонный ответ и типичные ошибки кандидатов |
| Не понимаю, что изменилось в новой версии Go | Что изменилось в Go | Таймлайн релизов и подсказка, что нового после вашей версии |
Частые вопросы об инструментах
Зачем самоучителю Go интерактивные инструменты?
Теория про стек и кучу запоминается, пока не столкнёшься с ней в своём сервисе. Инструменты дают то же понимание, но без компиляции: видно, куда уехала переменная после escape analysis, кто из горутин заблокирован на канале и во сколько обойдётся запрос к базе. Плюс это страницы, по которым ищут конкретную ошибку или проблему, — длиннохвостовой трафик из поиска.
Инструменты работают без интернета?
Да. Всё считается в браузере: код не уходит на сервер, ничего не скачивается. Песочница уроков тоже работает локально — интерпретатор Go собран в WebAssembly и запускается в воркере на вашей машине.
С чего начать, если я только учу Go?
С курса «Язык Go с нуля» и раздела «Собеседование Golang». Инструменты полезнее, когда база уже есть: разбор ошибок подскажет, что читать дальше, дерево навыков покажет, что пропущено, а калькулятор аллокаций объяснит, почему учебный сервис съедает память.