Category : golang

golang
Youtube TG бот на GO cо всеми «прелестями»

Привет, Хабр! Сегодня хочу поделиться с сообществом TG ботом, которого я написал пару лет назад и который до сих пор актуален и работает.Немного историиСвое знакомство с телеграмм ботами я начал как раз с разработки ютуббота, было это около 5 лет назад. Первая версия этого бота была реализована на php, реализовывалась она на коленке и скорее ради интереса пощупать что такое боты и закрыть мою потребность в удобном скачивании роликов с ютуба. Версия на php прожила около 2-х лет, бот рос, был неу…

  • пятница, 22 августа 2025 г. в 00:00:09
golang
Паттерны обработки ошибок в GO: это должен знать каждый разработчик

Обработка ошибок в Go — это нечто большее, чем просто предотвращение падений программы. Она помогает строить системы, которые “ломаются красиво”, ясно сообщают о проблемах и упрощают отладку. В отличие от языков в которых есть обработка исключений, Go заставляет нас явно думать о том, что может пойти не так. Это одновременно и преимущество, и недостаток.Роб Пайк однажды сказал: “Ошибки — это значения” (прим. переводчика: В Go ошибка — это не исключение и не что-то “особенное”, а просто значение…

  • четверг, 21 августа 2025 г. в 00:00:16
golang
В поисках мертвых горутин

Я пишу всякое на Go в Ви.Tech (IT-дочка ВсеИнструменты.ру) и люблю периодически изучать предлагаемые нововведения. Недавно мы собирались внутренним комьюнити, обсуждали интересные пропозалы из гитхаба Go. Среди прочего — изящный и крайне перспективный Proposal #74609 Deadlock detection by using the garbage collector Собственно, о нём сегодня и пойдёт речь.МотивацияГорутины могут блокироваться — например, при попытке захватить уже занятую блокировку или отправить сообщение в канал, по которому …

  • среда, 20 августа 2025 г. в 00:00:09
golang
Осознанное обновление go.mod, присыпанное визуальным сахаром или как я написал yet another cli tool

Поддерживать зависимости в тонусе — задача неблагодарная:Обновление «всего и сразу» через go get -u ./... нередко превращается в «собери‑ка это теперь».Непонятно, где есть patch/minor/major, а что лучше подождать.Ручной цикл бесит: проверил список → выбрал пакет → обновил → вернулся в список → повтори.В какой-то момент я понял, что хочу обновлять зависимости спокойно и намеренно, а не играть в «русскую рулетку» с билдом.Убивая двух зайцев сразу, я взял и написал modup — утилита которая сканируе…

  • среда, 20 августа 2025 г. в 00:00:08
golang
Книга «Основы Go: Community edition» 2-е издание

Всем привет!Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Go: Community edition». От полной версии книги ее отличает то, что в ней отсутствует сквозной проект – игра «Крестики-нолики», которая улучшается практически после каждой главы и сопровождается заданиями на самостоятельную проработку по ее улучшению (своего рода «проект-песочница» из которого я вытряс всю душу и придумал задания, способные привести к знатному подгоранию пятой точки ^_^)…

  • вторник, 19 августа 2025 г. в 00:00:11
golang
yask или не yask

Всех приветствую!Я решил попробовать себя на новом амплуа писателя и писать о том, что мне интересно и чем я занимаюсь. Я постараюсь делать меньше воды и не слишком длинные посты, так как длинные посты читаются тяжело.Вступительная вода закончилась, теперь к делу.yask - что это такое и для чего нужно.Я пишу на Go (Golang) и как-то была нужда часто создавать проекты и каждый раз создавать папки и файлы по одной и той же структуре очень надоело. Нагуглил только проекты с уже готовой архитектурой …

  • вторник, 19 августа 2025 г. в 00:00:10
golang
Wasm-плагины на Go

Привет, Хабр!Когда обсуждают расширяемость бэкендов, первым делом вспоминают нативные плагины на C или C++. Дальше обычно всплывают вопросы ABI, совместимости компиляторов, загрузчиков и фразы «а у нас Alpine с musl». В Go исторически был пакет plugin, но его применимость ограничена окружениями и сборкой. В 2025 году картина проще: берем WebAssembly как изолированный байткод, исполняем его прямо из Go и получаем плагинную архитектуру без плясок с динамическими библиотеками. Далее в статье рассм…

  • вторник, 19 августа 2025 г. в 00:00:08
golang
Go vs Crystal: выбираем между двумя современными языками программирования

Когда речь заходит о современных языках системного программирования, разработчики часто сталкиваются с непростым выбором. Два языка, которые привлекают всё больше внимания в последние годы — это Go (разработанный Google) и Crystal (вдохновлённый синтаксисом Ruby, но со статической типизацией). Оба обещают высокую производительность, продуктивность разработки и современные возможности языка, но идут к этим целям совершенно разными путями.В этом подробном сравнении мы разберём сильные и слабые ст…

  • вторник, 19 августа 2025 г. в 00:00:08
golang
Чего хотят от Go-разработчиков и что им предлагают в середине 2025 года

TL;DR - осмотрел почти все вакансии Go-разработчика в России. Разобрал, какие технические навыки нужны для каждого грейда по разным рекрутинговым площадкам, посчитал медианную зарплату, а заодно выяснил, сколько вакансий есть в каждом грейде и какое количество из них позволяют работать удалённо. Результат меня огорчил.Мотивация создания постаНесколько лет назад я переходил на Go и смотрел, что использует Go-разработчик для своих целей. Для этого были просмотрены разные статьи на данную тему, оп…

  • воскресенье, 17 августа 2025 г. в 00:00:07