Линтеры для сотен микросервисов | Павел Агалецкий, Авито

preview_player
Показать описание
В Авито несколько сотен микросервисов, которые разрабатывают десятки команд. Мы в платформе хотим, чтобы выпускаемый в продакшен код был проверен линтерами и управление ими было доступно разработчикам. При этом нужно, чтобы некоторые проверки оставались обязательными.
Павел расскажет, про управление составом и настройками линтеров и форматтеров кода и про то, как эта механика встроена в наши пайплайны разработки.

00:09 | Вступление
01:06 | Контекст
01:33 | PaaS в Авито
03:08 | Как добавляют линтеры в проект
05:11 | А если сервисов сотни?
05:50 | Разнородность подходов
06:11 | Какие инструменты использовать: Makefile
06:37 | Lefthook
07:06 | Taskfile
07:30 | Платформенное решение: Avito Actions
09:43 | Что даёт общая платформа
10:25 | Единый формат описания
11:06 | Стандартный способ запуска
11:43 | Готовые языковые линтеры
12:20 | Интеграции
12:52 | Создание своих линтеров
13:40 | Воспроизводимость сборок
14:17 | Что под капотом
14:26 | Docker
16:30 | Shell
17:26 | Источники списка actions
17:57 | Утилита Actions
18:03 | Что в сервисе-каталоге?
18:59 | Скорость
19:17 | Понятность
19:47 | Преимущества: стандартизация
20:02 | Декларативность
20:13 | Распространение изменений
20:35 | Выводы
21:27 | Можно ли использовать линтеры внешним пользователям?
23:56 | Как убедить разработчиков использовать Actions?
26:27 | Линтеринг — это блокер для сборки CICD?
29:18 | Насколько разработчикам удобно пользоваться линтерами?
30:37 | Как выбирали правила линта?

AvitoTech — это команда инженеров Авито. Подпишитесь на наш канал, соцсети и блоги, чтобы узнавать больше о технологиях Авито 👇🏻
Рекомендации по теме
Комментарии
Автор

А не проще gitsubmodules использовать, и получить тоже самое используя стандартный git? + можно сделать команду в makefile для обновления submodules.

Опять таки, можно сделать возможность мержить yaml что бы добавлять локальные особенности проектов. Для чего опять таки есть готовые yaml/json merge.

В плане проверки обязательных линтеров - достаточно будет проверить что в submodules прописаны нужные зависимости - можно в ci хоть grep'ом проверить)

Еще как вариант, мне кажется nx может подойти, если не нравится git

batazor