vitrine-social icon indicating copy to clipboard operation
vitrine-social copied to clipboard

Alterar Search para utilizar NamedExec

Open lucassabreu opened this issue 6 years ago • 3 comments

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 avatar Oct 01 '18 19:10 lucassabreu

@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:

  1. Criar uma função (e.g. generateSearchSQL) que só faz a montagem do SQL;
  2. Criar testes para essa função;
  3. Escrever testes para (r *SearchRepository) Search
  4. Migrar a geração do SQL no Search para a generateSearchSQL

Que acha da ideia?

marcosinger avatar Oct 02 '18 18:10 marcosinger

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

lucassabreu avatar Oct 02 '18 18:10 lucassabreu

vou começar a dar uma olhada então no final do dia e devo ter algo amanhã para vc dar um primeiro feedback :)

marcosinger avatar Oct 02 '18 19:10 marcosinger