Автоматизации и инфраструктура вместо рутины и бойлерплейта
Материалы к докладу на митап red_mad_robot 15.12.2022
1. Качество кода
- Наш кодстайл Kotlin
- EditorConfig - шарим настройки форматирования между всеми разработчиками
- Готовый файл .editorconfig - для каждой опции добавлен маппинг к этой опии в настройках IDE, чтобы было проще разобраться
- Detekt - статический анализ, поиск "запахов" кода
- ktlint - подключается через плагин к detekt, добавляет дополнительные проверки соответствия кода официальному кодстайлу. Некоторые проверки дублируют проверки из detekt, имей это в виду - стоит оставлять включённой только одну из проверок
- Плагин Detekt для IDE - чтобы сразу видеть проблемы до того как CI наругает
- commitlint - линтер для сообщений коммитов. Удобно использовать на CI, а локально подключить плагин для IDE
- Conventional Commit - плагин для IDE, который в т.ч. умеет кушать конфиг commitlint и помогает писать красивые сообщения коммитов
- Git Hooks - когда хочется реагировать на события гита
- и сразу awesome-git-hooks вдогонку
- IDEA. Required Plugins - хочешь убедиться, что у всех разработчиков установлены нужные плагины? Или нужно указать минимальную версию IDE для работы над проектом? Эта настройка как раз поможет
Ревью:
- Оптимальный размер реквеста для ревью
- Ship / Show / Ask - ищем баланс между "смотреть все MRы" и "не смотреть ничего"
- Danger - перекладываем ещё немного проверок на бездушную машину и оставляем автоматические комментарии по отч1там других инструментов
- Плагины для IDE:
- GitHub - официальная интеграция с возможностью стягивать PRы из IDE. Возможности с каждой версией расширяются
- Merge Request Integration - Code Review for GitLab - неофициальная интеграция с GitLab. Встречаются баги, так что буд осторожен
- CodeStream - система для проведения ревью "в реальном времени". Но и как инструмент для просмотра МРов внутри IDE неплохо подходит
2. Упрощаем процессы
- IDEA. Tasks - чтобы прямо из IDE двигать задачки по статусам
- Raycast (macOS) - замена Spotlight с кучей интеграций, в т.ч. можно управлять задачками в JIRA через эту штуку
- JIRA Automations - чтобы вообще не двигать задачки по статусам.
Для другой системы учёта задач загугли
"[needed system] automations"
, скорее всего найдётся такой же no-code билдер для автоматизаций
3. Переиспользование
- Version Catalogs - официальный способ шарить зависимости между проектами
- redmadrobot/redmadrobot-version-catalogs - наши три каталога -
androidx
,rmr
иstack
.androidx
иrmr
можно смело использовать у себя - Наш старый тех. радар
- Наш новый тех. радар
- redmadrobot/gradle-infrastructure - набор плагинов с конфигурациями по умолчанию для наших проектов. Можно подсмотреть фичи которые реализованы у нас и стащить их себе, если страшно использовать "как есть"
- Наш OpenSource
Тоже моё
- GIT - от понятных коммитов до сложных rebase (доступ по ссылке)
- Tooling. Tips & Tricks
- Мой канал в Telegram - @RaReilly. Пишу про всякое, в основном около андроида, тулинга и т.д. Если понравился доклад, возможно и канал будет полезен.
- Развлекательный сервер в Discord - red_mad_entertainment. Сейчас мы решаем Advent of Code, а потом ещё что-нибудь интересное будет :) Заходите!