Ответ
Loose Coupling в FSD (Feature-Sliced Design) — это принцип проектирования, при котором модули/слои приложения слабо связаны между собой. Это позволяет изменять или заменять один модуль, не затрагивая другие.
Ключевые аспекты:
- Модули общаются через четкие API (интерфейсы, события, контракты)
- Минимальная зависимость от внутренней реализации других модулей
- Изменения в одном модуле не требуют переписывания других
Пример:
// features/auth/api.ts - слой API
export type LoginParams = { email: string; password: string };
export const login = (params: LoginParams) => axios.post('/auth', params);
// features/auth/model.ts - слой бизнес-логики
import { login } from './api';
const handleLogin = async (credentials) => {
try {
await login(credentials);
} catch (e) {
// обработка ошибок
}
};
Здесь модель зависит только от API-контракта, а не от реализации запроса. Если изменить axios на fetch, модель останется неизменной.