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

  —  2 минуты

#theory#javascript#code#principles
Читать статью в Telegram

Императивный подход написания кода фокусируется на том, КАК именно должна быть выполнена задача.

В императивном стиле вы указываете шаг за шагом, что должно происходить, ничего не скрывая, например:

javascript
1// Императивный способ создания списка из элементов массива
2const items = [1, 2, 3, 4, 5];
3const ul = document.createElement('ul');
4
5for (let i = 0; i < items.length; i++) {
6  const li = document.createElement('li');
7  li.textContent = items[i];
8  ul.appendChild(li);
9}
10
11document.body.appendChild(ul);
12

В этом примере мы явно указываем, как именно нужно создать список: создаем элементы, задаем им текст и добавляем в список.

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

jsx
1import React from 'react';
2import ReactDOM from 'react-dom';
3
4const items = [1, 2, 3, 4, 5];
5
6const App = () => (
7  <ul>
8    {items.map(item => (
9      <li key={item}>{item}</li>
10    ))}
11  </ul>
12);
13
14ReactDOM.render(<App />, document.getElementById('root'));
15

В этом примере с использованием React мы описываем, что хотим увидеть: список элементов. Мы не указываем, как именно React должен создать и добавить эти элементы, мы просто описываем структуру, которую хотим получить

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

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

Статья была полезной?