Разница между декларативным и императивным программированием

  • 11 июля, 10:42
  • 6506
  • 0

Программирование позволяет нам решать определенную проблему различными способами. Мы свободны выбирать любые доступные подходы или даже можем следовать нашему собственному подходу. Тем не менее, есть некоторые популярные стили программирования. 

Разница между декларативным и императивным программированием

Сегодня мы расскажем о декларативном и императивном программировании и разнице между ними.

Что такое декларативное программирование?

Начнем с декларативного программирования, это стиль программирования, в котором программист больше всего заботится о результате или о том, что программа должна видать. Они не беспокоятся о написании кода с лучшими показателями и не идут по какому-то конкретному пути, они просто сосредоточены на получении ожидаемых ответов. Например:

const sum = a => b => a + b; 
  console.log (sum (5) (3)); /

Что такое императивное программирование?

Далее поговорим об императивном программировании. Это стиль программирования, где программист заботится о том, как достичь определенного результата, шаг за шагом. Здесь программист также в конечном итоге хочет получить тот же результат, но он/она говорит компилятору сделать что-то определенным образом, чтобы получить ожидаемый результат. Например:

class Number { 
  constructor (number = 0) { 
    this.number = number; 
  }
  add (x) { 
    this.number = this.number + x; 
  }
} 

const myNumber = new Number (5);
myNumber.add (3); console.log (myNumber.number); // 8

Если вы все еще не понимаете обе эти формы программирования, давайте разберемся с  на примере. Предположим, вы хотите передать работу на аутсорсинг, но при этом знаете, что вам понадобится эта услуга/тип роботы на длительный срок, и вы путаетесь между работой на аутсорсинге или изучением самостоятельно/внедрением специального человека или отдела, который будет заниматься этим у вашей компании.

Теперь вы можете сравнить эту ситуацию с декларативным и императивным подходами к программированию. Если вы выполняете работу на стороне, вы можете не заботиться о том, как работа будет организована. Вы просто заботитесь о конечном продукте или результате. Это похоже на декларативное программирование, когда вы знаете конечный результат и пишете программу для достижения этого результата.

С другой стороны, если вы решите, что хотите внедрить отдел, который будет заниматься этим типом роботы в вашей компании, вы попытаетесь выполнить задачу, заботясь о том, как это сделать эффективней с меньшими затратами. Вы должны понимать отдельные шаги, необходимые для правильной работы. Это похоже на императивное программирование.

Какой тип стоит использовать в своих проектах?

У обоих подходов к программированию есть свои преимущества и недостатки. Это полностью зависит от вас, программиста, какой реализации вы хотели бы следовать в своем коде. Давайте посмотрим на свойства, которые могут помочь принять правильное решение.

Повторное использование

Декларативное программирование позволяет вам писать более общие функции, которые потенциально могут использоваться для нескольких целей. Это способствует более быстрой разработке, а также делает функциональность доступной для других. С другой стороны, в императивном программировании ваш код может быть применим только для этого конкретного проекта или приложения.

Возможности ошибки

Декларативное программирование требует от вас написания функций, которые не меняют своего состояния, как в функциональном программировании. Это уменьшает вероятность ошибок и делает ваше приложение более стабильным. Удаление побочных эффектов из ваших функций помогает вам точно понять, что входит и что выходит, и, таким образом, делает программу более предсказуемой.

Контроль

Для достижения желаемых результатов использование готовых функций является распространенным явлением в декларативном программировании. Тем не менее, вам также могут потребоваться конкретные изменения в функции, чтобы она обеспечивала желаемые результаты. Но у вас обычно нет такого контроля в декларативном программировании, как у императивного программирования.

Вывод

Если вы заботитесь о реализации, используйте императивный подход. В противном случае декларативный стиль прекрасно работает для многих разработчиков. Кроме того, вы можете даже смешать оба стиля.


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все