Category : golang

golang
Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)В этом по…

  • воскресенье, 25 февраля 2024 г. в 00:00:14
golang
Go 1.22: Rangefunc Experiment

ДисклеймерДанная статья - проба пера.Данная статья - перевод/вольная интерпретация соответствующей страницы с Go Wiki. Если знаете английский язык, то, возможно, стоит зайти в первоисточник, а здесь посмотреть лишь примеры.В данной статье будет речь только о простых одноуровневых циклах. ПланЧто такое range func?НюансыPush/Pull - семантикаКак попробоватьПример: перебор слайса в случайном порядкеПослесловиеЧто такое range func?Range func - это функция-итератор, которую можно использовать в for-…

  • вторник, 20 февраля 2024 г. в 00:00:14
golang
Обзор библиотеки Go Kit

Салют, Хабр!Go Kit предоставляет стандартизированный способ создания сервисов, с ее помощью можно легко реализовать совместимость сервисов. С его помощью можно легко интегрировать различные транспортные протоколы, такие как HTTP, RPC, gRPC, и многое другое, а также реализовывать общие паттерны: логирование, метрики, трассировка. В общем, Go Kit хорошо подходит для разработки микросервисов на go.Мотивацию создания этой либы разработчики описали так:Go стал языком сервера, но он по-прежнему недо…

  • вторник, 20 февраля 2024 г. в 00:00:13
golang
Шаблон телеграмм бота на go

Добрый день, сегодня я поделюсь с вами, на мой взгляд, довольно удачным шаблоном для телеграмм ботов на goВ нем заложена большая часть популярных сценариев работы и его расширение не должно вызывать проблем.Функционал шаблонаВыполнение запросов в ГорутинахВыполнение команд из консолиХранение контекста во время выполнения Вывод клавиатур и сообщений с локализациейВозвращение к предыдущему менюДля тех кому не терпеться взглянуть добро пожаловать в GitHub.Заранее прошу меня простить если покорёжи…

  • суббота, 17 февраля 2024 г. в 00:00:17
golang
Обзор библиотеки bleve в Golang

Bleve предоставляет индексации любых структур данных Go, он поддерживает различные типы полей: текст, числа, даты и логические значения, а также разнообразие запросов: от простых терминов до фраз и сложных булевых запросов.Чтобы начать работу с Bleve, нужно установить саму библиотеку в рабочее пространство Go. Процесс установки выполняется с помощью команды go get:go get -u github.com/blevesearch/bleveBleveСоздание индекса начинается с определения маппинга. Маппинг — это описание структуры дан…

  • пятница, 16 февраля 2024 г. в 00:00:13
golang
Шаблонизатор GO text template для новичков

ВведениеШаблоны - это инструмент программирования, который позволяет создавать структурированный и повторно используемый контент или код. Они имеют много применений в различных областях, включая веб-разработку, генерацию отчетов, форматирование текста и многое другое. В целом, шаблоны предоставляют удобный способ создания структурированного и гибкого контента или кода, что упрощает создание контента для различных приложений и веб-сайтов.Все инструкции шаблона заключаются в символы{{ и }}Текст …

  • вторник, 13 февраля 2024 г. в 00:00:14
golang
Представляем gqlgen: генератор серверов GraphQL для Go

В 99designs мы находимся на пути деконструкции нашего PHP-монолита в микросервисную архитектуру, при этом большинство новых сервисов пишется на Go. В этот период наша фронтенд-команда также применила безопасность типов, перейдя с Javascript на TypeScript и React.Логотип gqlgen от V'OfficialПосле того как мы внедрили безопасность типов в бэкенд и фронтенд, стало очевидно, что наши конечные точки REST, созданные на заказ, не могут преодолеть разрыв между типами. Нам нужен был способ объедини…

  • воскресенье, 11 февраля 2024 г. в 00:00:14
golang
Шаблонизатор GO text template

ВведениеШаблоны - это инструмент программирования, который позволяет создавать структурированный и повторно используемый контент или код. Они имеют много применений в различных областях, включая веб-разработку, генерацию отчетов, форматирование текста и многое другое. В целом, шаблоны предоставляют удобный способ создания структурированного и гибкого контента или кода, что упрощает создание контента для различных приложений и веб-сайтов.Все инструкции шаблона заключаются в символы{{ и }}Текст …

  • воскресенье, 11 февраля 2024 г. в 00:00:13
golang
Go 1.22: Интерактивные заметки к релизу

Вчера вышел Go 1.22, и многие новые фичи можно попробовать прямо из браузера. Давайте пройдемся по ним! Хабр не разрешает встраивать интерактивные примеры кода в статью, поэтому я сделал их внешними ссылками. Починили счетчик цикла в замыканиях Раньше переменные, объявленные в цикле for, создавались один раз и обновлялись на каждой итерации. Это приводило к ошибкам вроде использования счетчика в горутинах: // go 1.21 values := []int{1, 2, 3, 4, 5} for _, val := range values { go func() { …

  • пятница, 9 февраля 2024 г. в 00:00:21