Тёмный

SQLC: Acabou o SQL puro para trabalhar com Golang 

Full Cycle
Подписаться 131 тыс.
Просмотров 10 тыс.
50% 1

Nesse vídeo vamos falar sobre SQL puro vs ORM na linguagem go. Também mostro a abordagem de trabalhar com sql de forma compilado utilizando a ferramenta sqlc.
Link para o curso Go Expert: goexpert.fullcycle.com.br/curso/
Repositório do vídeo: github.com/devfullcycle/sqlc.git

Развлечения

Опубликовано:

 

24 янв 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 50   
@jamalmelo
@jamalmelo Год назад
Muito bom, com certeza em um projeto futuro vou trocar o gorm pelo sqlc, hoje utilizo o gorm numa arquitetura Hexagonal o que me permite fazer a mudança muito facilmente.
@alcancebrasil4467
@alcancebrasil4467 Год назад
Eita nois Wesley, esbarrei com este cara outro dia atrás e resolvi testar. Realmente é muito bacana.
@reinan.gabriel
@reinan.gabriel Год назад
Show de bola!!
@arozendojr
@arozendojr Год назад
gostei bastante
@WaldirBorbaJunior
@WaldirBorbaJunior Год назад
Meu caneco.... que show isso. Ja virei fan do sqlc
@gayachip
@gayachip Год назад
Gostei! Eu usava o GORM, mas nos ultimos projetos estava usando SQLX agora vou experimentar SQLC.
@arilson.santos
@arilson.santos 2 месяца назад
@gayachip, blz? Usando SQLX, como você trabalhava com consultas N+1?
@mateus-dev-me
@mateus-dev-me 28 дней назад
Muito bom
@carlosoliveira4312
@carlosoliveira4312 9 месяцев назад
Muito bom! Grato pelo videoaula. Ajuda bastante a melhorar a produtividade, identificação prévia de falhas e uso amplo dos recursos do banco de dados subjacente. Teria alguma dica para desacoplar os modelos gerados do domínio da aplicação? Obrigado
@lucianob.ferenczuk5698
@lucianob.ferenczuk5698 Год назад
show!!!
@arilson.santos
@arilson.santos 4 месяца назад
Tenho estudo o Golang e me deparei com essa parte, "o que usar para o banco?" Eu vi que recomendam usar o Sqlx ou Sql puro, o SqlX eu vi q tem uns recursos legais, mas esse esquema do SQLC.. poxa vida, curti! :)
@TheMariossj
@TheMariossj Год назад
Muito legal! Mas é uma pena não ter suporte para BD Oracle...😢
@RicardoArtale
@RicardoArtale Год назад
Primeiro
@imf4ll
@imf4ll 11 месяцев назад
Isso é ótimo pra evitar SQL Injection, cria um certo padrão seguro
@thalesgelinger
@thalesgelinger 3 месяца назад
Muito massa, uma duvida, como seria tipo, num pattern de repository e entities, como seria pra tipo extender os models gerados pra mapear num json depois, alguem tem um exemplo disso?
@Dsouza10082
@Dsouza10082 20 дней назад
Acho interessante, mas neste caso, gosto de ter o controle mais privado do pool de conexões, sei que o SQLC deva ter uma forma de manipular, mas connection handling é muito importante dominar os pontos fortes e fracos na sua aplicação.
@FullCycle
@FullCycle 18 дней назад
Não há nenhum impeditivo de gerenciar o pool de conexões em conjunto com o sqlc.
@Joaomigguel007
@Joaomigguel007 11 месяцев назад
Ele gera alguns "type-safe" , existe algum jeito além do override usar apenas a tipagem nativa do go? ao invés de usar o NullString do sqlc?
@evelynteles1242
@evelynteles1242 Год назад
olaa me chamo Evelyn sou editora de videos, vi alguns dos seu videos tenho certeza que tenho muito a agrega no seu conteudo por exemplo:cortes,texto personalizados,animacoes e musicas de fundo e etc... sei que tem muito talento adoraria trabalhar com vocÊ❤ edito tambem vídeos para eventos para homenagem, vídeos curtos(tiktok,reels,shorts..) e etc.. deixaria seus videos mais profissionais e qualificados espero sua resposta
@AlandeAlmeidaMatias
@AlandeAlmeidaMatias Год назад
Estava justamente pensando sobre essa abordagem… Minha dúvida fica a cargo de um eventual controle da versão do banco de dados
@GambiarraCode
@GambiarraCode Год назад
Pra isso você pode usar a lib golang-migrate.
@AlandeAlmeidaMatias
@AlandeAlmeidaMatias Год назад
@@GambiarraCode não conhecia essa lib. Vou dar uma olhada. Valeu
@mreduardobarbosa
@mreduardobarbosa 3 месяца назад
Trabalhando com sql puro, se por acaso o cliente trocar de banco como fica, tem bancos que tem query diferentes uma não roda no outro, tipo funções do banco na query. Altera todo o programa ?
@dbsouza
@dbsouza Год назад
Wesley, uma dúvida, pq não usar Procedures do banco de dados? Não é ruim subir toda a aplicação por causa de algo mais simples na query?
@vormavius
@vormavius Год назад
Oque é mais fácil escalar, sua aplicação ou o banco de dados? Quem é melhor eu evitar sobrecarregar?
@arozendojr
@arozendojr Год назад
@@vormavius Cada caso deve ter uma solução, exemplo um relatório d-1, em uma instância exclusiva para relatórios, usaria porcedure, por diversos motivos, tempo de timeout, uso exclusivo da CPU, etc agora em app cloud, micro serviço, tenho a tendência em deixar as query mais simples, acredito que tenha lugar para cada tipo de solução
@devguialves
@devguialves Год назад
Você também faz join com essa biblioteca?
@duducv
@duducv 3 месяца назад
Único problema que estou enfrentando no sqlc hoje é realizar queries com joins (Dificuldade em mapear a entidade). Achei mais complicado que usar o driver padrão do pg do go. Seria interessante mostrar um exemplo no próximo vídeo.
@GambiarraCode
@GambiarraCode Год назад
Ja uso sqlc em todos meus projetos há algum tempo. Quanto menos ORM, melhor. Quanto ao fato de digitar mais. Github copilot ajuda bastante. Sem falar que "escrever muito" não deveria ser um problema pra quem usa Go. Afinal, um dos propósitos da linguagem é escrever mais e produzir um código mais fácil de ler.
@cebolinharenato
@cebolinharenato 4 месяца назад
É possível fazer queries dinamicas com filtros opcionais selecionados pelo usuário? A primeira vista sqlc parece que serve só para queries fixas, é isso mesmo?
@gabrielaraujodesouza8834
@gabrielaraujodesouza8834 Год назад
eu utilizo Gorm para acessar o banco dados; ai para fazer controle de versão do banco de dados (create table, alter table, etc...) eu utilizo o Flyway que é em java, é um pouco chato fazer dessa forma pois são dois projetos para gerenciar. Como voces fazem o versionamento do banco de dados em projetos em go?
@GambiarraCode
@GambiarraCode Год назад
golang-migrate
@turock360
@turock360 Год назад
O próprio Gorm possui um mecanismo de migration, porém ele não altera a estrutura de tabelas já criadas no banco (ex: o tipo de uma coluna) para evitar problemas com consistência de dados.
@WanderDouglasTI
@WanderDouglasTI Год назад
vc ja passou por caso complexos de crud usando o sqlc? tipo subquery(exemplo)
@arozendojr
@arozendojr Год назад
Relatórios 🤔🤔🤔 interessante
@GambiarraCode
@GambiarraCode Год назад
Já usei pra criar CTEs com naming params do sqlc e funcionou lindamente. Para relatórios complexos ainda não tive a oportunidade. Como alternativa, recomendo também o metabase (outra aplicação), vc pode gerar vários insights dos dados do seu banco e exportar a query. Aí poderia usar raw query direto no código para casos específicos que você ache difícil/custoso fazer com sqlc (ainda não vi um caso assim, porém)
@rafaelcarvalho2918
@rafaelcarvalho2918 Год назад
Com o uso desse pkg com podemos controlar o versionamento da base de dados igual aos ORM ?
@keven.gamero
@keven.gamero Год назад
para isso use uma outra ferramenta chamada goose, eu uso goose + sqlc e é show
@rafaelcarvalho2918
@rafaelcarvalho2918 Год назад
@@keven.gamero valeu pela dica, realmente é otima.
@gdalfovo
@gdalfovo Год назад
Alguém aqui usa a entgo (by Facebook)?
@fernandomarca
@fernandomarca 4 месяца назад
Sqlx no Rust
@lucianoteixeira576
@lucianoteixeira576 Год назад
Geralmente os ORMs tem maior ganho pra fazer CRUD e permitem executar queries em SQL Nativo pra evitar justamente os JOINs porcarias que podem ser gerados.
@fsilva1985
@fsilva1985 Год назад
Achei o codigo uma bagunça mas se for pra coisa pequena beleza 👍
@GambiarraCode
@GambiarraCode Год назад
Uso em projetos grandes e não fica bagunça. Você pode deixar seus arquivos sql e os models gerados pelo sqlc numa pasta dentro de /pkg do seu projeto, por exemplo. E dentro de /internal, por ex, consumir apenas os métodos que vão interagir com seu banco de dados. Assim, tudo que for código "auto gerado" vai ficar "fora do seu caminho" e você vai conseguir usar todo poder do sqlc e escrever um código extremamente semântico e fácil de ler.
@carlosoliveira4312
@carlosoliveira4312 8 месяцев назад
Consegui resposta a minha dúvida com base no exemplo do video ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-YaGVURjB33I.html, implementando DTO. Grato.
@artu_almeida
@artu_almeida Год назад
a questao nem é digitar muito na hora de digitar SQL puro, a questao principal é a vulnerabilidade de SQL injection...
@arozendojr
@arozendojr Год назад
como fosse adaptado "gRPC" porém com sql, só senti falta de testes unitários
@Diegosantosphp
@Diegosantosphp Год назад
A minha pergunta é o que você testaria? Se está tendo conexão com banco? Acho que para essas funções cabe mais tests de integração do que unitários
@arozendojr
@arozendojr Год назад
@@Diegosantosphp 😅 talvez validar o sql e tratamento de erro ou programação defensiva
@MacacoNinja
@MacacoNinja Год назад
Ei amigo poderia avaliar isso, framework front end em go ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-nkyiATkZ4Js.html
Далее
Aprenda a trabalhar com ponteiros usando Golang
21:11
SQLC in Go - Auto-Generating Database Code in Golang
32:02
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
Просмотров 3,7 млн
Essa é a técnica para tratar erros em Golang
14:13
Просмотров 31 тыс.
80 Year Olds Share Advice for Younger Self
12:22
Просмотров 1,4 млн
Concurrency in Go
18:40
Просмотров 610 тыс.
Why I Use Golang In 2024
9:21
Просмотров 272 тыс.
sqlc - Generate your Go database code with ease
11:18
🍁 Её дружище
0:20
Просмотров 2,9 млн
Приятного аппетита 🤣
0:15
Просмотров 9 млн
Утонуть НЕВОЗМОЖНО 😱 #Shorts
0:19