Сколько Go-разработчиков в русскоязычном IT-сообществе? Насколько им нужны собственные конференции?
Такие вопросы лучше всего проверяются практикой. Весной мы впервые провели онлайн-конференцию GoFunc. Стало ясно: хотя она не настолько масштабная, как у самых массовых языков программирования, спрос есть и продолжать стоит.
Поэтому уже на следующей неделе мы снова проведём GoFunc. Конференция будет небольшой: один день, 13 докладов (и ещё обсуждение Go 1.23). А здесь делимся описаниями всех этих докладов — так что можете понять, сколько там интересного для вас.
Содержание
Рантайм и язык
Архитектура и инфраструктура
Библиотеки и фреймворки
Геймдев
Прочее
Рантайм и язык
Игорь Панасюк
Яндекс
Ассемблер часто ассоциируется с низкоуровневым программированием, и его применение в Go может существенно улучшить производительность и расширить возможности и понимание языка. Игорь расскажет, как Go предоставляет разработчикам доступ к своему абстрактному ассемблеру, где его стоит применять и почему это может быть полезно. Рассмотрит различные примеры: от самых простых программ до применения SIMD-оптимизаций.
Трансформация кода: от исходника до оптимизированного бинарника в Go
Александр Леонович
Positive Technologies
Александр рассмотрит этапы компиляции и сборки программ на языке Go, уделяя особое внимание преобразованиям, происходящим на промежуточных стадиях, таким как преобразование в промежуточный код SSA (Static Single Assignment) и генерация псевдоассемблерного кода.
Обсуждение: Go 1.23 — новые возможности и технологии
Илья Горкун
Независимый консультант
Даниил Подольский
YADRO
Обсудим новые функции, улучшения производительности, инструменты разработки и другие инновации в Go 1.23.
Фаззинг-тестирование Go: как собрать свой вариант велосипеда и успешно на нем поехать
Иван Золотников
YADRO
Не существует доступного варианта реализации фаззинга (тестирование приложения случайными данными) в Go «из коробки».
Иван расскажет, какие грабли и опыт успела собрать его команда за год решения задачи по интеграции фаззинга в продукты компании:
Зачем вообще требуется фаззинг: какие инструменты и подходы смотрели, и их минусы.
Как пробовали дописать fzgen до состояния полноценного автоматизированного инструмента, и почему это не сработало.
Как сделали новую ставку на фаззинг через API и интеграцию с libFuzzer.
Результаты и сравнение подходов.
Архитектура и инфраструктура
Пишем микросервисы на Go как в BigTech, с нуля
Леонид Ченский
Ozon Tech
Как эффективно начать разработку микросервисов на Go с использованием современных инструментов, популярных в крупных технологических компаниях. Обсудим ключевые трудности при создании микросервисной архитектуры с нуля, такие как интеграция компонентов, межсервисное взаимодействие и поддержка системы.
Леонид представит инструменты, которые могут значительно упростить этот процесс:
gRPC для высокопроизводительного межсервисного взаимодействия;
gRPC-Gateway для обеспечения совместимости с RESTful API;
Buf для управления protobuf схемами;
rk-boot для быстрого старта и стандартизации.
Он покажет, как эти технологии интегрируют в реальный проект, с акцентом на упрощение разработки и поддержания микросервисов.
Как Temporal помогает не потерять вашу пиццу
Антон Цитульский
Uzum Tezkor
В FoodTech важно сохранять целостность бизнес-процессов.
В Uzum Tezkor используют Temporal, чтобы гарантировать, что пицца доставляется без задержек. Антон покажет, как Temporal управляет оркестрацией и отказоустойчивостью процессов, гарантируя, что пицца доставляется вовремя.
Как Temporal работает «изнутри»: от архитектуры кластера до реализации конкретных бизнес-процессов.
Детерминизм, версионирование в Temporal и особенности взаимодействия с помощью gRPC.
Достижение отказоустойчивости бизнес-процессов с Event History, чтобы не потерять заказ и гарантировать своевременную доставку.
Дмитрий Гонозов
Яндекс
Во всех проектах есть проблема роста сложности с течением времени. Из-за чего в какой-то момент вносить новые изменения становится очень дорого. В докладе Дмитрий расскажет о своем опыте применения подхода DDD (domain-driven design), который позволит решить эту проблему как при старте новых проектов, так и при рефакторинге существующих legacy-проектов.
Design by contract на минималках для Go
Александр Иванов
YADRO
В современном мире разработки программного обеспечения качество кода — ключевой фактор для обеспечения надежности и предсказуемости поведения программных решений.
В докладе Александр поднимет важную тему для обсуждения: как обеспечить соблюдение контрактов со стороны кода, вызывающего функции, и как добиться предсказуемого поведения вызываемых функций. На примере использования самодельных assertions в Go покажет, как этот простой инструмент может упростить процесс разработки и поддержания качественного кода.
Библиотеки и фреймворки
Kafka Connect, или Как передавать огромные потоки данных между базами
Юра Саргсян
Wildberries
Доклад больше технический. Основная проблема: передача большого потока данных между двумя базами.
Основные технологии: Kafka Connect, драйвер Debezium, Golang, Postgres.
Юра хочет рассказать о проблемах, с которыми столкнулся при использовании данных технологий, и методах их решения.
Современные решения для работы с Protocol Buffers
Василий Близнецов
Protobuf стал де-факто стандартом для современных облачных сервисов: микросервисы, мобильные приложения и т.п. Но несмотря на бешеную популярность protobuf, количество, да и качество различного тулинга разочаровывают. Или попадаются брошенные, с последним коммитом пару лет назад и buf, который забанил адреса РФ и РБ, да и имеют ряд своих ограничений.
Василий и его коллеги решили сделать свой аналог buf, учитывая боли, с которыми сталкиваются разработчики, особенно из ИБ-сферы. Вам расскажут, какими готовыми инструментами вдохновлялись, как исследовали, как они работают под капотом, и что из этого получилось.
Почему стоит использовать GraphQL
Александр Синичкин
Usetech
В докладе Александр хочет рассказать, почему стоит использовать GraphQL.
Он покажет сравнение с REST и gRPC. Расскажет о различных фишках. О том, как обычно используют эту технологию и том, как на самом деле надо. Расскажет, как решать распространенные проблемы. Бонусом добавит различных прикольных моментов, которые неочевидны поначалу.
Геймдев
Искандер Шарипов
quasilyte tech
Разработка игр на Go — это весело. Однако в Ebitengine нет встроенного механизма вроде Particle2D из Godot/Unity. Частицы — это способ эффективно создавать эффекты из простейших текстур. Искандер расскажет, как создать такую систему на CPU и GPU.
Прочее
Типы данных под капотом: быстро ориентируемся в Go maps
Владислав Белогрудов
YADRO
Заглянем внутрь «мап» языка, чтобы не только отвечать на каверзные вопросы интервьюеров, но и научиться правильно применять и, где это необходимо, ускорять.
Обсудим:
типы хеш-таблиц;
внутреннее устройство Go maps;
вычисление хеша;
создание, копирование, изменение «мап».
Из Python в Go: как научить писать команду на другом языке
Владимир Тельбухов
Яндекс
Владимир опишет переход от монолита на Python в микросервис Go: как к этому пришли, в чем была цель, какие были этапы.
Он расскажет об опыте переучивания команды на язык Go, поделится своими лучшими практиками.
Целевая аудитория: разработчики, которые понимают недостатки своего языка и видят преимущества в другом языке, но по каким-то причинам не начинают переход.
Заключение
Мы хотим, чтобы участие в онлайн-конференции отличалось от простого просмотра YouTube. Поэтому, например, после каждого доклада можно будет как следует порасспрашивать спикера: с видеозаписями так не сделаешь.
Нашли ли интересные вам темы? Если вдруг что-то актуальное для вас упущено — сообщайте об этом в комментариях, учтём на будущее (а то и становитесь спикером, сможете об этом сами и рассказать).
Если вам нужно больше информации о конференции — заходите на её сайт, там и точное расписание, и другие подробности.
А если уже поняли достаточно и теперь интересуют билеты — они тоже на сайте.
Увидимся в онлайне!