Перейти к содержимому
ГоМастер

Поиск по урокам

Найдите урок, курс, термин или раздел

Инструменты 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». Инструменты полезнее, когда база уже есть: разбор ошибок подскажет, что читать дальше, дерево навыков покажет, что пропущено, а калькулятор аллокаций объяснит, почему учебный сервис съедает память.