Загальні

Загальні #

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

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

Основні концепції:

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

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

  • Простота тестування та налагодження;
  • Спрощення розробки;
  • Висока швидкість роботи;
  • Підтримка паралелізму;
  • Гнучкість і модульність;

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

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

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

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

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

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

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

Що таке V8 Engine? #