#Descomplica - DTO

소개



E aí pessoas, tudo bem?
Esse será o primeiro artigo do #Descomplica, uma série de pequenos artigos que irão semper focar em um tema específico, com uma abordagem simples e direta sobre o assunto eo nosso primeiro assunto será sobre DTOs.

O que é um DTO



DTO(Data Transfer Object/Objeto de Transferência de Dados) é um(a) Design Pattern/Padrão de Projeto simples, porém eficiente para se aplicar na arquitetura um 소프트웨어.

Um DTO nada mais é que um objeto utilizado para encapsular e mapear dados primitivos e que podem ser serializados.

DTO의 주요 활용 사례



Como dito anteriormente, um DTO nada mais é que um objeto simples para encapsular e mapear dados que serão enviados entre as camadas da nossa aplicação. Então vamos ver um exemplo bem simples em PHP de um DTO utilizado para encapsular dados para um endpoint/serviço que irá salvar um usuário:

class SaveUserDTO
{
    public function __construct(
        private string $name,
        private string $email,
        private string $password
    ) {}

    // GETTERS AND SETTERS
}



$userDTO = new SaveUserDTO('Wendell', '[email protected]', 'S3cR3t');


Como podem ver acima, criar e utilizar um DTO é extremamente simples e fácil. Agora vamos aprender o porquê utilizar esse padrão.

Porque utilizar DTOs



Para mim, a utilização de DTOs no código gera um código simples, limpo e de fácil manutenção. Para quem trabalha com Laravel e outros frameworks PHP já devem ter visto como eu vi em várias aplicações algo como abaixo nos controllers:

public function saveUser(Request $request): JsonResponse
{
    $this->service->saveUser($request->all());
}


No código acima o código pega todos os paraâmetros do Request e os enviia para a Camada de Serviço. Alguns dos problemas criados por isso são:
  • Não temos a definição de quais valores estão a ser enviados
  • Para alguém que não conhece o código ou se ficar um tempo sem mexer no código, dificilmente saberá os possíveis valores desse Request

  • Se ao invés de fazer isso, usarmos o DTO que criamos acima, qualquer dev que entrar na equipe ou caso alguém precision fazer alguma alteração ou manutenção no código, será muito mais fácil de saber quais são os dados esperados pelo serviço, o que podemos utilizar 필요에 따라 변경할 수 있습니다.

    당신은 당신의 능력을 향상시킬 수 있습니다!

    결론



    Vimos nesse artigo o que é, como utilizar e o porquê utilizar DTOs para melhorar a arquitetura da nossa aplicação! Espero que tenham gostado e aproveitem pra comentar aqui se conheciam esse padrão, se utilizam e como utilizam!

    Um grande abraço e até o próximo #Descomplica!

    좋은 웹페이지 즐겨찾기