Го, мы создали: что расскажут на онлайн-конференции GoFunc 2024 Autumn

lt8yetbllpph8or7rqof_gm_x9k.jpeg

Сколько Go-разработчиков в русскоязычном IT-сообществе? Насколько им нужны собственные конференции?

Такие вопросы лучше всего проверяются практикой. Весной мы впервые провели онлайн-конференцию GoFunc. Стало ясно: хотя она не настолько масштабная, как у самых массовых языков программирования, спрос есть и продолжать стоит.

Поэтому уже на следующей неделе мы снова проведём GoFunc. Конференция будет небольшой: один день, 13 докладов (и ещё обсуждение Go 1.23). А здесь делимся описаниями всех этих докладов — так что можете понять, сколько там интересного для вас.

Содержание

  • Рантайм и язык

  • Архитектура и инфраструктура

  • Библиотеки и фреймворки

  • Геймдев

  • Прочее

Рантайм и язык

Понимание ассемблера Go

xnckqyi-yuvgzuhqpyjw2dq7dzw.pngИгорь Панасюк

Яндекс

Ассемблер часто ассоциируется с низкоуровневым программированием, и его применение в Go может существенно улучшить производительность и расширить возможности и понимание языка. Игорь расскажет, как Go предоставляет разработчикам доступ к своему абстрактному ассемблеру, где его стоит применять и почему это может быть полезно. Рассмотрит различные примеры: от самых простых программ до применения SIMD-оптимизаций.

Трансформация кода: от исходника до оптимизированного бинарника в Go

5_fq8txr5cbjvoaqr2qpssxfgug.pngАлександр Леонович

Positive Technologies

Александр рассмотрит этапы компиляции и сборки программ на языке Go, уделяя особое внимание преобразованиям, происходящим на промежуточных стадиях, таким как преобразование в промежуточный код SSA (Static Single Assignment) и генерация псевдоассемблерного кода.

Обсуждение: Go 1.23 — новые возможности и технологии

2dtc_cxs3g8gwfb-saibipdmoos.pngИлья Горкун

Независимый консультант

2vfj7gr3knz6kmcvaclevepv8ee.jpegДаниил Подольский

YADRO

Обсудим новые функции, улучшения производительности, инструменты разработки и другие инновации в Go 1.23.

Фаззинг-тестирование Go: как собрать свой вариант велосипеда и успешно на нем поехать

qqbc_g-4hgoux8fujfgydv1xwk4.pngИван Золотников

YADRO

Не существует доступного варианта реализации фаззинга (тестирование приложения случайными данными) в Go «из коробки».
Иван расскажет, какие грабли и опыт успела собрать его команда за год решения задачи по интеграции фаззинга в продукты компании:

  • Зачем вообще требуется фаззинг: какие инструменты и подходы смотрели, и их минусы.

  • Как пробовали дописать fzgen до состояния полноценного автоматизированного инструмента, и почему это не сработало.

  • Как сделали новую ставку на фаззинг через API и интеграцию с libFuzzer.

  • Результаты и сравнение подходов.

Архитектура и инфраструктура

Пишем микросервисы на Go как в BigTech, с нуля

dgzinxrltfvtdz2a-r7vj1cpmj4.jpegЛеонид Ченский

Ozon Tech

Как эффективно начать разработку микросервисов на Go с использованием современных инструментов, популярных в крупных технологических компаниях. Обсудим ключевые трудности при создании микросервисной архитектуры с нуля, такие как интеграция компонентов, межсервисное взаимодействие и поддержка системы.

Леонид представит инструменты, которые могут значительно упростить этот процесс:

  • gRPC для высокопроизводительного межсервисного взаимодействия;

  • gRPC-Gateway для обеспечения совместимости с RESTful API;

  • Buf для управления protobuf схемами;

  • rk-boot для быстрого старта и стандартизации.

Он покажет, как эти технологии интегрируют в реальный проект, с акцентом на упрощение разработки и поддержания микросервисов.

Как Temporal помогает не потерять вашу пиццу

ykcd-vvoygfjiqr8awsdidmc-ic.pngАнтон Цитульский

Uzum Tezkor

В FoodTech важно сохранять целостность бизнес-процессов.

В Uzum Tezkor используют Temporal, чтобы гарантировать, что пицца доставляется без задержек. Антон покажет, как Temporal управляет оркестрацией и отказоустойчивостью процессов, гарантируя, что пицца доставляется вовремя.

  • Как Temporal работает «изнутри»: от архитектуры кластера до реализации конкретных бизнес-процессов.

  • Детерминизм, версионирование в Temporal и особенности взаимодействия с помощью gRPC.

  • Достижение отказоустойчивости бизнес-процессов с Event History, чтобы не потерять заказ и гарантировать своевременную доставку.

DDD в Go

