Используем последние версии AGP, Gradle и всех тулзов с кодогенерацией.
Насколько свежие? Выбираем подходящий для команды баланс между стабильностью и новыми фичами.
Вчитываемся в changelog и пробуем.
"Сделать ли мне "Х", ускорит ли сборку?" - на такой вопрос нет однозначного и простого ответа.
Это гипотеза. Чтобы ее проверить, надо представлять как это работает внутри. Чем лучше мы понимаем внутренности работы, тем более эффективные модели получается строить.
А что собственно ускоряем? Надо найти где болит и научиться это измерять. Используем github.com/gradle/gradle-….
Сценарии должны отражать типовые изменения в проекте и покрывать оптимизации в системе сборки (изменение ABI, инкрементальность, чистые сборки и т.п.).
Такие проверки дорогие, поэтому запускаем их уже в develop. Это дает понимание трендов и ловит только очень крупные изменения.
Основная ценность готовых сценариев в другом. Мы упрощаем себе проверку подозрительных изменений, которые влияют на сборку.
Выносим сборку на более мощную машину: github.com/Instamotor-Lab…
Для мелких изменений иногда медленнее получается, дольше ждем синхронизацию файлов.
Также при изменении структуры модулей может сломать модели проекта для IDE, приходится все чистить.
В целом есть смысл пробовать.
Для поиска узких мест - build scan scans.gradle.com. Визуализация решает, да и типовые проблемы подсвечивают явно.
Большую часть информации можно достать самостоятельно, через API. Завтра про это подробнее.
Новый день - новые баги. А ведь только похвалил build scan. Говорят, что слишком много данных засылаем. Видимо это толстый намек на покупку Gradle enterprise.
Пару слов про remote cache. Его легко настроить, но все веселье начинается потом. Хорошо если есть Gradle enterpise и он покажет корень проблемы. Но если нет, нужно самому искать.
RTFM: guides.gradle.org/using-build-ca…. С большинством описанных проблем уже столкнулись. А сейчас примеры:
Вручную проверяем параметры окружения, версию build tools, не можем зафиксировать (issuetracker.google.com/issues/1177897…). Это тоже нужно для переиспользования кеша.
Сегодня будет про тулинг:
- Первое что ставлю на свежий ноут
- Консольное
- IDE
- Проект
Пишу этот тред уже второй раз, потому что твиттер решил, что нужно меня разлогинить посередине процесса. Попробую чаще "сохраняться"
На macOS я перелез потому что на работе выдали ноут с ней. До этого сидел на ArchLinux с тайлингом (i3wm, а после SwayWM).
Поэтому пытался приблизить интерфейс к привычному.
Пятница! Сегодня пробежимся по основам цветовой палитры Material Design.
Перед тем, как прыгать сразу в детали, подумаем: зачем нам нужно знать эту палитру?
Во-первых, понимание цветовой палитры Material очень упрощает жизнь в некоторых случаях. Откуда взялся этот цвет? Откуда берутся цвета у вьюхи без явно указанных стилей? Это всё из палитры вытекает
Так в чём, собственно, разница между программистом, разработчиком и инженером?
Если коротко, то программист пишет код. Ему дают чёткие задачи и он их выполняет.
Разработчик разрабатывает продукт. Он участвует в разработке спецификаций, дизайнов и прочего. И кодит
Инженер делает сложные штуки, копается в самой сути и использует свои знания на полную.
Смотреть на эту градацию можно по-разному.
С одной стороны можно смотреть на неё, как на карьерный рост. Сначала тебе говорят, что делать, потом ты участвуешь в том, чтоб говорить себе, что делать, а потом ты уже настолько умный и опытный, что можешь делать супер сложные штуки