Представьте, что вам нужно написать функцию, которая берет список сотрудников и поздравляет сотрудника, у которого сегодня день рождения, с днем ​​рождения, ИМЯ!

Вот очень важный способ добиться этого.

Приведенный выше код на самом деле не говорит вам, ЧТО делать…. он просто говорит вам, как это сделать.

Другими словами, после написания «wishHappyBirthday» БОЛЬШЕ НЕТ КОДА.

Вот очень декларативный способ добиться этого.

Обратите внимание, что в этом примере wishHappyBirthday не говорит вам, КАК что-то делать, а просто говорит, ЧТО делать.

Сначала найдите именинника. Тогда поздравьте их с днем ​​рождения.

На самом деле, вы можете полностьюизменить реализацию функций, вызываемых внутри wishHappyBirthday , сохраняя при этом то же самое willHappyBirthday!

Позже, в функции findBirthdayBoy, мы не указываем точную реализацию того, как на самом деле найти именинника. Мы просто используем метод .find из Javascript.

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

Но когда вы имеете дело с более сложной последовательностью шагов, может быть невероятно полезно сделать вещи более декларативными, чтобы другие разработчики (а позднее и вы) могли понять, что делает код, без необходимости просеивать детали того, КАК это достигается.