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