Executando verificação de segurança...
0

Simplificando ORM: Como ele facilita a integração da sua aplicação com o banco de dados

ORM significa Mapeamento Objeto-Relacional. Mas o que isso quer dizer?
É uma ferramenta que ajuda os programadores a lidar com bancos de dados de uma forma mais fácil.

ORM é como um tradutor entre dois idiomas: o banco de dados fala um idioma (SQL) e seu código de programação fala outro (como JavaScript, Python ou Java). ORM traduz as coisas do banco de dados para o seu código e vice-versa.

Por que isso é importante?

  • Faz você mais rápido
  • Ajuda a evitar erros
  • Mais fácil de manter
Carregando publicação patrocinada...
3
  • Faz você mais rápido

Não necessariamente, utilizar um ORM no geral adiciona um "peso" ao projeto, deve se saber muito bem quando esse peso vai trazer mais vantagens do que desvantagens.
Para aplicações "Data Driven" como CRUDs simples, pode ser até que ajude realmente. Mas para aplicações com bases de dados legadas em que as tabelas não necessariamente representem entidades da forma que entendemos a orientação a objetos, adicionar um ORM pode deixar as coisas bem ruins, principalmente se for um ORM que segue o Active Record.


  • Ajuda a evitar erros

Também não necessariamente, na verdade usar ORMs sem saber exatamente o que está fazendo, força ao jovem programador a programar voltado para o ORM e não para os problemas do negócio. Já presenciei "soluções mirabolantes" pois o problema do negócio não era facilmente resolvido com o uso do ORM. Era como tentar encaixar um quadrado onde caberia um círculo.

Além disso, mapeamentos mal pensados e lazy loads não configurados podem resultar no famoso N+1 queries, esse é um baita problema.


  • Mais fácil de manter

Aplicações pequenas sim (como CRUD), grandes aplicações talvez sejam mais beneficiadas de raw queries, ali dá para criar JOINs, subqueries, window functions de forma muito mais fácil do que tentar fazer o mesmo com ORMs.

É sim possível de ser fazer isso com ORMs, no entanto você tem que lutar um pouco com ele, principalmente para o mapeamento dos resultados em objetos.