← Wszystkie tematy

Pytania rekrutacyjne ze wzorców projektowych (Middle) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu Wzorce projektowe (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Jaki wzorzec zastosowano w tym refaktoringu?
  2. 2.Dlaczego subscribe w implementacji Observera zwykle zwraca funkcję wypisującą?
  3. 3.Czym Decorator różni się od Proxy, skoro ich struktura jest podobna?
  4. 4.Czym Adapter różni się od Fasady?
  5. 5.Kiedy zamiast prostej fabryki odpowiednia jest Abstract Factory?
  6. 6.Co jest niebezpiecznego w singletonie na poziomie modułu (export const cache = new Map()) w aplikacji SSR?
  7. 7.Jak zaimplementować undo/redo wzorcem Command?
  8. 8.Dlaczego flagi isLoading, isError, isSuccess są gorsze niż jawny stan?
  9. 9.Jakie jest ryzyko globalnej szyny zdarzeń jako implementacji Mediatora?
  10. 10.Jaki wzorzec realizują interceptory axios lub wrappery fetch?
  11. 11.Jak wyrenderować drzewo komentarzy dowolnej głębokości?
  12. 12.Jak generator pomaga zaimplementować Iterator dla paginowanego API?
  13. 13.Czym Template Method różni się od Strategy?
  14. 14.Dlaczego niemutowalny stan upraszcza wzorzec Memento?
  15. 15.Jakiego wzorca używa plugin Babel lub ESLint, gdy przechodzi AST metodami Identifier() i CallExpression()?
  16. 16.Powiadomienia mają trzy typy i wysyłane są trzema kanałami (e-mail, push, SMS). Który wzorzec oszczędzi 9 klas?
  17. 17.Po co na frontendzie warstwa „repozytoriów” lub serwisów API zamiast bezpośredniego fetch w komponentach?
  18. 18.Jak wstrzyknąć zależność do komponentów React, by w testach podmienić klienta API?
  19. 19.Która z tych sytuacji łamie zasadę podstawienia Liskov?
  20. 20.Komponent UserCard przyjmuje user: User (30 pól), ale używa tylko imienia i awatara. Która zasada jest łamana?
  21. 21.Co prawo Demeter mówi o order.customer.address.city.name?
  22. 22.Czym jest jednokierunkowy przepływ danych w architekturze Flux?
  23. 23.Czym MVVM różni się od podejścia React?
  24. 24.Jakie wzorce można dostrzec w Redux?
  25. 25.Jaka jest kolejność warstw Feature-Sliced Design od góry do dołu?
  26. 26.Po co każdy slice w FSD ma publiczne API (index.ts)?
  27. 27.Jak mogą zaszkodzić barrel files (index.ts, który reeksportuje wszystko)?
  28. 28.Jaka jest główna zasada Clean Architecture?
  29. 29.Gdzie w aplikacji frontendowej powinny być reguły biznesowe (np. obliczanie rabatu)?
  30. 30.Co opisuje Atomic Design?
  31. 31.Czym jest shotgun surgery?
  32. 32.Czym jest feature envy?
  33. 33.Czym jest primitive obsession i jak się ją leczy?
  34. 34.Dlaczego mówi się, że „duplikacja jest tańsza niż zła abstrakcja”?
  35. 35.Czym jest wzorzec Null Object?
  36. 36.Jak zaimplementować leniwą inicjalizację ciężkiego obiektu?
  37. 37.Co jest złego w mixinach (Object.assign(Class.prototype, mixin))?
  38. 38.Czym jest wzorzec Registry na przykładzie pluginów?
  39. 39.Czym mock różni się od stuba w testach?
  40. 40.Czym jest „piramida testów”?
  41. 41.Czym jest komponent headless w kategoriach wzorców?
  42. 42.Jaki wzorzec stosuje się w „slotach” komponentu (<Card header={...} footer={...}>)?
  43. 43.Czym jest funkcja wyższego rzędu w kategoriach wzorców?
  44. 44.Jak delegowanie zdarzeń ma się do wzorca Flyweight?
  45. 45.Jak useReducer jest bliski wzorcowi State?
  46. 46.Jaki wzorzec realizuje React.memo lub funkcja memoize(fn)?
  47. 47.Kiedy według „reguły trzech” należy wyodrębniać abstrakcję?
  48. 48.Jaki wzorzec realizuje obiekt Proxy w Vue 3 lub MobX dla reaktywności?
  49. 49.Czym jest „anemiczny model” i dlaczego się go krytykuje?
  50. 50.Czym kontener DI (Angular, InversifyJS) różni się od ręcznego przekazywania zależności?
  51. 51.Jak Parallel Change (expand/contract) pomaga zmienić szeroko używaną sygnaturę funkcji?
  52. 52.Czym jest Branch by Abstraction?
  53. 53.Czym jest wzorzec Humble Object?
  54. 54.Po co opakowywać zewnętrzny SDK płatności we własny Gateway?
  55. 55.Jaki problem rozwiązuje Unit of Work, np. w edytowalnej tabeli?
  56. 56.Co daje wzorzec Specyfikacja dla złożonych filtrów?
  57. 57.Po co dodawać jitter do wykładniczego opóźnienia przy ponawianiu żądań?
  58. 58.Jak zapobiec temu, by dwóch użytkowników po cichu nadpisało sobie edycje tego samego rekordu?
  59. 59.Czym jest wzorzec Result (Either) do obsługi błędów?
  60. 60.Jak kompozycja pozwala uniknąć prop drillingu bez Contextu?
  61. 61.Dlaczego hooki zastąpiły większość render props i HOC?
  62. 62.Jak zwykle implementuje się komponenty złożone w React?
  63. 63.Czym jest polimorficzny prop as?
  64. 64.Czym jest wzorzec state reducer?
  65. 65.Czym są prop getters?
  66. 66.Czym jest zapach „rozbieżnych zmian” (divergent change)?
  67. 67.Czym jest „spekulatywna ogólność” (speculative generality)?
  68. 68.Czym są zbitki danych (data clumps) i jak je naprawić?
  69. 69.Jak bezpiecznie refaktoryzować legacy kod bez testów?
  70. 70.Dlaczego stare feature flagi stają się długiem technicznym?
  71. 71.Czym jest collection pipeline?
  72. 72.Do czego przydaje się currying / częściowa aplikacja?
  73. 73.Dlaczego Adapter przydaje się przy wymianie biblioteki dat?
  74. 74.Dlaczego Łańcuch odpowiedzialności dobrze pasuje do reguł walidacji?
  75. 75.Po co używać Fasady dla złożonej funkcji, np. wysyłania wideo (chunki, ponowienia, postęp)?