Category : golang

golang
Типы, больше типов

ВведениеПри описании модели данных, часто приходится создавать новые типы, в первую очередь, используя такие ключевые слова как class/struct/record. Такие типы агрегируют в себе другие типы как простые, так и составные. Все это знают и применяют. Я же предлагаю взглянуть на случаи, когда моделируемая сущность, описывается существующими, часто простыми типами, такими как целое число или строка.В статье я хочу поделиться мыслями, которые привели меня к использованию специальных типов там, где ча…

  • четверг, 29 июня 2023 г. в 00:00:16
golang
Типы, методы и интерфейсы

Автор статьи: Рустем ГалиевIBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBMВсем привет. Сегодня на примере разберем методы и интерфейсы в go. Большая часть того, что называют написанием идиоматического кода на Go — это изучение использования преимуществ определяемых пользователем типов Go. Интерфейсы — единственный тип в Go с динамической диспетчеризацией. Поскольку они реализованы неявно,то позволяют разработчикам создавать несвязанный, удобный …

  • среда, 28 июня 2023 г. в 00:00:13
golang
3 доклада для тех, кто недавно с Go: материалы митапа в Петербурге

«Что самое крутое вы сделали за год, что пишете на Go» — вопрос из зала после первого доклада.«Записал новую машину на жену))», — остроумный комментарий к этому моменту в трансляции.В конце мая в очень дружелюбной атмосфере состоялся YADRO Go To митап — в этот раз для тех, кто только думает или недавно начал писать на Go в коммерческих проектах. В этом посте мы собрали ссылки на записи, презентации и добавили пару слов о каждом выступлении, чтобы было проще выбрать, что посмотреть детальнее, а…

  • суббота, 24 июня 2023 г. в 00:00:21
golang
Go scheduler. Простыми словами

Меня зовут Ерванд Агаджанян, я backend developer в EMCD Tech. В данной статье расскажу о планировщике Go. Часть материала взял из книги Уильяма Кеннеди Ultimate Go. Вначале поговорим о планировщике OS, после перейдем к планировщику Go и сравним их.Планировщик OSКаждая программа, которую мы запускаем, создает процесс, и каждому процессу присваивается его начальный поток. У процесса может быть несколько потоков. Все они выполняются независимо друг от друга, и решения о планировании принимаются н…

  • пятница, 23 июня 2023 г. в 00:00:14
golang
Авакари — сервис для публикации и подписки на релевантные сообщения

В предыдущей статье "Дерево Киви для поиска шаблона по тексту" я рассказывал, как можно эффективно находить по входящему сообщению все удовлетворяющие "поисковые запросы", избегая их перебора "в лоб" и прямого сопоставления. Это можно применить реализации полноценной Pub/Sub-системы, дополняющей уже существующие, такие как Nats, Apache Kafka или AWS SNS новой возможностью поддерживать действительно масштабируемое число wildcard-подписок. В этой статье я расскажу о такой…

  • четверг, 22 июня 2023 г. в 00:00:16
golang
Стеганографические эксперименты с видеофайлами и Youtube. Продолжение

С момента публикации первой части статьи появились интересные инструменты, демонстрирующие побочные возможности Youtube для хранения цифровой информации. Например, утилита Infinite-Storage-Glitch. Автор утилиты DvorakDwarf, пользуясь рациональным размещением цифровой информации в черно-белом формате CV_8UC3, успешно использовал Youtube если не в качестве полноценного дропбокса, то в качестве прототипа альтернативного файлового хранилища, что вызвало массу различных инспираций и породило бурну…

  • понедельник, 19 июня 2023 г. в 00:00:10
golang
table-driven testing в Go

Автор статьи: Рустем ГалиевIBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBM Привет Хабр! Продолжая тему тестирования на Go, сегодня поговорим про table-driven тестирование.У нас есть основная проблема: дублированный тестовый код.Иногда вы будете писать тесты, использующие ту же логику тестирования, но с другим набором тестовых данных. Давайте посмотрим на пример. Допустим, вы хотите протестировать дополнительную функциональность калькулятора с раз…

  • пятница, 16 июня 2023 г. в 00:00:20
golang
Bot-Games.Fun — игровая платформа для AI

Почти год назад я рассказывал о платформе HighLoad.Fun, где можно посоревноваться в оптимизации кода, но не упомянул Bot-Games.Fun - платформу, где нужно написать своего AI бота для участия в играх. Основное отличие от других аналогичных платформ - код бота не надо загружать на сервер, его нужно запускать на своём железе, что открывает широчайшие возможности по используемым технологиям и затраченным ресурсам на просчёт следующего хода. А ещё все игры с открытым кодом, можно влиять на правила, …

  • вторник, 13 июня 2023 г. в 00:00:18
golang
Пишем gRPC автотесты на Go с Allure отчетом

ВступлениеВ данной статье разберем, как писать gRPC автотесты с использованием языка Go, также сделаем Allure отчет Перед тем как читать статью, нужно базово понимать некоторые термины:Что такое RPC? Что такое gRPC?Что такое protobuf? Сюда же можно отнести знакомство с синтаксисом *.proto файлов;Неплохо было бы знать/понимать синтаксис языка Go, хотя бы на базовом уровне;Для запуска сервера через docker понадобятся базовые знания docker.Без понимания выше описанного будет сложно разобраться о…

  • воскресенье, 11 июня 2023 г. в 00:00:13