← Усі теми

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

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

Пройти цей тест
  1. 1.Чим модель «сигналів» (Solid, Preact Signals, Angular Signals) відрізняється від моделі React?
  2. 2.Який головний компроміс мікрофронтендів?
  3. 3.Чому в Module Federation React оголошують shared як singleton?
  4. 4.Як працює патерн Strangler Fig під час міграції легасі-фронтенду?
  5. 5.Що означає CQRS?
  6. 6.Що таке Event Sourcing?
  7. 7.Що таке Bounded Context у DDD?
  8. 8.У чому ідея гексагональної архітектури (Ports & Adapters)?
  9. 9.Коли Clean Architecture на фронтенді стає шкідливою?
  10. 10.Як автоматично контролювати архітектурні правила імпортів (наприклад, шари FSD)?
  11. 11.Що таке Anti-Corruption Layer?
  12. 12.Чим RxJS Observable відрізняється від Promise?
  13. 13.Що дають statecharts (XState) порівняно з пласким скінченним автоматом?
  14. 14.Що таке патерн Backend for Frontend (BFF)?
  15. 15.Що таке «проблема виразу» (expression problem) і як вона проявляється в TS?
  16. 16.Що означає «функціональне ядро, імперативна оболонка»?
  17. 17.Що таке «принцип Голлівуду» і як він проявляється в React?
  18. 18.Що таке Composition Root?
  19. 19.Чому Service Locator часто вважають антипатерном порівняно з DI?
  20. 20.Чим поганий «God Context» - один React Context з усім станом застосунку?
  21. 21.Що таке часова зв'язаність (temporal coupling)?
  22. 22.Що стверджує закон Конвея?
  23. 23.Чим MobX-підхід відрізняється від Redux з архітектурного погляду?
  24. 24.Чому поділ «серверного» й «клієнтського» стану вважають важливим архітектурним рішенням?
  25. 25.Що таке Islands Architecture?
  26. 26.Як правильно розвивати публічний API спільної бібліотеки компонентів?
  27. 27.Що таке ADR (Architecture Decision Record)?
  28. 28.Чим небезпечний порядок middleware чи interceptors у ланцюжку обов'язків?
  29. 29.Що вирізняє Value Object?
  30. 30.Що таке агрегат (Aggregate) у DDD?
  31. 31.Чого вимагає принцип Command-Query Separation (CQS)?
  32. 32.Що означає принцип «Tell, Don't Ask»?
  33. 33.Що означає принцип Fail Fast?
  34. 34.У чому ризик закону Постела («будь ліберальним у тому, що приймаєш»)?
  35. 35.Як UI має враховувати кінцеву узгодженість (eventual consistency) подієвої системи?
  36. 36.Чим redux-saga відрізняється від listener middleware і thunks?
  37. 37.Чому нормалізація даних у фронтенд-store - архітектурний патерн, а не мікрооптимізація?
  38. 38.Як застосовувати Стратегію для A/B-тестів, не засмічуючи компоненти умовами?
  39. 39.Що таке аферентна й еферентна зв'язаність модуля?
  40. 40.Чим модульний моноліт відрізняється від мікросервісів (мікрофронтендів)?
  41. 41.Що таке доменні події на фронтенді й чим вони корисні?
  42. 42.Чим патерн Circuit Breaker корисний клієнтові під час збоїв API?
  43. 43.Коли виправданий патерн Visitor у TypeScript-проєкті?
  44. 44.Як реалізувати надійний undo в спільному редакторі, де правлять кілька користувачів?
  45. 45.Що дає патерн «Фасад» над сторонньою UI-бібліотекою (наприклад, власні <Button> поверх MUI)?
  46. 46.У чому різниця між «успадкуванням реалізації» та «успадкуванням інтерфейсу»?
  47. 47.Чим шаблон «Сага» (оркестрація) в розподілених процесах корисний для фронтенду?
  48. 48.Як Server Components змінюють архітектуру порівняно з SPA?
  49. 49.Що таке «внутрішня платформа» (design system + спільні пакети) і коли її виокремлювати?
  50. 50.Що таке «ефект другої системи» в архітектурних рішеннях?
  51. 51.Яку проблему розв'язує патерн Transactional Outbox?
  52. 52.Чим API Gateway відрізняється від Backend for Frontend?
  53. 53.У чому основна ідея моделі акторів?
  54. 54.Навіщо розрізняти release-, experiment-, ops- і permission-перемикачі?
  55. 55.Чим «сповіщення про подію» відрізняється від «передавання стану в події» (event-carried state transfer)?
  56. 56.Що характерно для мікроядерної (плагінної) архітектури, як у VS Code?
  57. 57.Що означає «parse, don't validate»?
  58. 58.Два пакети: checkout має надсилати листи, а notifications реалізує надсилання. Хто за DIP володіє інтерфейсом?
  59. 59.Що стверджує принцип стабільних залежностей (Stable Dependencies Principle)?
  60. 60.Чому в монорепозиторії важливий принцип ациклічності залежностей?
  61. 61.Що таке конасценція (connascence)?
  62. 62.Що стверджує закон дірявих абстракцій?
  63. 63.Що закон Гайрама означає для широко вживаної бібліотеки компонентів?
  64. 64.Як «паркан Честертона» застосовується до рефакторингу легасі-коду?
  65. 65.Що таке патерн Bulkhead?
  66. 66.Як працює патерн Cache-Aside?
  67. 67.Що таке шторм повторів (retry storm) і як йому запобігти?
  68. 68.Що дають фронтенду й бекенду контрактні тести, керовані споживачем (наприклад, Pact)?
  69. 69.Що таке архітектурна фітнес-функція?
  70. 70.Як trunk-based development пов'язаний із feature flags?
  71. 71.Який ключовий компроміс монорепозиторію порівняно з багатьма репозиторіями?
  72. 72.Чим оркестрація саги відрізняється від хореографії?
  73. 73.Що таке «розподілений моноліт»?
  74. 74.Чим об'єкти-значення корисні для грошових сум у фронтенді?
  75. 75.Навіщо через черги відокремлювати повільну операцію (наприклад, генерацію PDF-звіту) від запиту користувача?