Новая статья в блог - про кросс-импорты модулей.
Решил разобрать свои черновики для статей, которые накопились за последние пару лет, но до публикации так и не дошли.
Первый на очереди пост про кросс-импорты модулей: что это такое, как их решать и нужно ли их вообще запрещать.
Если рассказать про кросс-импорты в четырех тезисах:
1️⃣ Этот термин обозначает использование одного модуля другими в рамках одного архитектурного слоя;
2️⃣ Чем больше кросс-импортов, тем выше связанность (англ. coupling), а нужно стремиться к низкой связанности (поэтому, например, в FSD кросс-импорты вообще запрещены);
3️⃣ Решаются кросс-импорты двумя способами: инверсией зависимостей и выносом общего кода в отдельный модуль;
4️⃣ Полный запрет кросс-импортов (нулевая связанность между модулями) не бесплатен и требует ввода дополнительных абстракций, что со временем может сильно усложнить когнитивную сложность кодовой базы.
Приятного чтения :)
Post #143
2.58K