Что такое High Cohesion в FSD

Ответ

High Cohesion в FSD (Feature-Sliced Design) означает, что модули или слои приложения должны быть тесно связаны внутри своей функциональной области, но слабо связаны с другими. Это повышает читаемость и поддерживаемость кода.

Пример:

// Плохо: низкая связность (разные ответственности в одном модуле)
function fetchUserAndRenderProfile(userId) {
  // Загрузка данных
  const user = await api.fetchUser(userId);
  // Рендеринг
  renderProfile(user);
}

// Хорошо: высокая связность (разделение на feature-слои)
// features/profile/api.ts
export const fetchUserProfile = (userId) => api.fetchUser(userId);

// features/profile/ui/Profile.tsx
export const Profile = ({ user }) => <div>{user.name}</div>;

Ключевые принципы:

  • Каждый модуль решает одну четкую задачу
  • Логика группируется по бизнес-назначению
  • Минимизация зависимостей между слоями