Alcançando o DenoGres
DenoGres 3.0 é lançado hoje!
A nova versão se baseia em um produto já extremamente útil nas iterações 2.0 e 1.0; mas este parece ser um momento oportuno para revisitar a ferramenta como um todo, a lógica por trás de sua criação e destacar algumas das coisas que a tornam tão útil para os desenvolvedores.
Em sua essência, DenoGres é um Object Relational Mapper (ORM) para bancos de dados PostgreSQL , construído para (e com!) o tempo de execução Deno JavaScript. Se você está lendo isso, provavelmente está familiarizado com o propósito de um ORM: essencialmente, é fazer uma introspecção e gerar modelos (como uma classe de modelo JS) de bancos de dados relacionais para torná-los mais fáceis de trabalhar diretamente no código e para minimizar a quantidade de consultas que precisam ser escritas.
O DenoGres adotou a abordagem opinativa de ser projetado para funcionar especificamente com Deno e PostgreSQL devido a várias vantagens exclusivas dessas tecnologias:
Por que Deno?
O Deno tem várias vantagens (e algumas desvantagens) sobre o Node.js , seu antecessor espiritual amplamente usado. Algumas das vantagens mais notáveis e importantes do Deno, para mim, são:
- Deno usa pacotes descentralizados e carregamento assíncrono e cache de módulos ES em vez de usar um gerenciador de pacotes para lidar com dependências.
- Deno permite 'Aguardar' de nível superior, fora das funções assíncronas. Isso dá ao desenvolvedor flexibilidade e um código geral mais limpo.
- Deno inclui suporte nativo para TypeScript - e DenoGres é escrito e destinado a ser usado com projetos TS.
- Ao contrário do Node, as permissões de segurança padrão do Deno não permitem que o programa acesse disco, rede, subprocessos ou variáveis ambientais.
Escolhemos o PostgreSQL para DenoGres porque está entre os melhores tipos de banco de dados para usar em projetos de todos os tamanhos - desde projetos pessoais simples até o tamanho da empresa.
O PostgreSQL é um tipo de banco de dados relacional SQL. Sua estrutura relacional permite um alto nível de integridade dos dados devido a um esquema rígido que deve ser estabelecido na criação desse banco de dados. Como a maioria dos bancos de dados relacionais, essa estrutura permite que o armazenamento de dados seja compatível com ACID mais facilmente do que com estruturas não relacionais.
A estrutura, o formato e as opções de hospedagem disponíveis permitem fácil inicialização e escalabilidade. Há muitas maneiras de criar um banco de dados Postgres, desde uma instância simples (e gratuita) do ElephantSQL ou outros hosts que fornecem bancos de dados como serviço, até soluções personalizadas de nível comercial.
É importante ressaltar que o PostgreSQL é o segundo tipo de banco de dados mais usado entre os desenvolvedores profissionais , e os bancos de dados relacionais baseados em SQL como um todo são completamente dominantes no que diz respeito à participação de mercado em relação aos tipos não relacionais. Criar o DenoGres para trabalhar com uma tecnologia amplamente utilizada significa criar uma ferramenta que reflete as preferências modernas e também é útil para desenvolvedores no início do processo de decisão sobre a arquitetura de um novo projeto.
Recursos do DenoGres
Ferramenta ORM
O DenoGres é um ORM completo, bem como uma ferramenta completa para todos os aspectos do gerenciamento de banco de dados para bancos de dados PostgreSQL em projetos Deno.
Como um ORM, o DenoGres é rapidamente instalado e executado usando o Deno na linha de comando:
deno install --allow-read --allow-write --allow-net
--allow-env --allow-run --name
denogres https://deno.land/x/denogres/mod.ts
- Inicialize um projeto usando o comando 'denogres --init'.
- Introspeccione seu banco de dados e crie automaticamente modelos TypeScript de seu banco de dados usando o comando 'denogres --pull'
- Sincronização bidirecional entre seu modelo e o banco de dados usando o comando 'denogres --db-sync'
- Existem outros comandos e métodos para propagar seu banco de dados, comparar modelos ou ajustar associações.
- O DenoGres possui registro de migração e backups automáticos de arquivos model.ts, permitindo que os usuários revertam para estruturas de esquema anteriores.
Além da funcionalidade principal da ferramenta ORM de linha de comando, o DenoGres inclui uma GUI limpa projetada para ajudar um desenvolvedor a gerenciar e interagir com todos os aspectos de seus bancos de dados PostgreSQL.
- A GUI pode ser executada usando o comando 'denogres --gui'.
- Uma vez na GUI, crie uma conta de usuário, que salvará todas as suas conexões, consultas, ERDs e modelos para que possam ser acessados de forma rápida e fácil de qualquer lugar. Após o login, você se encontrará na página inicial com links rápidos para as seguintes ferramentas:
- Conexões — onde um usuário pode adicionar, editar, excluir e conectar-se a qualquer instância do PostgreSQL em execução.
- Console — um formulário para inserir, salvar e executar consultas SQL em seu banco de dados conectado, além de visualizar a estrutura dos modelos gerados pelo ORM.
- ERD — uma página que exibe um diagrama de relacionamento de entidade ao vivo de seu banco de dados ativo. Essa página permite que o usuário mova tabelas, amplie e reduza e organize o diagrama para seus propósitos e, em seguida, baixe um .PNG do ERD diretamente para seu computador para ser compartilhado com outras pessoas.
O DenoGres é uma ferramenta poderosa, ainda mais útil com os recursos adicionados na versão 3.0. Como este produto de código aberto é desenvolvido no OSLabs Tech Accelerator, novas iterações continuarão a ser criadas para desenvolver uma ferramenta ainda mais dinâmica e utilizável.
Recursos futuros em pauta incluem:
- Um ERD bidirecional — permitindo alterações feitas no diagrama para atualizar diretamente a estrutura do banco de dados.
- Suporte para outros tipos de bancos de dados relacionais — como MySQL ou SQLite.
- Aumento de ferramentas para monitorar não apenas a estrutura do banco de dados, mas também métricas de desempenho para consultas e o banco de dados como um todo.
Documentação
Para saber mais sobre DenoGres, visite:https://denogres.deno.dev/
Contribuidores do DenoGres 3.0:
- Azal Adeel | GitHub | LinkedIn
- Joe Hynan | GitHub | LinkedIn
- James Howat | GitHub | LinkedIn
- Hao Zé Lin | GitHub | LinkedIn





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)