Что такое Loose Coupling в FSD

Ответ

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, модель останется неизменной.