TGViewer
Dev Easy Notes Dev Easy Notes @dev_easy_notes · 2.91K subscribers
Post #484 3.44K
Detekt

Кто-нибудь заглядывал в исходники Detekt? Если вы этого не делали, то я рекомендую заглянуть туда хотя бы одним глазком, потому что это реально произведение искусства. В репозитории — просто кладезь крутых подходов: как работать с Gradle, с Classloader, с Serviceloader, и как правильно проводить архитектурные границы. Помимо этого есть примеры того, как писать тесты на Gradle плагин.

Все привыкли воспринимать Detekt как плагин для Gradle. Вы замечали, что у него довольно странная инициализация? Сначала нужно установить плагин, а затем отдельно указать версию Detekt. Возникает вопрос — нахера? Я же уже установил плагин, почему я должен ещё раз указывать версию?

Если посмотреть на первые коммиты, то Detekt изначально не имел ничего общего с Gradle — он создавался просто как CLI. И до сих пор его можно использовать без Gradle. Без Gradle будет геморойнее настроить работу, но зато не будем тратить время на конфигурацию.

Фишка в том, что весь плагин Detekt для Gradle сводится к тому, чтобы просто вызывать CLI-версию с информацией, которую мы прописываем через Gradle-плагин. Другими словами, плагин Detekt для Gradle — это просто платформа, которая скачивает CLI и затем его вызывает. Именно поэтому и получается такая странная инициализация: она позволяет изменять версию Detekt без изменения версии самого плагина.

Когда мне нужно сделать плагин для Gradle для решения какой-то задачи, я сначала пытаюсь сделать обычный CLI. Его в разы проще разрабатывать, отлаживать и тестировать. А уже потом, если действительно нужна информация, доступная только Gradle (например, граф зависимостей или расположение исходников), я оборачиваю CLI в Gradle-плагин.
  • 🔥 42
  • 👍 5
  • ❤ 1
More from @dev_easy_notes
  1. Sep 24, 2026На всякий случай напомню напомню, если такую хуйню видите, сразу в бан кидаете. Вы скорее…
  2. Aug 4, 2026Короче, поясню, я давно ничего не пишу, потому что заебался) возможно я скоро вернусь, как…
  3. Aug 4, 2026Post #596
  4. Apr 17, 2026Меня вот что еще дико бесит, через год я буду уже как 10 лет в индустрии и все равно, кажд…
  5. Apr 15, 2026video post
  6. Apr 9, 2026Как оценить работу модели? Часто вижу высказывания в стиле: вот новый клод стал тупее, или…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →