vitrine-social
vitrine-social copied to clipboard
Alterar Search para utilizar NamedExec
Hoje o método Search
esta mondando a query e manipulando os parâmetros de forma bastante manual. Para diminuir a complexidade do método pode ser utilizado o sqlx.Named
ou NamedQuery
para diminuir a complexidade da passagem de parâmtros.
https://github.com/Coderockr/vitrine-social/blob/f24e129fb6b993931436a03c2644fc3b65472178/server/db/repo/search.go#L27
https://godoc.org/github.com/jmoiron/sqlx#Named https://godoc.org/github.com/jmoiron/sqlx#Tx.NamedQuery
@lucassabreu olhando essa função ela tanto monta o SQL quanto executa ele. Olhando a task eu tinha pensando em separar isso em duas, mesmo porque fica mais fácil testar se o SQL gerado ( com NamedExec
ou plain está correto ).
Pensei em fazer assim:
- Criar uma função (e.g.
generateSearchSQL
) que só faz a montagem do SQL; - Criar testes para essa função;
- Escrever testes para
(r *SearchRepository) Search
- Migrar a geração do SQL no Search para a
generateSearchSQL
Que acha da ideia?
a ideia dessa tarefa é melhorar a legibilidade e facilitar a manutenção, acho que quebrar em duas funções e fazer os testes unitários deve ajudar nesse sentido
pensei de usar as funções Named
para ajudar a entender melhor onde estão indo parar os parâmetros
então acho que podemos ir por isso caminho que falou
vou começar a dar uma olhada então no final do dia e devo ter algo amanhã para vc dar um primeiro feedback :)