ХабрПостыНовостиМегапосты?

Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle

Недавно прошёл наш Android meetup, где ребята из платформенной команды Авито делились своим опытом работы с Gradle, показывали способы защиты от частых проблем при сборке проектов и рассказывали о нашем подходе к решению проблем. 

Собрали в посте видеозаписи выступлений с таймкодами и ссылки на презентации спикеров. 

Gradle в 2021: сonvention plugins workshop — Дмитрий Воронин

Воркшоп о способе организации проектов, который позиционируется командой Gradle как идиоматический. 

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

00:00 — Представление спикера и темы

05:27 — Проект, который будет примером в воркшопе

06:44 — Лайвкодинг: пошаговая оптимизация проекта

28:31 — Ответы на вопросы

Полезные ссылки: 

Lint для сборки: как защищаться от проблем при сборке проекта — Евгений Кривобоков 

Женя рассказал, как мы защищаемся от довольно частых проблем при сборках проектов. В докладе нет частей про диагностику проблем и ускорение сборки, он сконцентрирован на том, что делать для предотвращения найденных проблем в будущем. Подход, о котором идёт речь, не универсальный, но довольно много где применим. 

00:00 — Представление спикера и темы

01:38 — Какие бывают проблемы

09:05 — Как контролировать окружение

14:16 — Пример специфической проблемы для конкретного проекта и её решения

20:04 — Зачем вообще писать свои проверки

22:35 — Ответы на вопросы

Посмотреть презентацию Евгения

Gradle build scan на коленке — Сергей Боиштян 

На боевом примере Сергей разбирает, как мы упростили поиск ошибок в своих CI-сборках. Вы узнаете, как мы применяем продуктовый подход в решении проблем и немного о том, как работаем с Gradle. 

Доклад будет полезен тимлидам в больших командах, разработчикам, которые настраивают CI/CD или решают любого рода проблемы.

00:00 — Представление спикера, темы и её пользы

04:12 — Поиск проблемы: разбираем на примере падения сборки

06:51 — Определяем приоритет задач по RICE

14:36 — Как мы искали решение проблемы

18:30 — Пишем прототип с помощью TestProjectGenerator 

26:11 — Версия инструмента 1.0

30:30 — Отдаём инструмент пользователям и смотрим на результат

34:02 — Сравнение: как было и как стало

36:52 — Ответы на вопросы

Посмотреть презентацию Сергея

На этом всё, до встречи на новых митапах!

@anna_lesnykh
16.03.2021 19:50 UTC
Первоисточник

Комментарии

@ChPr
16.03.2021 20:11 UTC
0

У included build есть очень важное отличие от buildSrc – он не ломает Gradle cache. При любом изменении buildSrc cache слетает полностью, в то время как при использовании included build cache работает как положено.

20.03.2021 12:23 UTC
0
НЛО прилетело и опубликовало эту надпись здесь
23.03.2021 20:10 UTC
0

В релиз ноутах написано про compilation avoidance самих скриптов, а не про сброс кеша. Только что проверил на своем маленьком проекте. Менял minifyEnabled с false на true и собирал :app:assembleDebug. Если Котлин скрипты лежат в buildSrc, то при изменении все зависимости :app:assembleDebug выполняются заново. При использовании includeBuild все зависимости все UP-TO-DATE независимо от значения minifyEnabled как и должно быть.