Общие

Общие #

Расскажите о функциональном программировании. #

Функциональное программирование — это парадигма программирования, основанная на использовании функций в качестве основного строительного блока программы.

Основные концепции:

  • Чистые функции - это функции, которые не имеют побочных эффектов ввода-вывода и памяти (они зависят только от своих параметров и возвращают только свой результат).
  • Неизменяемость данных (Иммутабельность) - данные не изменяются после создания. Вместо этого создаются новые версии данных с нужными изменениями.
  • Рекурсия - это использование функций, которые вызывают сами себя. Рекурсия позволяет описывать сложные операции, а также по возможности заменять привычные циклы.
  • Функции высшего порядка - такие функции принимают другие функции в качестве аргументов или возвращают функции как результат.
  • Каррирование (Currying) - данный концепт, позволяет легко комбинировать функции и создавать новые функции с помощью уже существующих.
  • Ленивые вычисления - это концепция, которая позволяет вычислять значение только в тот момент, когда оно действительно необходимо для выполнения программы.

Преимущества функционального программирования

  • Простота тестирования и отладки;
  • Упрощение разработки;
  • Высокая скорость работы;
  • Поддержка параллелизма;
  • Гибкость и модульность;

Недостатки функционального программирования

  • Более высокая сложность для новичков;
  • Трудно выполнять оптимизацию производительности;
  • Рекурсия может вызвать накладные расходы по памяти и скорости;
  • Не подходит для всех типов задач и проектов;
  • Сложность отладки ленивых вычислений и поиск в них ошибок;
  • Ограничения в работе с изменяемыми данными;

Що таке TDD (Test Driven Development) / BDD (Behavior Driven Development)? #

Розкажіть детально про роботу HTTPS. #

Який стек технологій можна обрати для реалізації клону якогось відомого проєкту і чому? #

Є проєкт на старих технологіях, необхідно в нього вносити зміни. Як це зробити найкраще? #

Якщо у кандидата є досвід роботи з кількома фреймворками: який будете використовувати для наступного проєкту? Які фактори будуть впливати на вибір? #

Що таке V8 Engine? #