Привет, Хабр)В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста). Обсудим: простые правила, которые не стоит забыватьмифы о производительности в духе "А я слышал, что X повышает скорость на Y%"более интересные штуки, типа замены switch на map, проведём пару тестов, поэксперимент…
Бывает на практике, что приходится ревьюить запрос на слияние, и видеть подозрительные изменения go.mod и go.sum, возможно меняется только один файл, и возникает закономерный вопрос, а нужны ли эти изменения, или это случайно попало в коммит, быть может коллега забыл добавить другой файл в коммит или запустить go mod tidy после удаления зависимости? А может быть это ты сам в предыдущих коммитах добавил лишние изменения?В общем возникают вопросы, и чтобы их стало меньше можно автоматизировать…
WebRTC — это браузерная технология, предназначенная для передачи потоковых данных между браузерами или приложениями с использованием технологии двухточечной передачи (point-to-point transmission).Web RTC уже давно имеет поддержку в большинстве браузеров, поэтому обходить стороной технологию довольно глупо. Вот и я так подумал, поэтому в качестве пет-проекта решил написать sfu-сервер на golang. О самом Web RTC Здесь я кратко пробегусь по основам работы Web RTC, кому интересно будет залезть чуть…
Добрый вечер всем!С момента выхода предидущей статьи про Fitter прошло достаточно много времени и в связи с этим я хотел поделиться обновлениями, которые были сделаны.Итак, что появилось:Написано, какое-никакое README.md , которое регулярно пополняется фишками.Добавлена возможность использования как библиотека для go. Добавлена поддержка плагинов на go.Добавлена поддержка прокси для коннекторов (server/playwright).Добавлена возможность отправки обновлений в console(stdout)/telegram/http/redis.…
ПредисловиеСегодня уже ни для кого не секрет, что каждое отправляемое нами сообщение из любой точки мира может быть успешно перехвачено, проанализировано и отфильтровано компаниями, корпорациями и государственными спец службами. Каждый наблюдатель в такой ролевой модели преследует выполнение своих, точно заданных задач. Корпорациям и отдельным компаниям слежка становится выгодна в массе своей по причине перепродажи полученных сведений с целью дальнейшего формирования таргетированной рекламы и …
Привет! Меня зовут Денис, я - разработчик ПО SEDMAX. Это промышленное ПО для сбора и визуализации данных в энергетике. Как и у всех, у нас бывают баги. Мне бы хотелось поделиться опытом в поиске таких багов, а так же порассуждать на тему того, что необходимо было сделать, чтобы баг не появился. У нас серверная часть написана на go в виде некоторого множества сервисов, поэтому специфика большинства багов будет асинхронное взаимодействие, а код примеров представлен на go.Мне очень нравится искат…
Создать 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…
Разработка на Go — особый мир. Этот язык не так популярен, как Python или JavaScript, но благодаря этому и глупой шумихи вокруг него меньше. Популярность приманивает «случайно проходивших мимо» и вызывает много дурацких холиваров. А тем временем Go собирает людей, которые уже хорошо понимают, зачем они здесь, и хотят эффективно решать реальные задачи. В этом могут помочь конференции. Мы уже давно проводим их для многих других разработчиков (например, HolyJS и С++ Russia). А в марте впервые про…
Введение Доброго времени суток, коллеги. Я go разработчик, по-этому примеры будут преимущественно на нём. Хочу порассуждать о методах взаимодействия сервисов. Тема очень обширна. Зачастую мы пользуемся реализациями, которые не всегда подходят, т.к. не знаем куда применить ту или иную технологию. Я хочу попытаться начать закрывать этот пробел как у себя, так и у людей. Любые комментарии и конструктивные исправления приветствуются. В данной статье хочу разобрать как работает gRPC, что он мож…