Как стать автором
Поиск
Написать публикацию
Обновить
196.11

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Книга «Основы Go: Community edition» 2-е издание

Время на прочтение4 мин
Количество просмотров541

Всем привет!

Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Go: Community edition». О том, что изменилось, когда будет печатная версия книги и многом другом - в самой статье ;)

Читать далее

Новости

Чего хотят от Go-разработчиков и что им предлагают в середине 2025 года

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.4K

Несколько лет назад я переходил на Go и смотрел, что использует Go-разработчик для своих целей. Для этого были просмотрены разные статьи на эту тему, опрошены знакомые, просмотрены требования к вакансиям и стек технологий "обязательных" к изучению был невероятно огромен. Мне казалось, что еще несколько лет нужно будет все изучать, иначе как можно быть Go-разработчиком не зная "1", "2"..., "333".

Чтобы больше не попадать в такую ловушку, а также, чтобы вы тоже в нее не попадали, я исследовал почти все вакансии Go-разработчика, которые представлены в России на данный момент и посчитал, какие навыки спрашивают чаще всего. В данной статье я учитывал только технические навыки, а не "знание английского" или "понимание agile".

Читать далее

Пишем потоковый коррелятор событий безопасности на Golang

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.3K

Разбираемся в принципе работы Logreact — самописного коррелятора событий безопасности на языке Golang

Читать далее

net/netip в Go 1.25

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

Привет, Хабр!

Go ценят за предсказуемость и простые решения в стандартной библиотеке, а в сервисах чаще всего упираемся в IP, разбор host:port, CIDR и сериализацию. Сегодня это удобно закрывается стандартным net/netip: компактные value-типы, корректный парсинг адресов и портов, работа с зонами, проверка принадлежности сетям и быстрые операции без лишних аллокаций. В статье рассмотрим этот пакет подробнее.

Читать далее

Go 1.25: свежий релиз принес умные контейнеры и экспериментальный сборщик мусора

Время на прочтение3 мин
Количество просмотров2.9K

12 августа команда Go представила новую версию языка — Go 1.25. Релиз получился не самым крупным по количеству изменений в языке (их вообще нет), но принес несколько интересных улучшений в рантайме и инструментах, которые стоит обсудить.

Как разработчик, работающий в основном с микросервисами, я особенно обратил внимание на несколько ключевых нововведений. Давайте разберем основные измененения.

Читать далее

Швейцария в картах Go: путешествие по Swiss Tables

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров3.3K

Golang продолжает развиваться. Изначальные проектные решения ставятся под сомнения, а новые вызовы заставляют язык меняться: дженерики, итераторы, новая имплементация мап. Однако, даже нововведения приходят к нам не такими, как в других языках. Вспомните обсуждения сразу после релиза тех же дженериков. На Go, как мне кажется, в большинстве своём пишут люди, пришедшие из прочих языков, у кого Golang не первый ЯП. Они привыкли к другому подходу работы с абстракциями. И им порой не хватает того, что предлагает язык Гофера. Swiss Tables — попытка быть в тренде.

С вами Кирилл Кузин — ведущий подкастов про IT на канале gIT, где вместе с коллегами по цеху рассматриваем индустрию под разными углами, открывая новые горизонты для вас и самих себя. А работаю ведущим разработчиком в Ви.Tech — IT-дочке ВсеИнструменты.ру. Там мы с командой пишем внутренние системы на Go под задачи бизнеса и по ходу дела разбираемся, как наши инструменты устроены и как реально влияют на процесс разработки.

В этой статье речь пойдёт о новых мапах в версии Go 1.24, реализованных по принципу Swiss Tables — швейцарских таблиц. Попробуем найти ответы на вопросы о том, почему мапы изменились, что лежит в основе новой реализации и как к ней пришли.

Читать далее

Превращаем legacy CLI в AI-агентов за 5 минут: практическое руководство по MCP и Ophis для Go-разработчиков

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров529

Ophis — это мост между Cobra CLI и Model Context Protocol (MCP), позволяющий Claude Desktop напрямую вызывать kubectl, helm, terraform и любые другие CLI-инструменты. Вместо копирования вывода команд в чат, AI получает структурированный доступ к командам.

В статье: архитектура решения, production-ready реализация и реальные кейсы из практики.

Читать далее

Пишем свой MCP-сервер на Go

