Qual a real necessidade de comparar certos objetos com o
11/07/2013 13:25
0
Se ("", '', [] e 0) são tratados como false, qual seria o motivo de se fazer
if(dataBindingSourceRegistry != null) no lugar de if(dataBindingSourceRegistry)?

Estou perguntando isso, porque, hoje dei uma olhada nas alterações do seguinte commit: https://github.com/grails/grails-core/pull/371 e reparei que em alguns arquivos temos as comparações "instance == null", "dataBindingSourceRegistry != null", etc.
A primeira coisa que veio em minha cabeça é que era algo desnecessário, mas prefiro perguntar.

Tags: duvida, desempenho, grails-core


1
Vamos ao código.


def instance = null
if(instance){println("Nunca exibo isto")}
if(instance == null){println("Sempre exibo isto")}
if(!instance){println("Sempre exibo isto tbm")}


Para evitar usar a negação para entrar no if, já que lógicamente sempre pensamos em forma de 'sim' antes de pensar em uma 'negação de um não', o programador, ao menos é o que me parece usa este artificio para deixar o código mais legível e claras as suas intenções dentro da condição.
Esta é a minha visão sobre o código, eu teria feito da mesma forma. Acredito que o ponto que foi levantado da 'necessidade' de ser desta forma ou não cabe maiores discussões, mas adianto não levar a lugar algum, pois me parece mais, neste caso, uma opção do desenvolvedor do que um pattern ou coisa do tipo.

Abs e espero ter esclaricido sua pergunta.


0
Opa Carlos, valeu a resposta.

Eu até entendi o que você colocou, mas e no caso do
if(dataBindingSourceRegistry != null)
, esse exemplo usa negação para acessar a validação.

O que você acha deste caso? Tambem legibilidade?

11/07/2013 16:27


0
Olá,

Eu leio assim: "se o dataBindingSourceRegistry é diferente de null...". O que me soa muito mais fácil de entender.

Já o "se o dataBindingSourceRegistry é verdadeiro..." já fica mais difícil de entender de primeira. Você acaba pensando duas ou três vezes nesse if para entender o que ele realmente quer dizer.

Não sei se eu me fiz entender... Espero ter ajudado.
19/07/2013 23:30



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto