Toolverse
Wszystkie skille

factory-function-composition

autor: EpicenterHQ

Wzorzec factory function do czystej kompozycji klientów i serwisów w TypeScript

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Wyświetlenia
2

O skillu

Skill do zastosowania wzorca factory function w kodzie TypeScript. Pomaga w czystym wstrzykiwaniu zależności i kompozycji funkcji, gdy tworzysz funkcje zależne od zewnętrznych klientów, owijasz zasoby metodami domenowymi lub refaktoryzujesz kod mieszający opcje klienta, serwisu i metody. Zapewnia uniwersalną sygnaturę: pierwszy argument to zasoby (klient lub destructured zależności), drugi to opcjonalna konfiguracja. Rozwiązuje problemy z testowalnością i separacją odpowiedzialności.

Jak używać

  1. Zidentyfikuj funkcję, która przyjmuje klienta lub zasób jako pierwszy argument i mieszane opcje z różnych warstw (klient, serwis, metoda). To jest kandydat do refaktoryzacji wzorcem factory function.

  2. Zdefiniuj funkcję factory z uniwersalną sygnaturą: pierwszy parametr to zależności (pojedynczy klient lub destructured obiekt z wieloma zależnościami), drugi to opcjonalne opcje konfiguracyjne specyficzne dla factory. Nigdy nie umieszczaj konfiguracji klienta w drugim argumencie — ta należy do tworzenia klienta.

  3. Wewnątrz factory zwróć obiekt zawierający metody, które będą używać zasobów i opcji. Każda metoda może przyjąć swoje własne opcje (methodOptions), które są specificzne dla konkretnego wywołania.

  4. Utwórz klienta poza factory (z jego własnymi opcjami), a następnie przekaż go do factory function jako pierwszy argument. To rozdziela odpowiedzialność: tworzenie klienta jest osobne od logiki serwisu.

  5. Używaj zwróconego obiektu z metodami w swoim kodzie. Każda metoda ma dostęp do klienta, opcji factory i swoich własnych opcji, co ułatwia testowanie i zmniejsza złożoność sygnatury funkcji.

  6. Jeśli masz wiele zależności, destructuruj je w pierwszym argumencie zamiast przekazywać je jako osobne parametry. To utrzymuje sygnaturę czystą i czytelną.

Podobne skille