
Разработка на Go — особый мир. Этот язык не так популярен, как Python или JavaScript, но благодаря этому и глупой шумихи вокруг него меньше. Популярность приманивает «случайно проходивших мимо» и вызывает много дурацких холиваров. А тем временем Go собирает людей, которые уже хорошо понимают, зачем они здесь, и хотят эффективно решать реальные задачи.
В этом могут помочь конференции. Мы уже давно проводим их для многих других разработчиков (например, HolyJS и С++ Russia). А в марте впервые проведём новую конференцию GoFunc. Главное, что нужно о ней знать:
-
Полностью в онлайне, можно подключиться откуда угодно.
-
Технические доклады без воды и маркетинга.
-
Если вы сами готовы выступить, сейчас последние дни подачи заявок.
А подробнее — в полном тексте:
Чего вообще ждать?
Тем, кто уже был на других наших конференциях (вроде Joker, Heisenbug или Mobius), объяснять не требуется. Но для всех остальных поясним, что мы любим:
-
Нам важно, чтобы даже в онлайн-формате конференция была не просто просмотром видеопотока. Поэтому, например, после каждого доклада даём участникам как следует порасспрашивать спикера в формате видеосозвона.
-
Мы ценим технический контент, полезный для разработчиков. То есть в докладах — не разглагольствования о будущем технологий или реклама, а конкретика: код, инструменты, подходы.
-
До конференции уже провели серию митапов. Так что про контент можно составить собственное мнение по их видеозаписям. Вот для примера один из докладов оттуда:
А что будет в программе?
Пока что она в процессе составления, будет постепенно пополняться на сайте. Можете подписаться там на рассылку или на Telegram-канал, чтобы не пропустить новости.
А пока что известны темы семи докладов. Скажем, Искандер Шарипов, видеозапись которого прикрепили выше, снова выступит с новой темой:
Пишем XM-плеер на Go и используем его в играх
Искандер Шарипов
quasilyte tech
Есть такой формат модульной музыки — XM. Она компактная, хорошо звучит и относительно эффективная в воспроизведении.
В рамках доклада спикер покажет XM-плеер, который написал на Go, чтобы затем использовать его в своих играх. Поговорим о деталях формата, внутренностях плеера, а еще об играх, где его используют.
PGO: практика и маленькие хитрости использования
Макс Ривейро
Ozon
Рассмотрим PGO и всё то, что кроется за этой аббревиатурой: как PGO устроен в Go, как его использовать в ваших приложениях, какие результаты вы можете получить при использовании этого способа оптимизации.
Когда нельзя, но очень хочется — GO!
Егор Лазаренков
Сбер
Разберем обход всех ограничений, характерных для ООП (получение полного доступа к приватным полям, функциям, методам и типам другого пакета), и ситуации, когда это лучшее решение.
Разберемся, как изменить код программы после ее компиляции. Напишем простую программу на Gо и взломаем ее при помощи IDA. Также пропатчим драйвер для работы с PostgreSQL (pgx), добавив в него поддержку глобального трейсера без внесения изменений в исходники драйвера.
gRPC: Under the Hood
Алексей Акулович
С gRPC уже давно и плодотворно идет работа в самых разных областях. Но часто gRPC воспринимают как некую черную коробку, где с одной стороны закидывается protobuf, а с другой стороны что-то вылетает в ответ. Или имеют еще более абстрактное представление о том, как это всё работает.
В докладе разберем работу gRPC не со стороны пользователя, ибо таких материалов просто море, а о том, как оно всё работает под капотом. Это, по сути, минимальная handmade gRPC-реализация на Go stdlib. Существующие полноценные реализации останутся за рамками доклада.
Строка: от известного к неизвестному
Роман Чалый
VK
Кажется, что строка в Go — очень понятная сущность: неизменяемый массив байт. Но она может удивить.
Рассмотрим, как компилятор работает со строками, какие есть оптимизации и почему применяются именно такие оптимизации.
Типы данных под капотом: слайсы и как их готовить
Владислав Белогрудов
YADRO
Мы затронем интересные оптимизации компилятора, стандартные средства strings.Builder, bytes.Buffer, sync.Pool и библиотеку slices на дженериках. Поговорим как про внутреннее устройство, так и про правильное использование. Попытаемся ответить на вопрос: «А почему именно так?», измерим скорость и память, а также подискутируем о лучших практиках.
Снижаем нагрузку на Garbage Collector и ускоряем работу с памятью, используя sync.Pool там, где это уместно
Александр Иванов
YADRO
Спикер расскажет, какие подходы попробовал, чтобы уменьшить влияние GC на ход выполнения задачи, приведёт результаты бенчмарков для разных размеров буферов данных и объяснит, почему остановился на sync.Pool для решения задачи обработки 1К+ сообщений в секунду. Описание подробнее — на сайте.
Можно ли выступить?
Сейчас идёт последняя неделя приёма заявок. Так что, если вы готовы рассказать что-то полезное Go-разработчикам — ждём заявку. Под спойлером — общий список интересующих тем:
Список тем
Язык
-
Go «под капотом» (дженерики, каналы, горутины)
-
Новые фичи в Go
-
Компилятор
-
Производительность, оптимизация, PGO
Лучшие практики
-
Go Way
-
Оформление проектов и репозиториев
-
Архитектура кода
Инфраструктура / DevOps
-
Cloud Native
-
Observability (трейсинг, мониторинг, логирование, непрерывное профилирование и т.д.)
-
Security
-
K8s
-
CI/CD
-
Межсервисное взаимодействие (Istio и Linkerd)
Библиотеки и инструменты
-
Databases && ORM
-
Kafka, NATS, RabbitMQ, etc.
-
RPC (gRPC, OpenAPI, GraphQL)
-
IDE (GoLand, NeoVim, VSCode)
-
Кодогенерация, прототипирование
Архитектура
-
Высокие нагрузки
-
Чистая архитектура
-
Микросервисы
-
Domain Driven Design
Expand Your Horizons
-
WinAPI приложения на Go
-
Rust / Erlang / Python / Go
-
Нестандартные применения: GameDev
-
Обработка медицинских изображений на Go
-
TinyGo-контроллеры
-
cgo (c interop)
-
Dependency injection
-
ML/AI на Go
QA / Testing
-
Unit Tests
-
GeenkoGo: BDD @ Go
-
TestContainers
-
Генераторы нагрузки, fuzzing, benchmarking
Но не обязательно жёстко привязываться к нему. И знаем, что у начинающих спикеров бывает типичная проблема: «ну я сам не знаю, что интересное могу рассказать». Тут есть два варианта:
-
Подумать о том, с чем сталкиваешься в работе. И учесть вот что: зачастую при долгой работе над проектом у людей «замыливается глаз», когда им кажется «ну это очевидные вещи» (потому что сами сталкиваются каждый день), но для других они совершенно неочевидные.
-
Можно не привязываться к специфике своего проекта, а занырнуть в какую-то тему, не требующую годы изучения и опыта. Например, можно разобраться с новой версией Go и рассказать о ней так, чтобы получилось не просто чтение чейнджлога вслух.
Кроме того, если у вас есть какая-то идея, но пока что в «сыром» виде — тоже подавайте заявку. Программный комитет — это не суровые люди, которые вас за такое заругают, а помощники: если они увидят, что потенциал у темы есть, то могут помочь докрутить идею.
А судьи кто
А кто состоит в Программном комитете и решает, какие доклады попадут в программу? Люди с ощутимым опытом в Go, работающие в разных компаниях (а также два человека непосредственно от нас, JUG Ru Group):
Илья Горкун
Тинькофф
Go-разработчик в Тинькофф, пишет кандидатскую по сложности алгоритмов в полугруппах, а также делает конференции по Go.
Александр Кондрашов
ДомКлик
IT leader нескольких команд разработки. В индустрии с начала времен, когда про Go никто не слышал, а фронтенд представлял собою исключительно ванильный CSR. Специализируется на архитектуре, топит за культуру разработки, занимается people management и любит кодить собственные космолеты с покером и блэкджеком по ночам.
Андрей Терехов
Яндекс
Разработчик в Яндексе. Пишет много кода на Go про перекладывание JSON. Действующий участник Go-комитета Яндекса. Учит яндексовые команды использовать Go «как бог (Роб Пайк) велел».
Кирилл Пензин
Более 8 лет в разработке, последние 4 года работает на позиции лида. Пишет на Go 5 лет.
Может копать, может не копать, может научить других копать и контролировать процесс «копания».
Ильдар Карымов
YouTube-канал defer panic
Разрабатывал ПО для электромобилей и зарядных станций. Автор YouTube-канала defer panic по разработке на Go и не только.
Владимир Романько
Лаборатория Касперского
Программирует 25 лет, тимлид более 10 лет, спасает мир от киберугроз в Kaspersky Lab.
Амангелды Кадыл
Kolesa Group
Tech Lead в hard сore-команде Kolesa Group. За десять лет из metallurgical engineer перешел в software engineer. Теперь вместо пайплайна проката делает пайплайн СI/CD и не только.
Рафаэль Мустафин
Magnit Tech
Тимлид в команде LastMile Magnit Tech. Занимается курьерской логистикой. Прошел путь от написания приложений для Windows до разработки бэкенд-сервисов на Go. Ментор в Яндекс Практикуме.
Михаил Кабищев
Ozon
Руководит в Ozon разработкой платформы, которая делает жизнь разработчиков легче и проще. Организует конференции и митапы по Go.
Андрей Дмитриев
JUG Ru Group
Окончил матмех СПбГУ. Программист со школы, прагматик в жизни и совладелец бизнеса по организации конференций для айтишников. Несколько лет разрабатывал библиотеки JDK в Sun Microsystems и Oracle. Руководил группой мобильной разработки в компании QuickOffice. Был руководителем распределенной группы нагрузочного тестирования в Netcracker. Сейчас — директор по производству в JUG Ru Group. Склонен доверять фактам и цифрам.
Моника Кобалия
JUG Ru Group
Программный координатор конференции.
Напоследок
Другая информация и билеты — уже на сайте GoFunc. А новости о программе и не только можно будет узнавать в соцсетях:
-
YouTube-канал (выкладываем записи мероприятий)
В общем, ждём всех гоферов в марте.
ссылка на оригинал статьи https://habr.com/ru/articles/787608/
Добавить комментарий