Aktywne Wpisy
Tommy__ +89
damienbudzik +5
Czytacie książki w formie fizycznej czy na czytniku?
Zastanawiam się czy nie kupić sobie jakiegoś kindla, bo czasem są fajne promocje na ebooki. Tylko nie wiem czy łatwo by mi było przeskoczyć na czytnik, bo zawsze czytałem książki w formie fizycznej.
#ksiazki #pytanie #kindle #czytajzwykopem #pytaniedoeksperta
Zastanawiam się czy nie kupić sobie jakiegoś kindla, bo czasem są fajne promocje na ebooki. Tylko nie wiem czy łatwo by mi było przeskoczyć na czytnik, bo zawsze czytałem książki w formie fizycznej.
#ksiazki #pytanie #kindle #czytajzwykopem #pytaniedoeksperta
Jak budujecie aplikacje która komunikuje się z jakimś api, to używacie tzw: dto-sów bezpośrednio do widoku czy robicie jakąś warstwę nad tym i mapujecie?
Co wybierasz?
Logikę do pobierania danych najlepszym patternem jest zawsze wyciągnięcie do osobnego modułu.
W komponencie odpowiadającym za widok najlepiej jest mieć rezultat przygotowany przez hook.
1.
@FiranMercury: Tu nie chodzi o logikę pobierania, tylko o interfejs obiektów, które pochodzą bezpośrednio z api. W większości przypadkach to jest samo i wielu myśli że to powielanie. Ale jest sytuacja gdzie api rozbija się wtedy na dwa endpointy, bo dwie rzeczy wylądowały w różnych mikroserwisach. Wtedy masz dwa dto, ale z puntu widzenia UI to się nic
W większości przypadków wystarczy Ci struktura, którą otrzmujesz z serwera. Możesz przecież ją sobie rozszerzyć ją o swoje pola czy nawet funkcje, które podstawisz potem do widoku.
Naprawdę to pytasz chyba czy używać redux-a.
@fujiyama: Nie pytam o redux-a. Jak masz interfejs który masz zdefiniowany obok serwisu, np PostDto I pytanie gdzie go używasz. Jeśli używasz go w jakimś komponencie ui to znaczy że jesteś z nim mocno powiązany, a według mojej opinii nie powinieneś. Powinieneś mieć jakąś warstwę abstrakcji która odseparuje Ci jakoś te warstwy. Głupi przykład, na frontendzie macie camelCase a na backendzie snake_case, w
w interceptorze
dla mnie osobiście żaden z argumentów, które podałeś nie są wystarczające, żeby robić mapowanie:
a) argument o zmianie propsa czy czegoś innego w modelu - tak naprawdę od tego masz IDE, że zrobisz sobie refactor na modelu dto i ono pozmienia Ci wszędzie w kodzie odwołania
b) argument o "tym samym" obiekcie w 2 różnych api - szczerze? dla mnie to jest "incidental duplication", ok, może i struktura jest póki co taka sama, ale jednak pochodzi z dwóch różnych miejsc i z mojego doświadczenia zazwyczaj takie rzeczy z czasem się rozjeżdżają i nagle już nie dostajesz tego samego z dwóch mikroserwisów, więc uważam że lepiej mieć 2 osobne modele i komponent, który ich używa powinien "być tego świadomy", to znaczy "explicit" używać tych dwóch modeli
c) argumentu o konwencjach kompletnie nie rozumiem, przecież i tak Ty masz ownership nad dto i jest on w twoim codebasie, więc może mieć konwencje jakie chcesz i to tylko kwestia ustawienia narzędzia parsującego faktyczną wiadomość np. w
nie, nikt xD
Piszesz jakieś uniwersalne komponenty, które chcesz wykorzystać w wielu projektach?
To wtedy masz swój model i dane z serwera musisz mapować. Wtedy nie ma wyjścia.
W innym przypadku nie wiem czemu miałbym stosować dwie różne notacje w projekcie.
Ilość kodu należy minimalizować, upraszczać transformacje etc.
Inaczej to potem kosztuje (wydajność aplikacji,
Axios dla interceptorów i tworzenia customowych instancji API. Service dla danej domeny, który jest klasą w której są dostępne wszystkie endpointy wystawione przez BE dla tej domeny. DTO na returnie metody z klasy, tam sobie ustawiam dodatkowe pola, zmieniam nazwy, request też ma swoje DTO. Dzięki temu podejściu jeżeli