Время на прочтение11 мин
Количество просмотров7.2K

Пока ML- и AI-специалисты усиленно создают агентские системы, разработчики тоже хотят приобщиться к созданию нового мира. Так компания Anthropic — создатели Claude Sonnet, разработали открытый протокол MCP (Model Context Protocol), который позволяет LLM взаимодействовать с любой информационной системой. Это открыло новые возможности не только для построения более сложных и продвинутых агентских AI-систем, но и для активного участия во всём этом процессе и backend-разработчиков.

Я Евгений Клецов — Go-разработчик из Cloud.ru. В статье покажу, как создать свой сервер в тесной связке с вашим продуктом или решением, чтобы затем на его базе построить AI-агента и тем самым облегчить «жизнь» себе и своим клиентам.

Читать далее

Политики безопасности k8s gatekeeper OPA. Интеграция с GO

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров633

Поговорим о политиках безопасности в кубере. Обсудим на примерах зачем они нужны, в каких случаях они действительно помогут обезопасить, когда политики могут положить всю систему и как ими пользоваться в кубере. Плюсом захватим немного кода на go для работы с ними. И увидим, как одной политикой поломать кубер!

Читать далее

Хочу отдать игру в open source

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров6.4K

Всем привет. Восемь лет назад я написал браузерную IO игру про космические сражения. Какое‑то время игра была в онлайне и даже пользовалась некоторой популярностью, но потом я ее забросил. А сегодня случайно наткнулся на старый ролик, сделанный игрокам — https://www.youtube.com/watch?v=AG7rVC1LiNM. И подумал, что ведь она неплохо выглядит даже сейчас. Что если кто‑то захочет ее развить?

Серверная часть написана на go, один сервер поддерживает до 2000 одновремнных игроков. Клиент написан на Unity3d. Есть еще боты, работающие на том же протоколе, что и клиент. Они туповатые, но в целом, умеют и воевать и преследовать игрока и собирать ресурсы. Ботов написал на java мой брат.

Конечно, все исходники давно устарели — версии go и unity там восьмилетней давности. Но все это можно реанимировать и привести в порядок, если найдутся люди, желающие развивать такой проект. Лично мне хотелось бы вписать текущий гэймплэй в какую‑то более интересную и общую вселенную — сделать из этого RPG может быть.

Кому интересно пишите комментарии или в личку.

Готов ответить на вопросы.

Читать далее

Изучаем Go: руководство для JavaScript-разработчиков. Часть 2

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.3K

После пяти лет работы JavaScript-разработчиком, занимаясь как фронтендом, так и бэкендом, я провел последний год, осваивая Go для серверной разработки. За это время мне пришлось переосмыслить многие вещи. Различия в синтаксисе, базовых принципах, подходах к организации кода и, конечно, в средах выполнения — все это довольно сильно влияет не только на производительность приложения, но и на эффективность разработчика.

Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости от Microsoft о том, что они переписывают официальный компилятор TypeScript на Go — и обещают ускорение до 10 раз по сравнению с текущей реализацией.

Эта статья — своего рода путеводитель для JavaScript-разработчиков, которые задумываются о переходе на Go или просто хотят с ним познакомиться. Я постарался структурировать материал вокруг ключевых особенностей языка, сравнивая их с привычными концепциями из JavaScript/TypeScript. И, конечно, расскажу о "подводных камнях", с которыми столкнулся лично — с багажом мышления JS-разработчика.

Читать далее

Самовосстанавливающаяся инфраструктура через цифровые двойники: архитектура и инструменты

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров2.1K

В этой статье разбираем, как концепция цифровых двойников помогает построить инфраструктуру, способную автоматически обнаруживать сбои и восстанавливаться без участия человека. Подробно рассматриваем ключевые компоненты, примеры кода на Python и Go, интеграцию с Kubernetes и лучшие практики на основе реальных кейсов.

Читать далее

Построение REST API на Go с использованием Gorilla Mux и MongoDB

Время на прочтение4 мин
Количество просмотров2.9K

Введение

В данной статье будет рассмотрена практическая интеграция MongoDB с веб-приложением на Go, построенным на базе маршрутизатора Gorilla Mux. Цель — получить минимальный, но функциональный REST API с поддержкой CRUD-операций над сущностью Book, при этом соблюдая лучшие практики структурирования кода.

