Category : golang

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
golang
SOLID и DRY в Go

Привет, Хабр!Все знают, что SOLID и DRY делают код более чистым, гибким и, что немаловажно, понятным для других разрабов. Каждый компонент выполняет свою функцию и вместе они создают гармонию. В этой статье рассмотрим как эти принципы применяются в golang. SOLIDSingle Responsibility Principle гласит, что класс или модуль должен иметь только одну причину для изменения. Корочег говоря - каждый класс или функция должны решать лишь одну задачу, не более. Если у вас есть функция или класс, который …

  • пятница, 19 января 2024 г. в 00:00:16
golang
Сравниваем форматы сериализации на Go: скорость и удобство

Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В большинстве современных приложений используется сериализация данных: для передачи данных между клиентом и сервером, для хранения сложных структур в базах данных, при передаче информации между микросервисами или отправке сообщений в очереди.Правильный выбор формата сериализации может существенно повлиять на производительность приложения, размер передаваемых данных и читаемость кода. В этой статье я покажу бенчмарки нескольких с…

  • пятница, 19 января 2024 г. в 00:00:16
golang
TLS Client Hello — перехватываем и парсим — Nginx + Lua / Go

Возникла на днях достаточно интересная задачка - по образу сайта https://www.howsmyssl.com/ получить на страничке список Cipher Suites которые при TLS Handshake клиент передает в своем Client hello.А заодно обдумать инструмент, который позволит работать с другими типами заголовков, в частности - Proxy-Connection.В качестве основного веб сервера с которым я имею дело выступает Nginx, точнее его сборка Openresty с интерпретатором LuaJIT для скриптов Lua.Основная проблематика связана с тем, что в…

  • среда, 17 января 2024 г. в 00:00:14
golang
Go — 100 вопросов/заданий с собеседований

Приветствую тебя, хаброжитель!В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.Тем не менее, я уверен, что эта статья будет очень по…

  • среда, 17 января 2024 г. в 00:00:14