Data Transfer Objects sau ce sunt DTO-urile si de ce le-as folosi

Clean Code | Stefanescu Mihai | 2022-12-01

Un DTO (sau Data Transfer Object) este un obiect ce transfera date intre procese. Puteti folosi aceasta tehnica pentru a imbunatati comunicarea intre 2 sisteme (de exemplu intre 2 API-uri) avand o structura fixa si asigurand transportul datelor intr-un mod organizat.

Ce este un DTO?

Cum am zis si mai sus, DTO vine de la data transfer object si este exact ce ne spune numele, un obiect ce transfera datele intre procese.
In mod normal, vei intlani acest tip de obiecte in limbaje orientate pe obiecte precum PHP, Python, C++, Java si altele.

O buna parte din programarea orientata pe obiecte este formata din "apeluri" de procese si/sau API-uri pentru a prelua sau trimite date fie in aceasi aplicatie intre bundle-uri fie intre aplicatii diferite.

De asemenea, DTO-urile pot fi folosite si pe post de "contract" intre 2 aplicatii.  Presupunand ca una dintre aplicatii trebuie sa trimita un set de informatii catre cealalta acestea pot comunica folosind un DTO in felul urmator.
Prima aplicatie completeaza DTO-ul si il serializeaza, iar a doua cand il primeste il deserializeaza, astfel stiind atat structura exacta a mesajului, cat si integritatea datelor.

De ce as folosi un DTO?

DTO-urile ne ajuta sa avem mai multa claritate si corectitudine in cod, pentur ca intotdeauna vom sti ce date se trimit intre bundle-uri sau intre aplicatii si ne ajuta sa stim ca acele date sunt corecte (conform structurii DTO-ului).

pentru acest articol m-am inspirat de aici.


Imi place ce faci aici
Daca iti place ce fac aici imi poti cumpara o cafea Buy Me a Coffee at ko-fi.com

Stefanescu Mihai
Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.
       

Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum.

Posteaza un comentariu

Comentarii

Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.

🗝ïļ Login 🌟 Register

🔖 Bookmarks ⊞
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord ⊞

Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.

⮆ïļ