«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Один уровень абстракции: ключ к чистым функциям

Один уровень абстракции: ключ к чистым функциям

Опубликовано 7 ноября 2024 г.
Просматривать:382

One Level of Abstraction: The Key to Clean Functions

Вы когда-нибудь смотрели на функцию и терялись в ее сложности? Давайте рассмотрим фундаментальный принцип чистого кода: функции должны поддерживать только один уровень абстракции.

Вот реальный пример создания пользователя в веб-приложении:

// ❌ A function doing too many things at different abstraction levels
function createUser(userData) {
  // Validate data
  if (!userData.email || !userData.email.includes('@')) {
    return 'Invalid email';
  }
  if (userData.password.length 



Эта функция смешивает разные уровни абстракции:

  • Бизнес-логика высокого уровня (процесс создания пользователей)
  • Операции среднего уровня (проверка данных, форматирование)
  • Низкоуровневые сведения (хеширование пароля)

Давайте проведем рефакторинг, следуя принципу единого уровня абстракции:

// ✅ Clean version with one level of abstraction
function createUser(userData) {
  const validationError = validateUserData(userData);
  if (validationError) return validationError;

  const securePassword = hashPassword(userData.password);
  const formattedUser = formatUserData(userData.email, securePassword);

  return saveUserToDatabase(formattedUser);
}

function validateUserData({ email, password }) {
  if (!email || !email.includes('@')) return 'Invalid email';
  if (password.length 



Преимущества этого подхода

  1. Читаемость: основная функция читается как рассказ, описывающий, что происходит на высоком уровне
  2. Удобство обслуживания: каждая функция несет одну ответственность, что делает изменения более безопасными
  3. Тестируемость: вы можете протестировать каждую часть логики независимо
  4. Повторное использование: эти специализированные функции можно повторно использовать в других контекстах

Ключевые выводы

При написании функций:

  • Держите их сосредоточенными на одном уровне абстракции
  • Извлечение сложных операций в функции с хорошими именами
  • Заставьте главную функцию рассказывать историю
  • Считайте каждую функцию отдельным этапом вашего процесса

Помните: если вы смешиваете «как» и «что» в одной функции, вы, вероятно, имеете дело с несколькими уровнями абстракции. Разделите их!

Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/56_kode/one-level-abstraction-the-key-to-cleans-functions-2ekb?1. Если есть какие-либо нарушения, пожалуйста, свяжитесь с исследованием[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3