Lädt...


🔧 Do Manual ao Automatizado: Explorando o Potencial do ModelMapper


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

O entendimento do funcionamento e motivo do ModelMapper requer uma compreensão prévia sobre o mapeamento manual de objetos, especialmente em contextos como o MVC.

Antes de mergulharmos na aplicação do ModelMapper, é essencial dar uma 'fuçadinha' brevemente nas camadas do MVC:

  • Modelo: onde residem as entidades, como nosso futuro exemplo de User.
  • Serviço: onde definimos as regras para a manipulação dos dados.
  • Controlador: onde é feito o acionamento de requisições com base nas regras definidas no serviço.

Digamos que temos uma entidade User com campos como id, nome, email e senha. Ao lidar com requisições que envolvem dados da classe User, é inadequado simplesmente buscar e disponibilizar esses dados diretamente, pois isso violaria as camadas de serviços e modelo. Portanto, adotamos DTOs (Data Transfer Objects) para essa função, agindo como 'burros de carga' responsáveis por transportar dados entre camadas de acordo com as definições que estabelecemos.

Mas onde o ModelMapper se encaixa nessa dinâmica?

Para que serve o ModelMapper

O ModelMapper desempenha um papel crucial no mapeamento de objetos, automatizando o processo que, de outra forma, seria realizado manualmente(e nós somos devs, quanto menos linhas de código para resolver um problema, melhor, não é mesmo? xD). Em nosso contexto, o ModelMapper é responsável por extrair os dados fornecidos pelo nosso 'burro de carga' e transferi-los para a classe User de forma organizada e eficiente.

Mapeamento Manual vs. ModelMapper

Aprendendo na prática o valor do ModelMapper, neste exemplo iremos fazer primeiramente "na unha" e depois faremos usando o ModelMapper.

class User {
    private Long id;
    private String name;
    private String email;
    private String password;
}

class UserDTO {
    private Long id;
    private String name;
    private String email;
    private String password;

    public UserDTO(User user) {
        this.id = user.getId();
        this.name = user.getName();
        this.email = user.getEmail();
        this.password = user.getPassword();
    }
}

Agora com o uso do ModelMapper para simplificar drasticamente o processo, eliminando a necessidade de copiar manualmente cada atributo:

ModelMapper modelMapper = new ModelMapper();
UserDTO userDTO = new UserDTO();
User user = modelMapper.map(userDTO, User.class);

Ao delegar essa tarefa ao ModelMapper, ganhamos em legibilidade, manutenibilidade e eficiência, poupando-nos da chata tarefa de mapeamento manual, permitindo-nos concentrar em aspectos mais significativos.

...

🔧 Do Manual ao Automatizado: Explorando o Potencial do ModelMapper


📈 139.74 Punkte
🔧 Programmierung

🔧 My ModelMapper Cheat Sheet


📈 35.8 Punkte
🔧 Programmierung

🔧 Introdução ao Teste Automatizado com Jest: Como Começar a Escrever Testes Eficientes


📈 33.72 Punkte
🔧 Programmierung

🔧 Backup Automatizado MySQL com ShellScript


📈 33.72 Punkte
🔧 Programmierung

🔧 Desbloqueando o Potencial do AWS Bedrock: Entendendo a Personalização, Throughput e Precificação


📈 32.28 Punkte
🔧 Programmierung

🔧 Aproveitando todo o potencial do Oracle Always Free


📈 32.28 Punkte
🔧 Programmierung

📰 Recursos Humanos desaprovecha el potencial de la tecnología para el negocio


📈 32.28 Punkte
📰 IT Security Nachrichten

🔧 What is manual testing ? what are the benefits and drawbacks of manual testing ?


📈 29.1 Punkte
🔧 Programmierung

🔧 what is manual testing, Benefits and drawbacks of manual testing?


📈 29.1 Punkte
🔧 Programmierung

🔧 What is Manual Testing? What are the benefits and drawbacks of manual testing?


📈 29.1 Punkte
🔧 Programmierung

🕵️ Low CVE-2015-9426: Manual image crop project Manual image crop


📈 29.1 Punkte
🕵️ Sicherheitslücken

🔧 Explorando a Compreensão de Código, com Fernando Castor


📈 23.39 Punkte
🔧 Programmierung

🔧 Criatividade Ampliada: Explorando a Ferramenta Creatie.ia


📈 23.39 Punkte
🔧 Programmierung

🔧 Cogumelos Mágicos: explorando e tratando dados nulos com Mage


📈 23.39 Punkte
🔧 Programmierung

🔧 Especial 1 de Maio -Explorando a Diversidade da TI


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando o Comando `pub unpack` no Dart


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando o Linux - VIM e NANO


📈 23.39 Punkte
🔧 Programmierung

🔧 São Carlos Educativa: Explorando as Universidades e Centros de Estudo


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando a integração entre Google Sheets e Python para automação de dados no sheets


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando los Fundamentos de la Programación Orientada a Objetos en C#


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando os Conceitos Básicos do Kotlin: Parte I


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando el Web Scraping con Golang a través de Colly


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando a Poderosa Funcionalidade de Jobs no Laravel: Um Guia Completo


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando Novos Horizontes: Minha Jornada no Desenvolvimento Java


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando el Ecosistema de JavaScript: Un Mapa Completo de Frameworks y Librerías


📈 23.39 Punkte
🔧 Programmierung

🔧 Desbloqueie o Poder do IEx: Explorando o Shell Interativo do Elixir


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando as principais áreas da programação


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando a Observabilidade com OpenTelemetry: Propagação de Contexto e Arquiteturas Distribuídas


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando Linux Server


📈 23.39 Punkte
🔧 Programmierung

🔧 Retornando ao C# e explorando as inovações com C# in Depth


📈 23.39 Punkte
🔧 Programmierung

🔧 <h2>Explorando las Funciones Avanzadas en Javascript</h2><p>


📈 23.39 Punkte
🔧 Programmierung

🔧 Aprendendo Clojure do Zero: Explorando a Fase de Consciência no processo de Aprendizagem


📈 23.39 Punkte
🔧 Programmierung

🔧 Explorando ORM: Facilitando o Desenvolvimento com Bancos de Dados


📈 23.39 Punkte
🔧 Programmierung

matomo