Podlodka Android Crew #12. День 2
Утренний доклад второго дня подлодки от Григория Шимичева про кастомные detekt правила. Тоже самое. У меня опыт есть, я их уже писал, поэтому половину доклада для чего это и как завести можно было спокойно проскипать. Интересно только про type resolution послушать. Мы прогоняем детект только на CI до сборки и без type resolution, чтобы лишнее время не тратить, и нет ощущения что мы сильно недополучаем чего-то. Ну и от докладчика тоже самое услышал. Кажется, что тема type resolution у detekt это примерно как тесты, все говорят, но нормально начать использовать все только собираются.
Поймал себя на мысли, что моя любимая формулировка вопросов в последнее время это "где грань между тем и этим?". Я очень часто пытаюсь её нащупать, но не всегда получается. Вот например где грань между тем, что должен проверять Android Lint, что должен проверять detekt, а что какой-нибудь Konsist? Они даже на первый взгляд в чём-то пересекаются несмотря на свои разные, казалось бы, цели, не говоря уж о том что там можно кастомное написать.
Контента ради, накидаю рандомных идей для правил из нашего проекта: Запрещены LiveData и MutableLiveData, Запрещены android.* импорты в ViewModel, Запрещены публичные поля в конструкторах ViewModel, запрещены названия классов типа Base*, Проверка на максимальное число классов в одном файле. Написаны кровью, впрочем до конца так и непонятно насколько это вообще задача детекта.
Вечерний доклад Паши Стрельченко про плагины для IntelliJ пока лучший по наполнению. Супер насыщенно и с практикой, максимально классное и интересное повествование, как и всегда. Но это во многом как раз потому, что в кроличью нору написания плагинов я пока не погружался. Да и не очень то и хочу, честно говоря, т.к. наслышан про боль и страдания, особенно в смысле поддержки новых версий IDE, зачем мне это? Если говорить про какие-то грани, то я тоже явно пока не перешёл ту, где у меня появилась явная необходимость плагин для IDE написать вместо какой-то Gradle-таски или standalone утилитки. Это или какой-то прикол масштаба, которого я пока не видел, или оставшиеся 80% усилий ради 20% результата.
Утренний доклад второго дня подлодки от Григория Шимичева про кастомные detekt правила. Тоже самое. У меня опыт есть, я их уже писал, поэтому половину доклада для чего это и как завести можно было спокойно проскипать. Интересно только про type resolution послушать. Мы прогоняем детект только на CI до сборки и без type resolution, чтобы лишнее время не тратить, и нет ощущения что мы сильно недополучаем чего-то. Ну и от докладчика тоже самое услышал. Кажется, что тема type resolution у detekt это примерно как тесты, все говорят, но нормально начать использовать все только собираются.
Поймал себя на мысли, что моя любимая формулировка вопросов в последнее время это "где грань между тем и этим?". Я очень часто пытаюсь её нащупать, но не всегда получается. Вот например где грань между тем, что должен проверять Android Lint, что должен проверять detekt, а что какой-нибудь Konsist? Они даже на первый взгляд в чём-то пересекаются несмотря на свои разные, казалось бы, цели, не говоря уж о том что там можно кастомное написать.
Контента ради, накидаю рандомных идей для правил из нашего проекта: Запрещены LiveData и MutableLiveData, Запрещены android.* импорты в ViewModel, Запрещены публичные поля в конструкторах ViewModel, запрещены названия классов типа Base*, Проверка на максимальное число классов в одном файле. Написаны кровью, впрочем до конца так и непонятно насколько это вообще задача детекта.
Вечерний доклад Паши Стрельченко про плагины для IntelliJ пока лучший по наполнению. Супер насыщенно и с практикой, максимально классное и интересное повествование, как и всегда. Но это во многом как раз потому, что в кроличью нору написания плагинов я пока не погружался. Да и не очень то и хочу, честно говоря, т.к. наслышан про боль и страдания, особенно в смысле поддержки новых версий IDE, зачем мне это? Если говорить про какие-то грани, то я тоже явно пока не перешёл ту, где у меня появилась явная необходимость плагин для IDE написать вместо какой-то Gradle-таски или standalone утилитки. Это или какой-то прикол масштаба, которого я пока не видел, или оставшиеся 80% усилий ради 20% результата.