Материал рассчитан на разработчиков, знакомых с Go, HTTP API и основами работы с базами данных.

Выбор стека

Go — компилируемый язык с лаконичным синтаксисом, встроенной поддержкой параллелизма и богатой стандартной библиотекой для работы с сетью. Эти качества делают его удобным выбором для разработки API-сервисов.

Читать далее

Ближайшие события

Как я раздул из гофера слона или история распределенного сократителя ссылок

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.2K

Вполне логично предположить, что сократитель ссылок — довольно простой сервис как с точки зрения пользователя, так и под капотом. Но что, если, взяв за основу такую простую задачу, построить целую распределенную систему?

Мой шортенер начинался как простая практика с Go и gRPC после всех ОГЭ:), где должно было быть 3 сервиса: тг бот, API gateway и ядро. Но с каждым днем идей все больше, энтузиазм растёт, я стал делать упор на высокие нагрузки, и постепенно мини‑практика начала становиться боевой event-driven машиной. В этой статье я хотел бы подметить интересную мысль: даже самая простая вещь может быть реализована сложно.

Погрузиться в архитектуру

HTMX, AlpineJS, SSR v1/2/3 и SPA. Что к чему

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.4K

HTMX и AlpineJS это две JS библиотеки, которые расширяют HTML специальными аттрибутами и позволяют писать фронтенд без SPA фреймворков.

Это альтернативы React/Vue/Angular и иже с ними. Их появление вызвано усталостью от сложной JS экосистемы и тоской по временам, когда задачи решались с помощью PHP и jQuery.

Я всю жизнь писал JSON API и SPA интерфейсы и моему мозгу трудно было переварить, зачем нужны эти библиотеки и как с ними работать. Поэтому я написал эту статью.

Читать далее

Явное и неявное определение типов и полей в Go

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.4K

Как я пришел к написанию собственного пакета go, столкнувшись с отсутствием синтаксического сахара в языке и трудностях при разработке приложений в production с отсутствием команды инфраструктуры на go.

Читать далее

FUSE + Go: ковка собственной виртуальной файловой системы на блочном устройстве

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров2.3K

В этой статье подробно разбирается создание пользовательской файловой системы с помощью FUSE и языка Go. На реальном примере мы пройдём путь от установки окружения до реализации чтения, записи, метаданных и параллельного доступа. В процессе встретятся живые комментарии, личные наблюдения и советы, которые помогут избежать распространённых подводных камней.

вперед

Потоки, горутины, синхронизация и мьютексы в Go

Время на прочтение4 мин
Количество просмотров5.6K

Go (Golang) создан для эффективной параллельной и конкурентной работы. Его killer feature — легковесные потоки выполнения, называемые горутины (goroutines), и мощные средства синхронизации. Приглашаю разобраться подробно.

Читать далее

Изучаем Go: руководство для JavaScript-разработчиков. Часть 1

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров10K

После пяти лет работы JavaScript-разработчиком, занимаясь как фронтендом, так и бэкендом, я провел последний год, осваивая Go для серверной разработки. За это время мне пришлось переосмыслить многие вещи. Различия в синтаксисе, базовых принципах, подходах к организации кода и, конечно, в средах выполнения — все это довольно сильно влияет не только на производительность приложения, но и на эффективность разработчика.

Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости от Microsoft о том, что они переписывают официальный компилятор TypeScript на Go — и обещают ускорение до 10 раз по сравнению с текущей реализацией.

Эта статья — своего рода путеводитель для JavaScript-разработчиков, которые задумываются о переходе на Go или просто хотят с ним познакомиться. Я постарался структурировать материал вокруг ключевых особенностей языка, сравнивая их с привычными концепциями из JavaScript/TypeScript. И, конечно, расскажу о "подводных камнях", с которыми столкнулся лично — с багажом мышления JS-разработчика.

Читать далее

Барьеры памяти «Golang»

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров6.1K

Данная статья направлена на повышение уровня понимания принципов работы барьеров памяти, которые лежат в основе атомарных операций. Она не описывает историю и первопричины появления данного механизма, а служит объяснением основных подходов.

Идеей было донести простыми словами и примерами механизмов работы барьеров памяти, поэтому в данной статье нет углубления в синтаксис ассемблер команд или архитектур процессоров.

Читать далее
1
23 ...

Вклад авторов