← Усі теми

Питання на співбесіді з патернів проєктування (Middle) з відповідями

75 запитань для співбесіди з теми Патерни проєктування (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Який патерн застосовано під час рефакторингу?
  2. 2.Чому функція subscribe у реалізації Observer зазвичай повертає функцію відписки?
  3. 3.Чим Декоратор відрізняється від Замісника (Proxy), якщо структура в них схожа?
  4. 4.Чим Адаптер відрізняється від Фасаду?
  5. 5.Коли доречна «Абстрактна фабрика», а не проста фабрика?
  6. 6.Чим небезпечний модульний синглтон (export const cache = new Map()) у SSR-застосунку?
  7. 7.Як реалізувати undo/redo через патерн «Команда»?
  8. 8.Чому набір прапорців isLoading, isError, isSuccess гірший за явний стан?
  9. 9.Який ризик має глобальна шина подій (event bus) як реалізація Mediator?
  10. 10.Який патерн реалізують interceptors в axios чи обгортки над fetch?
  11. 11.Як рендерити дерево коментарів довільної вкладеності?
  12. 12.Як генератор допомагає реалізувати Ітератор для посторінкового API?
  13. 13.Чим «Шаблонний метод» відрізняється від «Стратегії»?
  14. 14.Чому іммутабельний стан спрощує патерн «Знімок» (Memento)?
  15. 15.Який патерн використовує Babel чи ESLint-плагін, що обходить AST із методами Identifier(), CallExpression()?
  16. 16.Сповіщення бувають трьох типів і надсилаються трьома каналами (email, push, SMS). Який патерн позбавить від 9 класів?
  17. 17.Навіщо на фронтенді шар «репозиторіїв» або API-сервісів замість fetch просто в компонентах?
  18. 18.Як впровадити залежність у React-компоненти, щоб у тестах підмінити API-клієнт?
  19. 19.Яка із ситуацій порушує принцип підстановки Лісков?
  20. 20.Компонент UserCard приймає user: User (30 полів), а використовує лише ім'я й аватар. Який принцип порушено?
  21. 21.Що каже закон Деметри про код order.customer.address.city.name?
  22. 22.Що таке односпрямований потік даних в архітектурі Flux?
  23. 23.Чим MVVM відрізняється від підходу React?
  24. 24.Які патерни можна побачити в Redux?
  25. 25.Який порядок шарів Feature-Sliced Design згори вниз?
  26. 26.Навіщо у FSD кожен слайс має публічний API (index.ts)?
  27. 27.Чим можуть зашкодити barrel-файли (index.ts, що реекспортують усе підряд)?
  28. 28.Яке головне правило Clean Architecture?
  29. 29.Де краще тримати бізнес-правила (наприклад, розрахунок знижки) у фронтенд-застосунку?
  30. 30.Що описує Atomic Design?
  31. 31.Що таке «стрілянина шротом» (shotgun surgery)?
  32. 32.Що таке «заздрісна функція» (feature envy)?
  33. 33.Що таке «одержимість примітивами» (primitive obsession) і як її лікувати?
  34. 34.Чому кажуть «дублювання дешевше за неправильну абстракцію»?
  35. 35.Що таке патерн Null Object?
  36. 36.Як реалізувати ліниву ініціалізацію важкого об'єкта?
  37. 37.Чим погані міксини (Object.assign(Class.prototype, mixin))?
  38. 38.Що таке патерн Registry на прикладі плагінів?
  39. 39.Чим mock відрізняється від stub у тестах?
  40. 40.Що таке «тестова піраміда»?
  41. 41.Що таке headless-компонент з погляду патернів?
  42. 42.Який патерн використовується в «слотах» компонента (<Card header={...} footer={...}>)?
  43. 43.Що таке функція вищого порядку з погляду патернів?
  44. 44.Як пов'язані event delegation і патерн «Легковаговик»?
  45. 45.Чим useReducer близький до патерну «Стан»?
  46. 46.Який патерн реалізує React.memo або функція memoize(fn)?
  47. 47.Коли варто виділяти абстракцію за «правилом трьох»?
  48. 48.Який патерн реалізує Proxy-об'єкт у Vue 3 чи MobX для реактивності?
  49. 49.Що таке «анемічна модель» і чому її критикують?
  50. 50.Чим DI-контейнер (Angular, InversifyJS) відрізняється від ручного передавання залежностей?
  51. 51.Як Parallel Change (expand/contract) допомагає змінити широко вживану сигнатуру функції?
  52. 52.Що таке Branch by Abstraction?
  53. 53.Що таке патерн Humble Object?
  54. 54.Навіщо обгортати зовнішній платіжний SDK у власний Gateway?
  55. 55.Яку проблему розв'язує Unit of Work, наприклад у редагованій таблиці?
  56. 56.Що дає патерн «Специфікація» для складних фільтрів?
  57. 57.Навіщо додавати jitter до експоненційної затримки під час повтору запитів?
  58. 58.Як не дати двом користувачам непомітно перезаписати правки одне одного в тому самому записі?
  59. 59.Що таке патерн Result (Either) для обробки помилок?
  60. 60.Як композиція допомагає уникнути prop drilling без Context?
  61. 61.Чому хуки замінили більшість render props і HOC?
  62. 62.Як зазвичай реалізують складені компоненти в React?
  63. 63.Що таке поліморфний проп as?
  64. 64.Що таке патерн state reducer?
  65. 65.Що таке prop getters?
  66. 66.Що таке запах «розбіжні зміни» (divergent change)?
  67. 67.Що таке «теоретична загальність» (speculative generality)?
  68. 68.Що таке групи даних (data clumps) і як їх виправляють?
  69. 69.Як безпечно рефакторити легасі-код без тестів?
  70. 70.Чому старі feature flags стають технічним боргом?
  71. 71.Що таке collection pipeline?
  72. 72.Чим корисні каррування й часткове застосування?
  73. 73.Чим корисний «Адаптер» під час заміни бібліотеки дат?
  74. 74.Чому «Ланцюжок обов'язків» добре пасує для правил валідації?
  75. 75.Навіщо використовувати «Фасад» для складної функції на кшталт завантаження відео (чанки, повтори, прогрес)?