Структура папок не є картою залежностей
Каталог показує, де лежать файли, але не пояснює, хто кого імпортує, які модулі є центральними та які зміни матимуть великий радіус впливу. Для безпечного планування потрібні зовнішні й внутрішні залежності, зворотні посилання та сигнали архітектурних циклів.
| Зріз | Питання |
|---|---|
| Зовнішні залежності | Які бібліотеки заявлені та які реально встановлені? |
| Внутрішні залежності | Які модулі імпортують або викликають один одного? |
| Зворотні залежності | Хто використовує центральний файл чи сервіс? |
| Архітектурні ризики | Чи є цикли або порушення напрямку шарів? |
Почніть із маніфестів і dependency tree
- Прочитайте manifests і lockfiles.
- Відокремте прямі залежності від транзитивних.
- За потреби отримайте повне дерево залежностей.
- Проаналізуйте імпорти та виклики між внутрішніми модулями.
- Знайдіть зворотні references для центральних компонентів.
- Занесіть лише компактні звʼязки та ризики до inventory.
./gradlew dependencies --configuration runtimeClasspath > deps-backend.txt
npm ls --all > deps-frontend.txt
git grep "RefundPolicy" backend/src backend/test Позначайте силу висновку
[підтверджено]— звʼязок знайдено безпосередньо;[потрібно перевірити]— є сигнал, але доказ неповний;[не перевірено]— ділянку ще не досліджували.
Залежності як радіус впливу
| Спостереження | Практичний висновок |
|---|---|
| Багато модулів посилаються на сервіс | Зміна має широкий потенційний вплив |
| Модулі взаємно імпортують один одного | Потрібна окрема перевірка циклу |
| Пряма залежність є лише в manifest | Вона заявлена, але використання ще треба підтвердити |
| Звʼязок видно лише з назви папки | Це гіпотеза, а не доказ |
Не рефакторьте під час первинного mapping
Виявлений цикл або міжшаровий імпорт може бути важливим сигналом, але discovery і виправлення — різні задачі. Спочатку зафіксуйте залежність, джерело та рівень упевненості; рішення про рефакторинг приймайте окремо.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush