Category : golang

golang
Ускоряем Go: известные и не очень методы оптимизации и связанные с ними штуки

Привет, Хабр)В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста). Обсудим: простые правила, которые не стоит забыватьмифы о производительности в духе "А я слышал, что X повышает скорость на Y%"более интересные штуки, типа замены switch на map, проведём пару тестов, поэксперимент…

  • суббота, 3 февраля 2024 г. в 00:00:14
golang
Проверяем актуальность go.mod и go.sum

Бывает на практике, что приходится ревьюить запрос на слияние, и видеть подозрительные изменения go.mod и go.sum, возможно меняется только один файл, и возникает закономерный вопрос, а нужны ли эти изменения, или это случайно попало в коммит, быть может коллега забыл добавить другой файл в коммит или запустить go mod tidy после удаления зависимости? А может быть это ты сам в предыдущих коммитах добавил лишние изменения?В общем возникают вопросы, и чтобы их стало меньше можно автоматизировать…

  • пятница, 2 февраля 2024 г. в 00:00:15
golang
Погружение в Web RTC или пишем SFU своими силами

WebRTC — это браузерная технология, предназначенная для передачи потоковых данных между браузерами или приложениями с использованием технологии двухточечной передачи (point-to-point transmission).Web RTC уже давно имеет поддержку в большинстве браузеров, поэтому обходить стороной технологию довольно глупо. Вот и я так подумал, поэтому в качестве пет-проекта решил написать sfu-сервер на golang. О самом Web RTC Здесь я кратко пробегусь по основам работы Web RTC, кому интересно будет залезть чуть…

  • четверг, 1 февраля 2024 г. в 00:00:14
golang
Fitter —  сшиватель API/Website's.  Большое обновление

Добрый вечер всем!С момента выхода предидущей статьи про Fitter прошло достаточно много времени и в связи с этим я хотел поделиться обновлениями, которые были сделаны.Итак, что появилось:Написано, какое-никакое README.md , которое регулярно пополняется фишками.Добавлена возможность использования как библиотека для go. Добавлена поддержка плагинов на go.Добавлена поддержка прокси для коннекторов (server/playwright).Добавлена возможность отправки обновлений в console(stdout)/telegram/http/redis.…

  • среда, 31 января 2024 г. в 00:00:16
golang
Анонимный обмен файлами в реалиях глобального наблюдателя

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

  • среда, 31 января 2024 г. в 00:00:15
golang
Баги, которые мы пишем, ищем и исправляем

Привет! Меня зовут Денис, я - разработчик ПО SEDMAX. Это промышленное ПО для сбора и визуализации данных в энергетике. Как и у всех, у нас бывают баги. Мне бы хотелось поделиться опытом в поиске таких багов, а так же порассуждать на тему того, что необходимо было сделать, чтобы баг не появился. У нас серверная часть написана на go в виде некоторого множества сервисов, поэтому специфика большинства багов будет асинхронное взаимодействие, а код примеров представлен на go.Мне очень нравится искат…

  • вторник, 30 января 2024 г. в 00:00:15
golang
Некоторые возможности ssh в golang

Создать ssh-сервер на Go можно при помощи модуля golang.org/x/crypto/ssh.А при помощи пакета github.com/gliderlabs/ssh можно разработать ssh-сервер легко и быстро. Ssh подразумевает не только доступ к оболочке(shell), но и прочие возможности: файловый сервер(sftp), проброс портов. Репозиторий проекта содержит минимальный пример, выводящий строку "Hello world" любому подключенному ssh-клиенту. package main import ( "github.com/gliderlabs/ssh" "io" "l…

  • среда, 24 января 2024 г. в 00:00:19
golang
GoFunc: новая конференция по Go

Разработка на Go — особый мир. Этот язык не так популярен, как Python или JavaScript, но благодаря этому и глупой шумихи вокруг него меньше. Популярность приманивает «случайно проходивших мимо» и вызывает много дурацких холиваров. А тем временем Go собирает людей, которые уже хорошо понимают, зачем они здесь, и хотят эффективно решать реальные задачи. В этом могут помочь конференции. Мы уже давно проводим их для многих других разработчиков (например, HolyJS и С++ Russia). А в марте впервые про…

  • суббота, 20 января 2024 г. в 00:00:21
golang
RPC на примере gRPC. Когда применять и как работает

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

  • пятница, 19 января 2024 г. в 00:00:17