jpv0aljw4xqpgphzeuffeo_yjsk.jpegДмитрий Гонозов

Яндекс

Во всех проектах есть проблема роста сложности с течением времени. Из-за чего в какой-то момент вносить новые изменения становится очень дорого. В докладе Дмитрий расскажет о своем опыте применения подхода DDD (domain-driven design), который позволит решить эту проблему как при старте новых проектов, так и при рефакторинге существующих legacy-проектов.

Design by contract на минималках для Go

35gobiknipc3g0qx3i_nlqwpugy.pngАлександр Иванов

YADRO

В современном мире разработки программного обеспечения качество кода — ключевой фактор для обеспечения надежности и предсказуемости поведения программных решений.

В докладе Александр поднимет важную тему для обсуждения: как обеспечить соблюдение контрактов со стороны кода, вызывающего функции, и как добиться предсказуемого поведения вызываемых функций. На примере использования самодельных assertions в Go покажет, как этот простой инструмент может упростить процесс разработки и поддержания качественного кода.

Библиотеки и фреймворки

Kafka Connect, или Как передавать огромные потоки данных между базами

gncvvlqwfl_gehg_nkh7puo9t_c.pngЮра Саргсян

Wildberries

Доклад больше технический. Основная проблема: передача большого потока данных между двумя базами.

Основные технологии: Kafka Connect, драйвер Debezium, Golang, Postgres.

Юра хочет рассказать о проблемах, с которыми столкнулся при использовании данных технологий, и методах их решения.

Современные решения для работы с Protocol Buffers

rg_7ojhiqmnlwz4afxlecpo370c.jpegВасилий Близнецов

Protobuf стал де-факто стандартом для современных облачных сервисов: микросервисы, мобильные приложения и т.п. Но несмотря на бешеную популярность protobuf, количество, да и качество различного тулинга разочаровывают. Или попадаются брошенные, с последним коммитом пару лет назад и buf, который забанил адреса РФ и РБ, да и имеют ряд своих ограничений.

Василий и его коллеги решили сделать свой аналог buf, учитывая боли, с которыми сталкиваются разработчики, особенно из ИБ-сферы. Вам расскажут, какими готовыми инструментами вдохновлялись, как исследовали, как они работают под капотом, и что из этого получилось.

Почему стоит использовать GraphQL

zknv6krnqxvktafv3bkt83dcrmk.pngАлександр Синичкин

Usetech

В докладе Александр хочет рассказать, почему стоит использовать GraphQL.
Он покажет сравнение с REST и gRPC. Расскажет о различных фишках. О том, как обычно используют эту технологию и том, как на самом деле надо. Расскажет, как решать распространенные проблемы. Бонусом добавит различных прикольных моментов, которые неочевидны поначалу.

Геймдев

Particles2D на Go

c40mf08pabqlkccgh8wwfvrfmqw.jpegИскандер Шарипов

quasilyte tech

Разработка игр на Go — это весело. Однако в Ebitengine нет встроенного механизма вроде Particle2D из Godot/Unity. Частицы — это способ эффективно создавать эффекты из простейших текстур. Искандер расскажет, как создать такую систему на CPU и GPU.

Прочее

Типы данных под капотом: быстро ориентируемся в Go maps

vrkcmmg1vqrv6u31yj0n6ontnps.pngВладислав Белогрудов

YADRO

Заглянем внутрь «мап» языка, чтобы не только отвечать на каверзные вопросы интервьюеров, но и научиться правильно применять и, где это необходимо, ускорять.

Обсудим:

  • типы хеш-таблиц;

  • внутреннее устройство Go maps;

  • вычисление хеша;

  • создание, копирование, изменение «мап».

Из Python в Go: как научить писать команду на другом языке

y1rmvhkdghr4yjsovljv0wy2uwm.pngВладимир Тельбухов

Яндекс

Владимир опишет переход от монолита на Python в микросервис Go: как к этому пришли, в чем была цель, какие были этапы.

Он расскажет об опыте переучивания команды на язык Go, поделится своими лучшими практиками.

Целевая аудитория: разработчики, которые понимают недостатки своего языка и видят преимущества в другом языке, но по каким-то причинам не начинают переход.

Заключение

Мы хотим, чтобы участие в онлайн-конференции отличалось от простого просмотра YouTube. Поэтому, например, после каждого доклада можно будет как следует порасспрашивать спикера: с видеозаписями так не сделаешь.

Нашли ли интересные вам темы? Если вдруг что-то актуальное для вас упущено — сообщайте об этом в комментариях, учтём на будущее (а то и становитесь спикером, сможете об этом сами и рассказать).

Если вам нужно больше информации о конференции — заходите на её сайт, там и точное расписание, и другие подробности.

А если уже поняли достаточно и теперь интересуют билеты — они тоже на сайте.

Увидимся в онлайне!

© Habrahabr.ru