DRY «Не повторяй себя»

DRY — это основной принцип разработки любого программного обеспечения. Безусловно, это самый понятный принцип разработки программного обеспечения, но не все так очевидно. Я хочу показать вам, когда не нужно следовать этому принципу.

DRY — это аббревиатура от «Don’t Repeat Yourself». Основная проблема, которую решает DRY, — это уменьшение повторения кода. Иногда вам нужно иметь уже существующую функцию в другом модуле, классе и т.д. И самый простой способ сделать это — просто скопировать&вставить эту функцию. Поздравляем, принцип DRY нарушен. Фактическое копирование кода создает для вас одну огромную проблему:

Трудно поддерживать все эти функции на всем проекте, и если вам нужно изменить эту функцию — вы должны изменить ее во всех местах, где вы ее скопировали.

Как уменьшить DRY
ключевые моменты того, как применять абстракцию для написания кода, который не повторяется:

  • Создавайте функции для распространенных программных паттернов. Мы называем их функциями высшего порядка.
  • Замените шаблоны в коде функциями более высокого порядка.

Некоторые примеры функций высшего порядка включают:

const finalParticipants = ["Taylor", "Donald", "Don"];

// add string after each final participant
const announcements = finalParticipants.map((member) => {
  return member + " joined the contest.";
});

console.log(announcements);
// [
//   "Taylor joined the contest.",
//   "Donald joined the contest.",
//   "Don joined the contest.",
// ];
Вход в полноэкранный режим Выход из полноэкранного режима
const randomNumbers = [4, 11, 42, 14, 39];
const filteredArray = randomNumbers.filter((n) => {
  return n > 5;
});
console.log(filteredArray); //[ 11, 42, 14, 39 ]
Вход в полноэкранный режим Выход из полноэкранного режима

const arrayOfNumbers = [1, 2, 3, 4];

const sum = arrayOfNumbers.reduce((accumulator, currentValue) => {  
  return accumulator + currentValue;
});

console.log(sum); // 10

Ввести полноэкранный режим Выход из полноэкранного режима
const numbers = [28, 77, 45];

numbers.forEach((number) => {
  console.log(number);
  // 28
  // 77
  // 45
});
Войти в полноэкранный режим Выход из полноэкранного режима

Преимущества DRY

  • Ремонтопригодность
  • Читабельность
  • Повторное использование
  • Стоимость
  • Тестирование

Недостатки DRY

  • Не весь код должен быть объединен в один кусок. Иногда два куска кода могут выглядеть одинаково, но иметь тонкие различия.
  • Если код «пересушен», его становится трудно читать и понимать.
  • Часто упускается из виду, что DRY не должен ограничиваться только кодом. Он должен применяться в равной степени к проектированию базы данных, документации, тестированию кода и т.д.

Заключение
Да, сейчас эти коды идентичны. Может ли изменение одной дублирующей части повлиять на какую-то другую дублирующую часть? Если нет — вы можете продублировать код

Оцените статью
Procodings.ru
Добавить комментарий