randichagas / ignite-desafio-03-github-blog

0 stars 0 forks source link

Prisma: uma das melhores coisas que já aconteceu no ecossistema? #2

Open randichagas opened 1 year ago

randichagas commented 1 year ago

Um breve arquivo sobre a origem da ferramenta que facilitou o acesso de databases e ampliou produtividade para o ecossistema JavaScript/TypeScript

Dividido em três camadas como núcleo de sua arquitetura, o Prisma nasceu no ecossistema JavaScript com a promessa de ser uma ferramenta facilitadora e produtiva para devs que trabalham diretamente com databases. Por uma série de razões, a tecnologia chegou a ser reconhecida como “uma das melhores coisas que já aconteceu” na programação backend entre usuários de Node.js.

O artigo desta semana pretende levantar um arquivo sobre o Prisma e entender os motivos da tecnologia ter obtido tanta relevância ao longo desses anos. Se você acompanha nossa plataforma e acessou recentemente nossos conteúdos no YouTube, já deve ter reparado que estamos de olho na performance do Prisma há bastante tempo.

Não há exatamente uma data para apontar como “o dia em que foi lançado”, no entanto, se entrarmos nos registros do GitHub, reparamos que os primeiros repositórios do Prisma surgiram em meados de 2017, com assinaturas de Lukáš Huvar e Johannes Schickling.

Antes de ser Prisma, o pequeno projeto era chamado de Graphcool e contava com uma equipe pequena de cinco devs que pretendiam desenvolver uma solução como backend-as-a-service para GraphQL. O Graphcool na época foi bem recebido pela comunidade, principalmente por ser “fácil de usar” até para devs Frontend.

Nikolas Burk, um dos primeiros devs da equipe, reconheceu nesta thread que, apesar do projeto ter potencial na época, não conseguiu escalar por conta da falta de flexibilidade. A solução foi desenvolver, ao longo de uma série de tentativas, o Prisma 1.0, em 2018. O Prisma Client foi anunciado meses depois.

image

A tecnologia atualmente se encontra em sua terceira etapa de desenvolvimento, chamada de Prisma 3, uma versão com recursos mais avançados e consistentes. Apesar do nome numérico, o produto oficial do Prisma, que engloba todos os serviços da tecnologia, está no Prisma Client e Studio, este último lançado em novembro de 2019.

Prisma é uma ferramenta open source, um ORM de próxima geração cuja arquitetura é desenhada em três camadas fundamentais:

Na descrição oficial da ferramenta, Prisma é descrito como um novo tipo de ORM, fundamentalmente diferente dos modelos tradicionais que eram aplicados anteriormente. Uma alternativa para outras ORMs, como TypeORM e Sequelize.

Todo o conceito do Prisma está no schema proporcionado por eles no desenvolvimento nestas três camadas citadas anteriormente. Segundo eles, o schema é descrito como o principal arquivo de configuração para o Prisma.

“O schema é única fonte ‘truth’ para o esquema de banco de dados, o esquema de objeto do seu aplicativo e mapeamento entre os dois. Prisma te deixa confiante e produtivo no desenvolvimento de seu software com recursos como type safety, preenchimento automático, e uma API natural para ‘fetching relations’”.

Exemplo do Prisma schema:

image