Android tool для построения графа зависимостей классов
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Менеджерам, тимлидам и Android-разработчикам посвящается.
Все мы много слышали о хорошей архитектуре, но почти никто так ее и не видел. Заинтересовавшись этим вопросом, я написал тулзу для визуализации метрики class coupling. Одной командой и используя только APK файл она строит граф зависимостей между классами проекта, который является мощным аргументом в любом обсуждении архитектурных вопросов.
Вот пример архитектуры со слабо связанными модулями:
А это классический Android-проект (далеко не самая запущенная форма):
Сразу становится понятно, что какие-либо изменения во втором проекте так или иначе затронут и другие фичи, а это значит, что уйдет больше времени на реализацию и тесты. С другой стороны, первый проект требует больше сопроводительного кода для корректного разделения фич, но это дает свои преимущества.
Использование
Склонируйте репо или скачайте последний релиз github.com/...dependency-graph/releases
Запустите генерацию:
run.bat full\path\to\the\apk\app-release.apk com.example.testUnix:
./run.sh full/path/to/the/apk/app-release.apk com.example.testГде com.example.test — фильтр. Без него вы увидите много мусора, но всё же возможность его не использовать есть: просто передайте nofilter.
Дождитесь успешного окончания работы и откройте файл index.html в браузере.
Пользуйтесь, оставляйте фидбеки, создавайте issue на гитхабе — это поможет в развитии проекта и тогда, возможно, на следующем проекте вы вложитесь в эстимейт ;)
12 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів