Pytania rekrutacyjne ze wzorców projektowych (Senior) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu Wzorce projektowe (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Czym model „sygnałów” (Solid, Preact Signals, Angular Signals) różni się od modelu React?
- 2.Jaki jest główny kompromis mikrofrontendów?
- 3.Dlaczego w Module Federation React deklaruje się jako singleton
shared? - 4.Jak działa wzorzec Strangler Fig przy migracji przestarzałego frontendu?
- 5.Co oznacza CQRS?
- 6.Czym jest Event Sourcing?
- 7.Czym jest Bounded Context w DDD?
- 8.Na czym polega architektura heksagonalna (Ports & Adapters)?
- 9.Kiedy Clean Architecture na frontendzie zaczyna szkodzić?
- 10.Jak automatycznie egzekwować architektoniczne reguły importów (np. warstwy FSD)?
- 11.Czym jest Anti-Corruption Layer?
- 12.Czym Observable z RxJS różni się od Promise?
- 13.Co dają statecharts (XState) w porównaniu z płaskim automatem skończonym?
- 14.Czym jest wzorzec Backend for Frontend (BFF)?
- 15.Czym jest expression problem i jak przejawia się w TS?
- 16.Co oznacza „functional core, imperative shell”?
- 17.Czym jest „zasada Hollywood” i jak przejawia się w React?
- 18.Czym jest Composition Root?
- 19.Dlaczego Service Locator często uważa się za antywzorzec w porównaniu z DI?
- 20.Co jest złego w „God Context” - jednym React Context z całym stanem aplikacji?
- 21.Czym jest temporal coupling?
- 22.Co mówi prawo Conwaya?
- 23.Czym podejście MobX różni się architektonicznie od Redux?
- 24.Dlaczego oddzielenie stanu „serwerowego” i „klienckiego” uważa się za ważną decyzję architektoniczną?
- 25.Czym jest Islands Architecture?
- 26.Jak poprawnie rozwijać publiczne API wspólnej biblioteki komponentów?
- 27.Czym jest ADR (Architecture Decision Record)?
- 28.Dlaczego kolejność middleware lub interceptorów w łańcuchu odpowiedzialności jest ryzykowna?
- 29.Co wyróżnia Value Object?
- 30.Czym jest Agregat (Aggregate) w DDD?
- 31.Czego wymaga zasada Command-Query Separation (CQS)?
- 32.Co oznacza zasada „Tell, Don't Ask”?
- 33.Co oznacza zasada Fail Fast?
- 34.Jakie jest ryzyko prawa Postela („bądź liberalny w tym, co przyjmujesz”)?
- 35.Jak UI powinien uwzględniać ostateczną spójność w systemie zdarzeniowym?
- 36.Czym redux-saga różni się od listener middleware i thunków?
- 37.Dlaczego normalizacja danych w store na frontendzie to wzorzec architektoniczny, a nie mikrooptymalizacja?
- 38.Jak użyć Strategy do testów A/B bez zaśmiecania komponentów warunkami?
- 39.Czym są aferentne i eferentne powiązania modułu?
- 40.Czym modularny monolit różni się od mikroserwisów (mikrofrontendów)?
- 41.Czym są zdarzenia domenowe na frontendzie i dlaczego są przydatne?
- 42.Jak wzorzec Circuit Breaker pomaga klientowi przy awarii API?
- 43.Kiedy wzorzec Visitor jest uzasadniony w projekcie TypeScript?
- 44.Jak zaimplementować niezawodne undo we wspólnym edytorze, w którym edytuje kilku użytkowników?
- 45.Co daje Fasada nad zewnętrzną biblioteką UI (np. własny
<Button>na MUI)? - 46.Jaka jest różnica między „dziedziczeniem implementacji” a „dziedziczeniem interfejsu”?
- 47.Dlaczego wzorzec Saga (orkiestracja) w procesach rozproszonych dotyczy frontendu?
- 48.Jak Server Components zmieniają architekturę w porównaniu z SPA?
- 49.Czym jest „wewnętrzna platforma” (system projektowy + wspólne pakiety) i kiedy ją wydzielać?
- 50.Czym jest „efekt drugiego systemu” w decyzjach architektonicznych?
- 51.Jaki problem rozwiązuje wzorzec Transactional Outbox?
- 52.Czym API Gateway różni się od Backend for Frontend?
- 53.Jaka jest główna idea modelu aktorów?
- 54.Po co rozróżniać przełączniki release, experiment, ops i permission?
- 55.Czym „powiadomienie o zdarzeniu” różni się od „przekazania stanu w zdarzeniu” (event-carried state transfer)?
- 56.Co cechuje architekturę mikrojądra (wtyczek), jak w VS Code?
- 57.Co oznacza „parse, don't validate”?
- 58.Dwa pakiety:
checkoutmusi wysyłać e-maile, anotificationsimplementuje wysyłkę. Kto według DIP jest właścicielem interfejsu? - 59.Co mówi zasada stabilnych zależności (Stable Dependencies Principle)?
- 60.Dlaczego zasada acyklicznych zależności jest ważna w monorepo?
- 61.Czym jest konascencja (connascence)?
- 62.Co mówi prawo nieszczelnych abstrakcji?
- 63.Co prawo Hyruma oznacza dla szeroko używanej biblioteki komponentów?
- 64.Jak „płot Chestertona” odnosi się do refaktoryzacji legacy kodu?
- 65.Czym jest wzorzec Bulkhead (gródź)?
- 66.Jak działa wzorzec Cache-Aside?
- 67.Czym jest burza ponowień (retry storm) i jak jej zapobiec?
- 68.Co dają frontendowi i backendowi testy kontraktowe sterowane przez konsumenta (np. Pact)?
- 69.Czym jest architektoniczna funkcja przystosowania (fitness function)?
- 70.Jak trunk-based development wiąże się z feature flagami?
- 71.Jaki jest kluczowy kompromis monorepo w porównaniu z wieloma repozytoriami?
- 72.Czym orkiestracja sagi różni się od choreografii?
- 73.Czym jest „rozproszony monolit”?
- 74.Dlaczego obiekty wartości (Value Objects) są przydatne dla kwot pieniężnych na froncie?
- 75.Po co oddzielać wolną operację (np. generowanie raportu PDF) od żądania użytkownika za pomocą kolejek?