Питання на співбесіді з патернів проєктування (Junior) з відповідями
75 запитань для співбесіди з теми Патерни проєктування (Junior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Що таке патерн проєктування?
- 2.На які три групи поділяються класичні патерни GoF?
- 3.Що гарантує патерн «Одинак» (Singleton)?
- 4.Чому Singleton часто називають антипатерном?
- 5.Яке завдання розв'язує патерн «Фабрика»?
- 6.Як працює патерн «Спостерігач» (Observer)?
- 7.Чим Pub/Sub відрізняється від класичного Observer?
- 8.Що таке патерн «Стратегія»?
- 9.Що робить патерн «Декоратор»?
- 10.Коли потрібен «Адаптер»?
- 11.Що таке «Фасад»?
- 12.Для чого використовують патерн «Замісник» (Proxy)?
- 13.Який патерн реалізують
for...ofіSymbol.iterator? - 14.Що таке патерн «Модуль» у JavaScript?
- 15.Коли корисний патерн «Будівельник» (Builder)?
- 16.Як пов'язаний патерн «Прототип» із JavaScript?
- 17.Для чого використовують патерн «Команда»?
- 18.Який патерн дає змогу працювати з деревом (меню з підменю, файлова система) однаково?
- 19.Що описує патерн «Стан» (State)?
- 20.Що робить «Посередник» (Mediator)?
- 21.Який патерн лежить в основі middleware в Express чи Redux?
- 22.Що таке «Шаблонний метод» (Template Method)?
- 23.Для чого «Знімок» (Memento)?
- 24.Навіщо потрібен патерн «Легковаговик» (Flyweight)?
- 25.Що означає акронім SOLID?
- 26.Чого вимагає принцип єдиної відповідальності (SRP)?
- 27.Що означає принцип відкритості/закритості (OCP)?
- 28.Чого вимагає принцип підстановки Лісков (LSP)?
- 29.Про що принцип розділення інтерфейсів (ISP)?
- 30.Що означає принцип інверсії залежностей (DIP)?
- 31.Що означає принцип DRY?
- 32.Що означає принцип KISS?
- 33.Що означає принцип YAGNI?
- 34.Що означає «композиція краща за успадкування»?
- 35.Що описує патерн MVC?
- 36.У чому суть патерну Container/Presentational у React?
- 37.Який патерн реалізує користувацький хук
useWindowSize()? - 38.Який патерн реалізують React Context і
<Provider>? - 39.Що таке антипатерн?
- 40.Що таке «божественний об'єкт» (God Object)?
- 41.Чим погані «магічні числа» на кшталт
if (status === 3)? - 42.Що таке «пекло колбеків» (callback hell) і як його уникають?
- 43.Функція приймає 7 аргументів. Який рефакторинг зазвичай доречний?
- 44.Що таке рефакторинг?
- 45.Що таке розділення відповідальності (Separation of Concerns)?
- 46.Що означає «висока зв'язність (cohesion) і слабка зв'язаність (coupling)»?
- 47.Що таке впровадження залежностей (Dependency Injection) у найпростішому вигляді?
- 48.Який патерн реалізує
EventEmitterу Node.js чиEventTargetу браузері? - 49.Чим чисті функції корисні під час проєктування?
- 50.Який патерн використовує HOC на кшталт
withLogger(Component)? - 51.Що таке патерн render props?
- 52.Що таке складені компоненти (compound components)?
- 53.Чим контрольоване поле введення відрізняється від неконтрольованого?
- 54.Що дає заміна вкладених
ifна граничні умови (guard clauses)? - 55.Як спростити довгий
switch, що зіставляє статус із підписом? - 56.Що таке рефакторинг «Виділення функції» (Extract Method)?
- 57.Що розділяє патерн «Міст» (Bridge)?
- 58.Чому дуже довга функція вважається запахом коду?
- 59.Що робити з мертвим кодом (невикористані функції, недосяжні гілки)?
- 60.Які коментарі найцінніші?
- 61.Яке ім'я найкраще пасує для булевої змінної?
- 62.Чому в стані UI краще створювати нові об'єкти, а не мутувати наявні?
- 63.Що таке інкапсуляція?
- 64.Що таке поліморфізм?
- 65.У чому різниця між відношеннями «є» (is-a) і «має» (has-a)?
- 66.Чим відрізняються debounce і throttle?
- 67.Що таке оптимістичне оновлення UI?
- 68.Що таке ліниве завантаження (lazy loading)?
- 69.Що таке feature flags (перемикачі функцій)?
- 70.Навіщо потрібен запасний UI (наприклад, error boundary в React)?
- 71.Що означає, що операція ідемпотентна?
- 72.Що означає «єдине джерело істини» для даних застосунку?
- 73.Що таке UI, керований конфігурацією (data-driven)?
- 74.Що стверджує принцип найменшого здивування?
- 75.Від чого застерігає фраза «передчасна оптимізація - корінь усього зла»?