Материалы с казанского Go-митапа: разбор XML, gopls, drone.io и работа с миграциями

в 11:39, , рубрики: drone.io, Go, GoLand, gopls, LSP, vscode, XML, Администрирование баз данных, конференции

Привет! Мы вернулись из Казани, где проводили свой первый региональный митап для Go-разработчиков вместе с сообществом GolangKazan. Спасибо всем, кто пришёл послушать доклады и познакомиться — было здорово.

На митапе выступали спикеры из компаний «Дремучий лес», Авито, Ozon.ru и Marketplace Technologies. Они рассказывали про разбор и хранение большого XML-файла на маленькой VDS, language server gopls, CI/CD платформу drone.io и инструменты для миграции баз данных.

Под катом вас ждут видеозаписи всех докладов с таймкодами для удобной навигации, ссылки на репозитории спикеров на Гитхабе и фотоотчёт с митапа. А мы пойдём паковать рюкзаки ко второму казанскому митапу по фронтенду, который пройдёт уже 15 февраля.

Материалы с казанского Go-митапа: разбор XML, gopls, drone.io и работа с миграциями - 1

Видеозаписи докладов

Разбор и сравнение данных в большом XML на маленькой VDS — Филипп Кулин, Дремучий Лес

Филипп поделился историей о том, как он с поддержкой сообщества делал телеграм-бот для проверки доменов на блокировку. У него был XML-файл на 160 MB, который нужно было разобрать, положить в базу данных и периодически обновлять. При этом отдельными условиями стояли скорость разбора файла в несколько минут и желание вписаться в недорогой виртуальный сервер, поскольку проект некоммерческий.

Из доклада вы узнаете, удалось ли остаться на недорогой VDS и на какие грабли Филипп наступил в процессе решения задачи. Исходный код сервиса обработки выгрузки и телеграм-бота есть на Гитхабе.

00:00 — Представление спикера
02:03 — Подробно о задаче и ограничениях
04:29 — Обзор архитектуры проекта
05:04 — Формат исходных данных
06:36 — Выбор формы хранения данных
14:10 — Обновление данных
20:58 — Подключение gRPS
26:17 — Настройки рантайма
33:08 — Ответы на вопросы слушателей

Посмотреть презентацию Филиппа

“Go, please”: language server под микроскопом — Илья Данилкин, Авито

Go — основной язык разработки Ильи последние пять лет. На митапе он рассказал об основных принципах работы Language Server Protocol и gopls, а также о плюсах и минусах их использования. Отдельная часть доклада посвящена сравнению GoLand и VSCode с разбором их возможностей и фич. Сам Илья предпочитает VSCode, поэтому вот ссылка на его репозиторий с конфигами.

00:00 — Представление спикера
02:30 — Что такое Language Server Protocol
07:37 — Исторический обзор LSP для Go
10:33 — Подробно о Go, please
16:00 — Сравнение GoLand и VSCode, их преимущества и недостатки
23:32 — Демо работы gopls в режиме командной строки
30:40 — Ответы на вопросы слушателей

Посмотреть презентацию Ильи

CI/CD для Go проектов на drone.io — Алик Хилажев, Marketplace Technologies

Алик рассказал о платформе drone.io, её установке и использовании для проектов на Go. Он показал, как прикрутить к своему проекту CI/CD и написать собственный плагин для платформы. На видео в разделе «Что такое drone» есть лайфхаки о том, как получить enterprise-версию drone.io бесплатно.

00:00 — Представление спикера
00:41 — Что такое drone
04:25 — Drone CI Infrastructure
06:12 — Как запустить
09:55 — Демо, как прикрутить к проекту CI/CD на drone.io
19:06 — Демо, как написать свой плагин
31:51 — Ответы на вопросы слушателей

Посмотреть презентацию Алика

Работа с миграциями в Go — Тамара Веденина, Ozon.ru

Для работы с миграциями баз данных есть много инструментов, написанных на разных языках. В Go такие инструменты тоже есть, хотя они и очень простые. Тамара рассказала про самые популярные из них. В докладе есть примеры кода, сравнения реализаций и подводные камни каждого инструмента.

00:00 — Представление спикера
01:24 — Микросервисы и их базы данных
04:08 — Инструмент golang-migrate/migrate
10:51 — Инструмент rubenv/sql-migrate
13:46 — Инструмент pressly/goose
17:08 — Пример реализации
21:30 — Ответы на вопросы слушателей

Автор: anna_lesnykh

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js