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