EVGD: Códigos Toscos  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Jose111 wrote:WTF !!!!

aplica o plural

Onde é utilizado aquilo?



Já precisei criar um código pra aplicar plural, num gerador de código.
[WWW] [MSN] [ICQ]
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

Bruno Laturner wrote:
arthurminarini wrote:conheço um programador que gosta de nomes bem intuitivos. É SERIO MESMO NÃO É ZUAÇÃO



Corrigido:


Na verdade, o erro apenas piorou. 'há' um tempo 'atrás' é pleonasmo.

O correto seria:



Ou



Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

luistiagos wrote:quem não lembra da velha gambi para fazer muitas vezes sqls dinamicos?



Não consideraria isso uma gambiarra. É apenas um meio de tornar um código menos condicional. Agrega-se a isso o fato de '1 = 1' ser uma expressão que os SGDB's normalmente já são capazes de desconsiderar e, ainda que 'resolvam' a condição, o envolvimento na operação seja totalmente ignorável.

No caso de um SQL dinâmico (independente à existência de Hibernate ou de quaisquer frameworks e afins), como seria o correto*?

*sendo, para fins de explicação, 'correto' o antônimo de 'gambiarra'


Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline

Yky Mattshawn wrote:
luistiagos wrote:quem não lembra da velha gambi para fazer muitas vezes sqls dinamicos?



Não consideraria isso uma gambiarra. É apenas um meio de tornar um código menos condicional. Agrega-se a isso o fato de '1 = 1' ser uma expressão que os SGDB's normalmente já são capazes de desconsiderar e, ainda que 'resolvam' a condição, o envolvimento na operação seja totalmente ignorável.

No caso de um SQL dinâmico (independente à existência de Hibernate ou de quaisquer frameworks e afins), como seria o correto*?

*sendo, para fins de explicação, 'correto' o antônimo de 'gambiarra'


É estranho... pq 1 sera sempre = 1...




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

luistiagos wrote:
É estranho... pq 1 sera sempre = 1...


Mas tu mesmo disseste:



A questão não é o resultado de 1 = 1, mas por que ele está sendo utilizado.

Sempre vi esse tipo de SQL em códigos que geravam instruções SQL dinâmicas. Suponha que tu tenhas um SELECT básico com vários filtros OPCIONAIS.

SELECT tabela.ID FROM tabela

Filtros: CampoA e CampoB. Um ou outro dos campos pode ser filtrado, mas nenhum é obrigatório, bem como não são dependentes entre si. Sem o uso do 1 = 1, preciso condicionar bem mais o código, ficando assim em exemplo (em JS pra simplificar):



Perceba, acima, que é necessário que os códigos subsequentes 'conheçam' a existência do WHERE na instrução.

Mas veja como ficaria simples se eu usasse o 1 = 1:



Concluindo: a expressão 1 = 1 existe só e somente só nestas especificidades de alguma necessidade de otimização (lê-se isso como 'subtração') de linhas de código.

This message was edited 2 times. Last update was at 30/11/2009 17:22:06



Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

luistiagos wrote:
Yky Mattshawn wrote:
luistiagos wrote:quem não lembra da velha gambi para fazer muitas vezes sqls dinamicos?



Não consideraria isso uma gambiarra. É apenas um meio de tornar um código menos condicional. Agrega-se a isso o fato de '1 = 1' ser uma expressão que os SGDB's normalmente já são capazes de desconsiderar e, ainda que 'resolvam' a condição, o envolvimento na operação seja totalmente ignorável.

No caso de um SQL dinâmico (independente à existência de Hibernate ou de quaisquer frameworks e afins), como seria o correto*?

*sendo, para fins de explicação, 'correto' o antônimo de 'gambiarra'


É estranho... pq 1 sera sempre = 1...


Lógica booleana no SQL é estranha mesmo.

Um AND x = 1 AND x = 2 vai trazer valores onde x é 1 ou 2.


A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

Bruno Laturner wrote:
luistiagos wrote:
Yky Mattshawn wrote:
luistiagos wrote:quem não lembra da velha gambi para fazer muitas vezes sqls dinamicos?



Não consideraria isso uma gambiarra. É apenas um meio de tornar um código menos condicional. Agrega-se a isso o fato de '1 = 1' ser uma expressão que os SGDB's normalmente já são capazes de desconsiderar e, ainda que 'resolvam' a condição, o envolvimento na operação seja totalmente ignorável.

No caso de um SQL dinâmico (independente à existência de Hibernate ou de quaisquer frameworks e afins), como seria o correto*?

