Императивное и декларативное программирование
В статье Пишем полноценное приложение на React с нуля за час встретилась фраза "Иногда нам нужно добавить императивный код. React-код обычно декларативен"
Так чем же отличается императивный и декларативный код?
Императивный подход предполагает пошаговую инструкцию по достижению нужного результата.
Декларативный подход описывает желаемый результат, а как он будет достигнут не важно.
Примеры из жизни:
1. Вы решили пригласить свою половинку на свидание.
Вы пришли в ресторан, подошли к администратору и сказали…
Императивный подход: Я вижу, что тот угловой столик свободен. Мы пойдём туда и сядем там.
Декларативный подход: Столик для двоих, пожалуйста.
Императивный подход: Сядь на автобус 678 и выйди на остановке “Улица Победы”. Поверни направо у первого светофора. На следующем светофоре поверни налево. Номер моего дома — 134.”
Декларативный подход: Мой адрес: Энск, улица Победы, дом 134.
Пример из программирования:
Императивный подход
function double (arr) {
let results = [];
for (let i = 0; i < arr.length; i++){
results.push(arr[i] * 2);
}
return results;
}
Декларативный подход:
const double = arr.map(item => item * 2);
double
Декларативный подход:
const double = arr.map(item => item * 2);
double
Декларативный подход предполагает, что исполнитель знает все шаги, необходимые для выполнения инструкции: официант в курсе как предоставить столик на двоих, ваш друг может по адресу найти нужный дом, а js-интерпретатор знает как работает метод map