Wpis z mikrobloga

Frontend developer here. Mam pytanie, bo nie znam się na Backendzie. Jakiś czas temu dołączył do zespołu nowy backend dev i jak nigdy tak nikt nie robił, on zaczął w jsonie wysyłać pola z końcową "Dto", np. sizeDto. Wcześniej przyszłoby takie pole po prostu "size". Jakoś mi to tak syfnie wygląda. W jaki sposób takie coś miałoby uzasadnienie? Po co dodawać taką koncówkę? Na froncie nie ma czegoś takiego jak dto i po prostu zastanawiam się jaki jest tego sens.

#programowanie #frontend #backend #java #javascript
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lady_katarina: Bez sensu. Jeszcze w nazwie klasy dodać Dto mógłbym jakoś strawić, ale żeby w polach dodawać? Po co? Do o-------a na CR to jest. W nazwie klasy też lepiej, moim zdaniem, dodać Request/Response/Resource/View etc. zamiast DTO
  • Odpowiedz
dzięki wszystkim :) będę w takim razie się zgłaszać do lider deva żeby mi to uzasadnił i ewentualnie poprawił i na przyszłość uczulił innych żeby tak nie wysyłali
  • Odpowiedz
@lady_katarina: Jeden rabin powie tak, a inny powie nie. Jeśli te obiekty Dto są agregatami kilku klas/struktur, tak że zamiast wysyłać osobno kilka obiektów typu Przegryw, Incel itp wysyłany jest jeden obiekt typu WykopekDto to może to mieć sens, ale jeśli to wszystkiego co leciało do tej pory dodał tylko suffix i się z tego cieszy to już mniej.

Tak naprawdę to zależy od konwencji przyjętej przez zespół, jeśli takiej
  • Odpowiedz
@lady_katarina: Data Transfer Object. Dodawanie tego do JSONa to tak jak @mrooczilla pisze - atencja i chwalenie się nowym słówkiem. Ma sens może wewnątrz backendu, żeby było wiadomo na pierwszy rzut oka czym jest dany obiekt... Ale JSON nie jest niczym poza stringiem - formą zapisu danych. ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@programista15cm: w sensie miałam na mysli tego deva ktory zaczął tak wysyłać nazwy pól. Jeśli chodzi o lider deva to chciałąm najpierw tutaj podpytać czy to jest jakaś powszechna praktyka o której nie wiem żeby nie wyjśc na debila xd
  • Odpowiedz
@lady_katarina: nigdy nie spotkałem się z czymś takim w publicznym API (w wewnętrznym też). Coś takiego jak dto to jest detal implementacyjny i interfejs nie powinien takich rzeczy zawierać. Polecałbym to samo co @Passer93, zaproponuj zrobienie spotkania na którym demokratycznie ustalicie konwencje nazewnictwa i wówczas problem będzie rozwiązany.
  • Odpowiedz
@lady_katarina: DTO to takie agregujące struktury danych. Np. chciałabyś na froncie wyświetlić imię, nazwisko i imię kota danej osoby. Załóżmy, że w bazie danych takie informacje są trzymane w dwóch tabelach "Person" i Animal".
Żeby po stronie frontendowej nie robić dwóch zapytań do API, a po stronie backendu nie budować dwóch enepointów, po to jest backend żeby tam procesować logikę biznesową to robi się taki obiekt DTO, który będzie wyglądał mniej więcej tak:
  • Odpowiedz
@lady_katarina: podnieście to na jakimś spotkaniu, bo nie może być tak, że przychodzi sobie ktoś i zmienia obowiązującą konwencję, zwłaszcza na taką która psuje czytelność (a tak naprawdę robi śmieci) w danych
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@zuch_chlopak: trochę się nie zgadzam z tym wytłumaczeniem. DTO to po prostu obiekt ułatwiający serializacje/deserializacje. Faktycznie responsy do fronta są bardziej zagregowane niż model biznesowy ale to nie cecha DTO tylko tych responsow. Równie mogę osiągnąć tą agregację sklejając jsonowego stringa z palca
  • Odpowiedz