Saindo da mesmisse com Play framework e MongoDB

  • 1

Saindo da mesmisse com Play framework e MongoDB

11 Flares Twitter 1 Facebook 10 Filament.io 11 Flares ×

Há alguns anos quando estava estudando Java, li em um livro a seguinte frase: “provavelmente em algumas décadas os bancos de dados relacionais continuarão a ser dominantes no mercado, por esse motivo é importante aprender JDBC e SQL, pois o Java implementa blá blá blá“.

Na época eu concordei com o autor, e não imaginei que pudesse mudar de ideia algum dia, apesar de não gostar do fato de desenvolver um sistema e sempre depender de quem armazena os dados.

databases

Quando se aprende uma linguagem nova, sempre existiu essa dependência de aprender SQL para interagir com os bancos de dados relacionais, e no caso do Java o Hibernate veio para salvar para que o mundo orientado a objeto não virasse simplesmente um de-para de tabelas do banco.

Apesar disso, sempre existir uma tendência para desenvolver orientado ao banco de dados, afinal ele é relacional e não vai mudar tão cedo.

Bom, muita gente ainda acha isso, mas a minha opinião mudou depois da revolução NoSQL, e com certeza para cada caso uma opção de banco de dados é mais adequada.

Sempre começamos a desenvolver um sistema partindo do princípio que ele usará um banco de dados relacional (MySQL , Oracle, SQL Server, etc.), mas esse pensamento precisa mudar!

Um sistema baseado em grafos em base relacional certamente seria muito lento, mas em uma base como Neo4J seria muito rápido.

Muitos sistemas que fazemos, ao persistirmos em bases relacionais e normalizarmos as tabelas, e no final, em uma simples tela inicial teremos executando um SELECT em diversas tabelas. Isso é um problema que o DBA pega e cria um índice, mas isso não diminui a complexidade da coisa, afinal o sistema está amarrado às tabelas relacionais.

Nesse ponto que os Document Databases, como o MongoDB vieram para nos salvar. Quando se diz Document, não é um arquivo de documento em formato DOC ou PDF, mas sim a informação em formato JSON.

Um banco de dados gigantesco (em inglês huMONGOus) que costuma armazenar dados na casa dos Terabytes pode ser facilmente manipulado por desenvolvedores.

java-evil-edition

Outra assunto que todo desenvolvedor Java web está condenado é à API de Servlet e ao deployment descriptor , isso sem falar das intermináveis publicações e restarts de servidor (apesar do JavaRebel aliviar um pouco).

Saindo então dessa mesmisse de codifica-deploy-codifica-deploy e inspirado na produtividade de Ruby on Rails e Django que o desenvolvedor Guillaume Bort criou o Play Framework.

Eu gostei tanto de trabalhar com Play Framework que acabei escrevendo um livro =)

Play!

Nesse projeto de Filmes Cult (fontes no GitHub) é demonstrado como o MongoDB se integra facilmente às aplicações Java e ao Play Framework.

Primeiro adicionamos uma dependência do MongoDB ao projeto do Play (dentro do build.sbt):

Em seguida em application.conf apontamos para a base do MongoDB:

E dentro do nosso domain Filme, definimos como se mapeia com a collection de filmes:

E teremos o seguinte resultado:

play-com-mongodb

A base de dados de filmes está no GitHub junto com o projeto , ela oferece a lista de filmes abaixo, exibida no console do MongoDB:

O MongoDB oferece um excelente treinamento online gratuito para desenvolvedores web, consulte mais detalhes em http://education.mongodb.com/

Fernando Boaglio, para a comunidade!


About Author

Fernando Boaglio

???

1 Comment

Boaglio.comfacilidade do Play 2 em fazer CRUD com MySQL » Boaglio.com

25/março/2014 at 12:53 am

[…] é uma das várias facilidades do Play Framework , no artigo anterior comentei do integração com o MongoDB e também gostei tanto de usar Play que escrevi um livro sobre o […]

Leave a Reply

Quero saber mais sobre…

Inscreva-se para receber as novidades!

Arquivos

11 Flares Twitter 1 Facebook 10 Filament.io 11 Flares ×