Category : golang

golang
JSON in GO

Это перевод одноименной статьи.Базовое использованиеСериализации JSON в GoВ стандартном пакете encoding/json присутствуют механизмы сериализации marshaling и десериализации unmarshaling JSON.Пример:data, err := json.Marshal(yourVar)Метод Marshal() принимает переменную yourVar любого типа, которую нужно сериализовать в JSON, и возвращает два значения: сериализованные данные в виде байтового массива ([]byte) и ошибку (error), если таковая возникает.Пример:data, err := json.Marshal(yourVar) if e…

  • пятница, 1 марта 2024 г. в 00:00:16
golang
Уведомления через Telegram-бота при помощи почтового триггера Yandex Cloud Functions

Привет, Хабр!Возможно, многие сталкивались с задачей: есть сервер с некими cronjob-ами, результат выполнения которых хотелось бы мониторить определенному числу лиц, но при этом сервер находится в каком-нибудь intranet и не имеет доступа к сети интернет. Вот и у нас однажды возникла подобная проблема. Единственным доступным средством коммуникации с внешним миром у сервера был почтовый шлюз, через который можно было отправить электронную почту. До некоторого времени задача решалась отправкой нес…

  • четверг, 29 февраля 2024 г. в 00:00:19
golang
Прокси-сервер для Android на Go

Реализация простого HTTP CONNECT прокси-сервера на Go, квест с маркировкой сетевых пакетов и запуск программы в Android.ИнтроПосле долгих лет работы разработчиком софта я хочу быть... всё тем же разработчиком. Мне это так же интересно, как и четверть века назад, когда я только начинал программировать. Даже больше - за это время количество того, чего я не знаю, многократно увеличилось, и всё стало ещё интереснее. Это та стихия, в которой я чувствую себя как рыба в воде.Практически каждый проект…

  • вторник, 27 февраля 2024 г. в 00:00:17
golang
Электронные подписи. Но что мы знаем о мультиподписях?

1. ВведениеВ этой статье я хотел бы описать библиотеки для мультиподписи и связанные с ними MPC(multi party computation или многосторонние вычисления). Мне сложно претендовать на четкое описание MPC или мультиподписей. Но цель лишь уведомить о наличие всего этого в сети. Так как я не увидел в ru сегменте достаточного кол-ва информации по данной важной теме. Статья будет разделена на 2 части - небольшое описание протоколов и реализации.Столкнулся с данной темой, когда дорабатывал библиотку для …

  • понедельник, 26 февраля 2024 г. в 00:00:12
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