net/netip в Go 1.25
Привет, Хабр!
Go ценят за предсказуемость и простые решения в стандартной библиотеке, а в сервисах чаще всего упираемся в IP, разбор host:port, CIDR и сериализацию. Сегодня это удобно закрывается стандартным
Читать: https://habr.com/ru/companies/otus/articles/937362/
#ru
@go_in_action | Другие наши каналы
Привет, Хабр!
Go ценят за предсказуемость и простые решения в стандартной библиотеке, а в сервисах чаще всего упираемся в IP, разбор host:port, CIDR и сериализацию. Сегодня это удобно закрывается стандартным
net/netip
: компактные value-типы, корректный парсинг адресов и портов, работа с зонами, проверка принадлежности сетям и быстрые операции без лишних аллокаций. В статье рассмотрим этот пакет подробнее. Читать: https://habr.com/ru/companies/otus/articles/937362/
#ru
@go_in_action | Другие наши каналы
👍3🔥2
Пишем потоковый коррелятор событий безопасности на Golang
Разбираемся в принципе работы Logreact — самописного коррелятора событий безопасности на языке Golang
Читать: https://habr.com/ru/articles/937640/
#ru
@go_in_action | Другие наши каналы
Разбираемся в принципе работы Logreact — самописного коррелятора событий безопасности на языке Golang
Читать: https://habr.com/ru/articles/937640/
#ru
@go_in_action | Другие наши каналы
Чего хотят от Go-разработчиков и что им предлагают в середине 2025 года
Несколько лет назад я переходил на Go и смотрел, что использует Go-разработчик для своих целей. Для этого были просмотрены разные статьи на эту тему, опрошены знакомые, просмотрены требования к вакансиям и стек технологий "обязательных" к изучению был невероятно огромен. Мне казалось, что еще несколько лет нужно будет все изучать, иначе как можно быть Go-разработчиком не зная "1", "2"..., "333".
Чтобы больше не попадать в такую ловушку, а также, чтобы вы тоже в нее не попадали, я исследовал почти все вакансии Go-разработчика, которые представлены в России на данный момент и посчитал, какие навыки спрашивают чаще всего. В данной статье я учитывал только технические навыки, а не "знание английского" или "понимание agile".
Читать: https://habr.com/ru/articles/937760/
#ru
@go_in_action | Другие наши каналы
Несколько лет назад я переходил на Go и смотрел, что использует Go-разработчик для своих целей. Для этого были просмотрены разные статьи на эту тему, опрошены знакомые, просмотрены требования к вакансиям и стек технологий "обязательных" к изучению был невероятно огромен. Мне казалось, что еще несколько лет нужно будет все изучать, иначе как можно быть Go-разработчиком не зная "1", "2"..., "333".
Чтобы больше не попадать в такую ловушку, а также, чтобы вы тоже в нее не попадали, я исследовал почти все вакансии Go-разработчика, которые представлены в России на данный момент и посчитал, какие навыки спрашивают чаще всего. В данной статье я учитывал только технические навыки, а не "знание английского" или "понимание agile".
Читать: https://habr.com/ru/articles/937760/
#ru
@go_in_action | Другие наши каналы
Книга «Основы Go: Community edition» 2-е издание
Всем привет!
Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Go: Community edition». О том, что изменилось, когда будет печатная версия книги и многом другом - в самой статье ;)
Читать: https://habr.com/ru/articles/935664/
#ru
@go_in_action | Другие наши каналы
Всем привет!
Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Go: Community edition». О том, что изменилось, когда будет печатная версия книги и многом другом - в самой статье ;)
Читать: https://habr.com/ru/articles/935664/
#ru
@go_in_action | Другие наши каналы
❤3🎉1
yask или не yask
Я решил попробовать себя на новом амплуа писателя и писать о том, что мне интересно и чем я занимаюсь. Я постараюсь делать меньше воды и не слишком длинные посты, так как длинные посты читаются тяжело. И первый пост будет о yask
Читать: https://habr.com/ru/articles/938144/
#ru
@go_in_action | Другие наши каналы
Я решил попробовать себя на новом амплуа писателя и писать о том, что мне интересно и чем я занимаюсь. Я постараюсь делать меньше воды и не слишком длинные посты, так как длинные посты читаются тяжело. И первый пост будет о yask
Читать: https://habr.com/ru/articles/938144/
#ru
@go_in_action | Другие наши каналы
🔥2
Wasm-плагины на Go
Привет, Хабр!
Когда обсуждают расширяемость бэкендов, первым делом вспоминают нативные плагины на C или C++. Дальше обычно всплывают вопросы ABI, совместимости компиляторов, загрузчиков и фразы «а у нас Alpine с musl». В Go исторически был пакет plugin, но его применимость ограничена окружениями и сборкой. В 2025 году картина проще: берем WebAssembly как изолированный байткод, исполняем его прямо из Go и получаем плагинную архитектуру без плясок с динамическими библиотеками.
Далее в статье рассмотрим, как создать практичную систему Wasm-плагинов на Go: с изоляцией, таймаутами, контрактом данных и обновлениями на лету. Для рантайма возьмем wazero, потому что он написан на Go и не требует cgo.
Читать: https://habr.com/ru/companies/otus/articles/938018/
#ru
@go_in_action | Другие наши каналы
Привет, Хабр!
Когда обсуждают расширяемость бэкендов, первым делом вспоминают нативные плагины на C или C++. Дальше обычно всплывают вопросы ABI, совместимости компиляторов, загрузчиков и фразы «а у нас Alpine с musl». В Go исторически был пакет plugin, но его применимость ограничена окружениями и сборкой. В 2025 году картина проще: берем WebAssembly как изолированный байткод, исполняем его прямо из Go и получаем плагинную архитектуру без плясок с динамическими библиотеками.
Далее в статье рассмотрим, как создать практичную систему Wasm-плагинов на Go: с изоляцией, таймаутами, контрактом данных и обновлениями на лету. Для рантайма возьмем wazero, потому что он написан на Go и не требует cgo.
Читать: https://habr.com/ru/companies/otus/articles/938018/
#ru
@go_in_action | Другие наши каналы
Go vs Crystal: выбираем между двумя современными языками программирования
Когда речь заходит о современных языках системного программирования, разработчики часто сталкиваются с непростым выбором. Два языка, которые привлекают всё больше внимания в последние годы — это Go (разработанный Google) и Crystal (вдохновлённый синтаксисом Ruby, но со статической типизацией). Оба обещают высокую производительность, продуктивность разработки и современные возможности языка, но идут к этим целям совершенно разными путями.
В этом подробном сравнении мы разберём сильные и слабые стороны каждого языка, а также их идеальные сценарии использования, чтобы помочь вам принять обоснованное решение для вашего следующего проекта.
Жмисюда
Читать: https://habr.com/ru/articles/938330/
#ru
@go_in_action | Другие наши каналы
Когда речь заходит о современных языках системного программирования, разработчики часто сталкиваются с непростым выбором. Два языка, которые привлекают всё больше внимания в последние годы — это Go (разработанный Google) и Crystal (вдохновлённый синтаксисом Ruby, но со статической типизацией). Оба обещают высокую производительность, продуктивность разработки и современные возможности языка, но идут к этим целям совершенно разными путями.
В этом подробном сравнении мы разберём сильные и слабые стороны каждого языка, а также их идеальные сценарии использования, чтобы помочь вам принять обоснованное решение для вашего следующего проекта.
Жмисюда
Читать: https://habr.com/ru/articles/938330/
#ru
@go_in_action | Другие наши каналы
👍1
В поисках мертвых горутин
Я пишу всякое на Go в Ви.Tech (IT-дочка ВсеИнструменты.ру) и люблю периодически изучать предлагаемые нововведения. Недавно мы собирались внутренним комьюнити, обсуждали интересные пропозалы из гитхаба Go. Среди прочего — изящный и крайне перспективный Proposal #74609 Deadlock detection by using the garbage collector Собственно, о нём сегодня и пойдёт речь.
Мотивация
Горутины могут блокироваться — например, при попытке захватить уже занятую блокировку или отправить сообщение в канал, по которому ещё никто не читает. Если все горутины заблокированы, рантайм Go завершает выполнение с фатальной ошибкой о глобальной взаимной блокировке (deadlock).
Однако гораздо чаще встречаются частичные дедлоки (также известные как утечки горутин), когда часть, но не все горутины блокируются навсегда. В отличие от глобальных дедлоков, которые случаются редко, частичные дедлоки — частая проблема в реальных приложениях из-за непредсказуемых путей исполнения и планирования.
На текущий момент Go не предоставляет встроенного механизма для обнаружения или устранения частичных дедлоков. Поскольку стандартный сборщик мусора не распознаёт такие ситуации, он не может освободить ни память, занятую “мёртвыми” горутинами, ни ресурсы, достижимые только через их стеки.
Наиболее продвинутыми динамическими средствами обнаружения частичных дедлоков являются Goleak и LeakProf:
Читать: https://habr.com/ru/articles/938390/
#ru
@go_in_action | Другие наши каналы
Я пишу всякое на Go в Ви.Tech (IT-дочка ВсеИнструменты.ру) и люблю периодически изучать предлагаемые нововведения. Недавно мы собирались внутренним комьюнити, обсуждали интересные пропозалы из гитхаба Go. Среди прочего — изящный и крайне перспективный Proposal #74609 Deadlock detection by using the garbage collector Собственно, о нём сегодня и пойдёт речь.
Мотивация
Горутины могут блокироваться — например, при попытке захватить уже занятую блокировку или отправить сообщение в канал, по которому ещё никто не читает. Если все горутины заблокированы, рантайм Go завершает выполнение с фатальной ошибкой о глобальной взаимной блокировке (deadlock).
Однако гораздо чаще встречаются частичные дедлоки (также известные как утечки горутин), когда часть, но не все горутины блокируются навсегда. В отличие от глобальных дедлоков, которые случаются редко, частичные дедлоки — частая проблема в реальных приложениях из-за непредсказуемых путей исполнения и планирования.
На текущий момент Go не предоставляет встроенного механизма для обнаружения или устранения частичных дедлоков. Поскольку стандартный сборщик мусора не распознаёт такие ситуации, он не может освободить ни память, занятую “мёртвыми” горутинами, ни ресурсы, достижимые только через их стеки.
Наиболее продвинутыми динамическими средствами обнаружения частичных дедлоков являются Goleak и LeakProf:
Читать: https://habr.com/ru/articles/938390/
#ru
@go_in_action | Другие наши каналы
Forwarded from Типичный программист
Осваиваем паттерны многопоточности в GO
🔘 Быстрое и понятное введение в базовые паттерны параллелизма в Go: как строить код с помощью горутин и каналов, чтобы приложения были и быстрыми, и удобными для поддержки: https://hackernoon.com/understanding-concurrency-patterns-in-go
🔘 Для более глубокого погружения — интерактивный сайт с шаблонами, антипаттернами, инструментами и практическими примерами конкурентного кода: concurrency.rocks
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
Осознанное обновление go.mod, присыпанное визуальным сахаром или как я написал yet another cli tool
Зависимости тоже хотят заботы — но без драмы. modup — лёгкий tui, подскажет, что обновить, и поднимет нужные версии аккуратно, без «сломалось, но почему?».
Выберите пакеты, жмите — наблюдайте прогресс. Один запуск — и go.mod причёсан. Сюрпризы оставим код‑ревью, а не сборке.
Нажимай сюда и откроется статья
Читать: https://habr.com/ru/articles/938716/
#ru
@go_in_action | Другие наши каналы
Зависимости тоже хотят заботы — но без драмы. modup — лёгкий tui, подскажет, что обновить, и поднимет нужные версии аккуратно, без «сломалось, но почему?».
Выберите пакеты, жмите — наблюдайте прогресс. Один запуск — и go.mod причёсан. Сюрпризы оставим код‑ревью, а не сборке.
Нажимай сюда и откроется статья
Читать: https://habr.com/ru/articles/938716/
#ru
@go_in_action | Другие наши каналы
Паттерны обработки ошибок в GO: это должен знать каждый разработчик
Обработка ошибок в Go — это не просто про избегание сбоев. Она помогает строить системы, которые “ломаются красиво”, ясно сообщают о проблемах и упрощают отладку. В отличие от языков в которых есть обработка исключений, Go заставляет нас явно думать о том, что может пойти не так. Это одновременно и преимущество, и недостаток.
Роб Пайк однажды сказал: “Ошибки — это значения” (прим. переводчика: В Go ошибка — это не исключение и не что-то “особенное”, а просто значение, которое может вернуть функция.) Эта простая мысль определяет то, как мы должны подходить к обработке ошибок в Go. Давайте посмотрим, как превратить эту ”филосовскую” мысль в практические паттерны.
Читать: https://habr.com/ru/articles/938928/
#ru
@go_in_action | Другие наши каналы
Обработка ошибок в Go — это не просто про избегание сбоев. Она помогает строить системы, которые “ломаются красиво”, ясно сообщают о проблемах и упрощают отладку. В отличие от языков в которых есть обработка исключений, Go заставляет нас явно думать о том, что может пойти не так. Это одновременно и преимущество, и недостаток.
Роб Пайк однажды сказал: “Ошибки — это значения” (прим. переводчика: В Go ошибка — это не исключение и не что-то “особенное”, а просто значение, которое может вернуть функция.) Эта простая мысль определяет то, как мы должны подходить к обработке ошибок в Go. Давайте посмотрим, как превратить эту ”филосовскую” мысль в практические паттерны.
Читать: https://habr.com/ru/articles/938928/
#ru
@go_in_action | Другие наши каналы
👍2❤1
Новый подход Go 1.25 к GOMAXPROCS учитывает ограничения CPU контейнеров, улучшая производительность и снижая задержки из-за троттлинга. Теперь Go автоматически подстраивается под лимиты ресурсов в контейнерной среде, что повышает стабильность и готовность к продакшену.
Подробнее: https://go.dev/blog/container-aware-gomaxprocs
#en
@go_in_action | Другие наши каналы
Подробнее: https://go.dev/blog/container-aware-gomaxprocs
#en
@go_in_action | Другие наши каналы
Сказка о Зачарованной Пасеке
Басня о коде и мёде
Когда-то давно в обширном цифровом королевстве жила гильдия строителей. Не замков и мостов, а сложных, невидимых структур, созданных на основе чистой логики. Они были архитекторами и разработчиками программного обеспечения, и их самой большой проблемой было создание систем, которые могли бы расти и адаптироваться, не погружаясь в хаос.
Они трудились день и ночь, используя всевозможные чертежи и заклинания, однако их творения часто становились запутанными беспорядками — хрупкими и трудно поддающимися изменению. Строители просто жаждали создать программное обеспечение устойчивое, организованное и полное жизни, как шумный улей.
И вот однажды мудрый старый архитектор, известный как «Пчеловод», собрал молодых строителей. «Вы стремитесь строить «Великие вещи», — сказала она, и ее голос был теплым, как летний мед. «Но вы строите из камня и железа, когда вы должны строить из самой жизни. Посмотрите на пчел. Их ульи — шедевры дизайна, построенные на века на протяжении поколений. Давайте узнаем их секреты».
Так начинается наша история. История не только о коде, но и о вечных закономерностях природы, которые могут помочь нам создавать создавать красивые программы. Мы отправимся в самое сердце Шестиугольного Улья, откроем его секретный генетический код и узнаем, как выращивать собственных «рабочих пчел», которые будут служить нашему цифровому королевству добросовестно.
Читать: https://habr.com/ru/articles/939200/
#ru
@go_in_action | Другие наши каналы
Басня о коде и мёде
Когда-то давно в обширном цифровом королевстве жила гильдия строителей. Не замков и мостов, а сложных, невидимых структур, созданных на основе чистой логики. Они были архитекторами и разработчиками программного обеспечения, и их самой большой проблемой было создание систем, которые могли бы расти и адаптироваться, не погружаясь в хаос.
Они трудились день и ночь, используя всевозможные чертежи и заклинания, однако их творения часто становились запутанными беспорядками — хрупкими и трудно поддающимися изменению. Строители просто жаждали создать программное обеспечение устойчивое, организованное и полное жизни, как шумный улей.
И вот однажды мудрый старый архитектор, известный как «Пчеловод», собрал молодых строителей. «Вы стремитесь строить «Великие вещи», — сказала она, и ее голос был теплым, как летний мед. «Но вы строите из камня и железа, когда вы должны строить из самой жизни. Посмотрите на пчел. Их ульи — шедевры дизайна, построенные на века на протяжении поколений. Давайте узнаем их секреты».
Так начинается наша история. История не только о коде, но и о вечных закономерностях природы, которые могут помочь нам создавать создавать красивые программы. Мы отправимся в самое сердце Шестиугольного Улья, откроем его секретный генетический код и узнаем, как выращивать собственных «рабочих пчел», которые будут служить нашему цифровому королевству добросовестно.
Читать: https://habr.com/ru/articles/939200/
#ru
@go_in_action | Другие наши каналы
Youtube TG бот на GO cо всеми «прелестями»
Привет, Хабр! Сегодня хочу поделиться с сообществом TG ботом, которого написал пару лет назад и который до сих пор актуален и работает.
Читать: https://habr.com/ru/articles/939436/
#ru
@go_in_action | Другие наши каналы
Привет, Хабр! Сегодня хочу поделиться с сообществом TG ботом, которого написал пару лет назад и который до сих пор актуален и работает.
Читать: https://habr.com/ru/articles/939436/
#ru
@go_in_action | Другие наши каналы
👍2
Мы писали ранее, что 12 сентября пройдёт big tech night. Событие придумали в Яндексе и организовали вместе со Сбером, X5, Т-Банком и Lamoda. Впервые топовые IT-компании одновременно откроют двери офисов в Москве с 18:00 до 00:00 и покажут специалистам, где рождаются технологии.
Пора рассказать о тех, кто выйдет на сцену⚡️
📣 Кто и о чём расскажет на big tech night? Начинаем представлять спикеров и темы. Читайте на карточках.
➡️ А подробнее про доклады рассказываем на сайте
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Пора рассказать о тех, кто выйдет на сцену⚡️
📣 Кто и о чём расскажет на big tech night? Начинаем представлять спикеров и темы. Читайте на карточках.
➡️ А подробнее про доклады рассказываем на сайте
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543