Estou procurando ouvir experiências e opiniões sobre a implementação de consultas.
Como é o design da tuas aplicações quando elas requerem um grande número de consultas, com muitos parâmetros opcionais? Usam query builders ou sequências intermináveis de ifs? Um método para tudo, ou uma multidão de métodos para cada consulta? Classes Service, ou usam a mesma classe de domínio/regras pra tudo? E quando juntam dois ou mais tipos de objetos diferentes, vindos de lugares diferentes(tabelas diferentes, ou mesmo outras persistências), pensando na performance da aplicação? Usam Maps/Hashmaps/Dicionarios para trazerem desta forma?
E como segue o design das classes quando elas tem poucas consultas (por enquanto), comparado ao resto do sistema, mesmo esquema?
Gostaria de saber de um método simples e fácil pra implementar isso, já que gerar relatórios, ou mesmo pequenos dados para mostrar em dropdowns, podem ficar bem chatos e trabalhosos de fazer com o tempo, especialmente se adotar um método p/ cada consulta.
Eu uso o Next Framework para trabalhar… e algumas dessas suas dúvidas já vem como sugestão de implementação do framework…
No caso… fica bem mais fácil se vc seguir a sugestao do framework do que fazer o seu jeito… acaba que fica uma aplicacao padronizada… mesmo com desenvolvedores diferentes…
Vamos as respostas…
Como é o design da tuas aplicações quando elas requerem um grande número de consultas, com muitos parâmetros opcionais? Usam query builders ou sequências intermináveis de ifs?
QueryBuilders
Um método para tudo, ou uma multidão de métodos para cada consulta?
Um método para cada consulta… uns poucos métodos são reaproveitados
Classes Service, ou usam a mesma classe de domínio/regras pra tudo?
Classes service
E quando juntam dois ou mais tipos de objetos diferentes, vindos de lugares diferentes(tabelas diferentes, ou mesmo outras persistências), pensando na performance da aplicação? Usam Maps/Hashmaps/Dicionarios para trazerem desta forma?
Não sei se compreendi a pergunta… mas quando tenho que trabalhar com vários objetos juntos… Crio uma classe que agrega esses vários objetos…
E como segue o design das classes quando elas tem poucas consultas (por enquanto), comparado ao resto do sistema, mesmo esquema?
Mesmo esquema
Gostaria de saber de um método simples e fácil pra implementar isso, já que gerar relatórios, ou mesmo pequenos dados para mostrar em dropdowns, podem ficar bem chatos e trabalhosos de fazer com o tempo, especialmente se adotar um método p/ cada consulta.
No framework existe um GenericDAO com diversos métodos… inclusive… nao preciso criar queries pra dropdowns… a nao ser que a query seja muito especifica… o framework cria os drop downs sem eu nem informar de onde vem os dados (dao aware)
Creio que a cada 100 combos que faço… apenas 1 preciso escrever a query