Что указывает данные индекса упаковки пакетов в Sonar?
У меня есть следующие данные по одной из 7 осей (см. второе изображение) после запуска анализа Sonar моего проекта, Какую информацию можно декодировать из этих данных? Также какая из осей на приведенной ниже диаграмме относится к этим данным?
Ответ 1
Это означает, что существуют циклические зависимости между пакетами и файлами.
В идеале вы хотите, чтобы зависимости проходили в одном направлении - это позволяет вам вносить изменения и прогнозировать их влияние. Например, если ваш пакет "пользовательский интерфейс" зависит от пакета "бизнес-логика", но ничего не зависит от пакета "пользовательский интерфейс", вы должны иметь возможность вносить изменения в пользовательский интерфейс, не нарушая ничего вне этого пакета. Циклическая зависимость означает (например) пакет пользовательского интерфейса, зависящий от пакета бизнес-логики, но пакет бизнес-логики также зависит от пакета пользовательского интерфейса. Теперь, если вы измените пользовательский интерфейс, вы можете сломать уровень бизнес-логики, что, в свою очередь, может повлиять на что-то совершенно не связанное в пользовательском интерфейсе.
Идея программного обеспечения "расслоения" и наличия зависимостей потока в одном направлении между слоями предназначена для устранения этой путаницы.
Вы можете очень часто уменьшать это запутывание, перемещая классы из одного пакета в другой.
Tangling обычно является проблемой архитектуры/дизайна.