*sendo, para fins de explicação, 'correto' o antônimo de 'gambiarra'


É estranho... pq 1 sera sempre = 1...


Lógica booleana no SQL é estranha mesmo.

Um AND x = 1 AND x = 2 vai trazer valores onde x é 1 ou 2.



Mas qual o torpe SGDB que tens usado?

Ao menos no MySQL isso não funciona assim não...

Aliás, se testares alguma instrução do tipo que citaste com o 'EXPLAIN' no início, o MySQL será enfático ao declarar:

Impossible WHERE

P.S.: não considero a lógica booleana no SQL muito diferente da existente nas linguagens de programação. O SQL, às vezes, pode exigir mais atenção quanto à procedência de parêntesis, uma vez que toda a lógica se faz numa única linha (saldo SPs e FNCs), mas nada que torne essa lógica estranha.

This message was edited 2 times. Last update was at 13/07/2009 16:26:10



Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Estranho, fiz no Oracle, tentei com uma consulta simples e realmente não deu certo.

Falei o que disse acima baseado numa consulta meio complicada. Agora tenho que achar ela de novo pra confirmar.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
clone_zealot
JavaEvangelist

Membro desde: 21/11/2004 16:40:00
Mensagens: 424
Offline

Yky Mattshawn wrote:
Concluindo: a expressão 1 = 1 existe só e somente só nestas especificidades de alguma necessidade de otimização (lê-se isso como 'subtração') de linhas de código.


Ou, só existe qndo não se usa um Hibernate Criteria(ou qq outro tipo de abstração do SQL) =)

"Não amo a espada por sua agudez,
não amo a flecha por sua rapidez,
não amo o homem por sua glória,
amo sim, tudo o que eles defendem"
Faramir, Príncipe de Ithilien
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

clone_zealot wrote:
Yky Mattshawn wrote:
Concluindo: a expressão 1 = 1 existe só e somente só nestas especificidades de alguma necessidade de otimização (lê-se isso como 'subtração') de linhas de código.


Ou, só existe qndo não se usa um Hibernate Criteria(ou qq outro tipo de abstração do SQL) =)


Somente na abstração da suposta comodidade de uma API gigante...

Veja o que podemos encontrar nos códigos do Hibernate:





Pelo visto, tem mais gente que usa esse 'auxílio'... até o pessoal abstrato, digo, o pessoal responsável pela abstração do Hibernate...

OBS: aquela comentário 'yuck' está mesmo no source do Hibernate.


Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline

clone_zealot wrote:
Yky Mattshawn wrote:
Concluindo: a expressão 1 = 1 existe só e somente só nestas especificidades de alguma necessidade de otimização (lê-se isso como 'subtração') de linhas de código.


Ou, só existe qndo não se usa um Hibernate Criteria(ou qq outro tipo de abstração do SQL) =)


Não existe não... vc não ve... ou vc sabe exatamente a query que o Criteria gera por traz?
ja vi o hql gerando muita query bizzara... por isto não gosto muito do hql e nem Criteria...
depende muito do que vai fazer... se for algo simples dai blza... mas se for algo complexo ele pode gerar uma bizzarisse com a query do sql nativo...




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline

Lembrei de mais um clássico. Davamos manutenção num sistema feito em C, e descobrimos que algumas variáveis de controle, imprescindíveis para o funcionamento do sistema, eram globais.

Isso por sí só já mereceria um lugar nessa lista... porém, uma delas tem destaque de honra:
A variável se chamava i.

Exatamente. Qualquer código que fizesse um "for (i = 0; i < x; i++)" estaria corrompendo um valor de controle importante, e global...

Obviamente, alguns programadores (que vieram depois do inteligente que declarou esse global), tentavam fazer declarações de i em escopos locais, recebiam um warning (de variável eclipsada) e então removiam a declaração...

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline



Vamos salvá-lo da manutenção tenebrosa:



Ainda daria pra melhorar, mas já ajudou bastante.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
Feijão
Thread.start()
[Avatar]

Membro desde: 20/10/2006 17:48:20
Mensagens: 27
Localização: São Paulo
Offline

Eu faria assim ainda:

This message was edited 1 time. Last update was at 06/08/2009 17:11:04


Todo castigo pra corno é pouco.
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline



Vou salvar a alma do incauto:



Nota do usuário: o método "addActionError" tem uma sobrecarga que recebe um ValidacaoException e já faz o trabalho repetitivo.

This message was edited 1 time. Last update was at 07/08/2009 11:23:58


gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team