Campanha Anti IF

[size=16]Anti If Campaign[/size]
[size=12]Less IFs, More Power[/size]

Have you ever wondered how IFs impact your code? Avoid dangerous IFs and use Object Oriented Principles to build a code that is flexible, changeable and easily testable, and will get rid of a lot of headaches and weekends spent debugging!

Learn how to write effective code the easy way!

http://www.antiifcampaign.com

desculpe o tipo de comentário…
mas… kkkkkkk essa foi boa… comédia

Realente dá pra diminuir o uso do if, mas pior do que um if desnecessário simples, é um com instanceof.

Achei interessante a campanha, mas fico pensando comigo, será que essa turma não tem + o que fazer ?
hahahah

Legal… vou mandar meu código sem if pra eles.

Stragegy? Rule Engine?

=)

Apoiado.

Vocês não sabem o que é dar manutenção em um legado com IF de 50 linhas…

Pois eu vou lançar uma campanha contra as atribuições! Chega de explorar o pobre do sinal de atribuição!

Freedom for =

[quote=filipenf]Achei interessante a campanha, mas fico pensando comigo, será que essa turma não tem + o que fazer ?
hahahah[/quote]

Se você olhar bem tem uma empresa por trás desta campanha com o logo dela espalhada por todo o site. No fundo no fundo o que eles
queriam é isso mesmo, que “a campanha” se espalhasse pois junto vai o nome da empresa.

É uma boa estratégia de marketing.

[quote=josenaldo]Pois eu vou lançar uma campanha contra as atribuições! Chega de explorar o pobre do sinal de atribuição!

Freedom for =[/quote]

É isso mesmo!!!

Já conseguimos a liberdade do ->, *, &
Agora é abolirmos a escravatura do =

o/

Abandone o “IF”

Adote um “GOTO”

:wink:

[quote=Grinvon]Abandone o “IF”

Adote um “GOTO”

;)[/quote]
Não… GOTO não!!! :frowning:

Edit: Abaixo o If. Faça switches.

[quote=jaboot][quote=Grinvon]Abandone o “IF”

Adote um “GOTO”

;)[/quote]

Não… GOTO não!!! :frowning:
[/quote]

Cara, usar GOTO é muito arriscado. Segue uma descrição de como fazer isso:

[quote] Pra fazer isso, voce tem que matar um gato preto, derramar o sangue sobre a documentação (com diagramas ER funciona melhor) recitar uma série de palavras da cabala demoníaca e furar um boneco vudu do seu gerente e outro do seu cliente. Então, rode o programa.
Extraído do Manual de Programação Demoníaca [/quote]

Ah, quem usa GOTO não vai pro inferno, porque nem o inferno quer esse tipo de programador.

rssrsrrssrrsrs

[quote=Grinvon]Abandone o “IF”

Adote um “GOTO”

;)[/quote]

Wikipedia: GOTO - Algum desses “Gotos” foi adotado?

não entendi? pq?
instanceof não pode ficar dentro de uma condicional?
ele queria criar o componente do instanceof ou queria mudar algum atributo?

não entendi? pq?
instanceof não pode ficar dentro de uma condicional?
ele queria criar o componente do instanceof ou queria mudar algum atributo?

[/quote]

Um if com instanceof geralmente indica que você não está usando uma das principais e melhores características de OO, o polimorfismo.

Frederico,
Poderia por gentileza mostrar um exemplo?
Pois na minha mente veio o método equals onde usamos instanceof dentro de um if.

@Override public boolean equals(Object other){ if (other == null) return false; if (other == this) return true; if (!(other instanceof MyClass))return false; MyClass otherMyClass = (MyClass)other; //...testa outras propriedades aqui... }

[quote=asousaj]Frederico,
Poderia por gentileza mostrar um exemplo?[/quote]

Suponhamos que no seu sistema PessoaFisica e PessoaJuridica estendem a classe Pessoa pois são uma especialização da mesma. Um exemplo simples seria substituir este código:

[code] public void verificarDadosObrigatorios(Pessoa pessoa) {

	if(pessoa instanceof PessoaFisica) {
		PessoaFisica pf = (PessoaFisica) pessoa;
		if(pf.getCpf() == null || pf.getCpf().length() != 11) {
			throw new RuntimeException("CPF Inválido.");
		}
	}
	
	if(pessoa instanceof PessoaJuridica) {
		PessoaJuridica pj = (PessoaJuridica) pessoa;
		if(pj.getCnpj() == null || pj.getCnpj().length() != 14) {
			throw new RuntimeException("CNPJ Inválido.");
		}
	}
}[/code]

Por este:

[code]
public void verificarDadosObrigatorios(PessoaFisica pf) {

	if(pf.getCpf() == null || pf.getCpf().length() != 11) {
		throw new RuntimeException("CPF Inválido.");
	}
}

public void verificarDadosObrigatorios(PessoaJuridica pj) {
	
	if(pj.getCnpj() == null || pj.getCnpj().length() != 14) {
		throw new RuntimeException("CNPJ Inválido.");
	}
}[/code]

[quote=fredericomaia10]
Suponhamos que no seu sistema PessoaFisica e PessoaJuridica extendem a classe Pessoa pois são uma especialização da mesma. Um exemplo simples seria substituir este código:[/quote]

Entendi.
Grato!

pra não usar if é só usar for ou while:

[sarcastic]

[code]
int i = 0;

for(; i == 0;){

//funciona igual if

break;
}

while(i==0){

//funciona igual if

break;
}[/code]