Вопрос проверяет понимание принципов организации констант в коде для повышения читаемости, поддерживаемости и предотвращения ошибок.
Организация констант — это практика вынесения неизменяемых значений из тела кода в специально отведённые места. Это критически важно для любого проекта, который планируется поддерживать и масштабировать.
MAX_RETRY_COUNT), чтобы визуально отличаться от переменных.Вместо того чтобы писать "магические" строки или числа прямо в функциях, создайте модуль констант.
// constants/api.js
export const API_BASE_URL = 'https://api.example.com/v1';
export const API_ENDPOINTS = {
USERS: '/users',
PRODUCTS: '/products',
};
export const HTTP_STATUS_CODES = {
OK: 200,
NOT_FOUND: 404,
SERVER_ERROR: 500,
};
// constants/validation.js
export const PASSWORD_MIN_LENGTH = 8;
export const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
// config.js (для конфигурации среды)
export const APP_CONFIG = {
IS_PRODUCTION: process.env.NODE_ENV === 'production',
SENTRY_DSN: process.env.REACT_APP_SENTRY_DSN,
MAX_ITEMS_PER_PAGE: 20,
};Затем импортируйте их там, где необходимо:
// services/userService.js
import { API_BASE_URL, API_ENDPOINTS } from '../constants/api';
async function fetchUsers() {
const response = await fetch(`${API_BASE_URL}${API_ENDPOINTS.USERS}`);
return response.json();
}Такой подход применяется повсеместно: для хранения строк интернационализации (i18n), ключей действий в Redux, цветов дизайн-системы, размеров breakpoints для адаптивного дизайна и любых других значений, которые не должны меняться во время выполнения программы или могут меняться в зависимости от среды (development/production).
Вывод: Централизованное хранение констант делает код чище, облегчает рефакторинг и глобальные изменения, а также снижает вероятность опечаток и логических ошибок. Это обязательная практика для проектов любого размера.