EVGD: Códigos Toscos

public static xxx doIt(...) {
   ...
   return doIt1(...);
}

private static xxx doIt1(...){
  ...
  return doIt2(...);
}
...
private static xxx doIt53(...){
  ...
  return doIt54(...);
}

private static xxx doIt54(...){
  ...
  return the_information_finally;
}

[quote=peczenyj][code]
public static xxx doIt(…) {

return doIt1(…);
}

private static xxx doIt1(…){

return doIt2(…);
}

private static xxx doIt53(…){

return doIt54(…);
}

private static xxx doIt54(…){

return the_information_finally;
}
[/code][/quote]

versão burra da recursividade…

ô, burro é pouco!

Jah encontrei um código assim em PHP

if (1==1) { // procedimentos... }

Era isso mesmo…rsrs por incrivel que pareça…

:roll:

Materpiece (obra-prima):

String strColunaAtual = ""; switch(contadorColunas) { case 0: strColunaAtual = "A"; break; case 1: strColunaAtual = "B"; break; case 2: strColunaAtual = "C"; break; case 3: strColunaAtual = "D"; break; case 4: strColunaAtual = "E"; break; case 5: strColunaAtual = "F"; break; case 6: strColunaAtual = "G"; break; case 7: strColunaAtual = "H"; break; case 8: strColunaAtual = "I"; break; case 9: strColunaAtual = "J"; break; case 10: strColunaAtual = "K"; break; case 11: strColunaAtual = "L"; break; case 12: strColunaAtual = "M"; break; case 13: strColunaAtual = "N"; break; case 14: strColunaAtual = "O"; break; case 15: strColunaAtual = "P"; break; case 16: strColunaAtual = "Q"; break; case 17: strColunaAtual = "R"; break; case 18: strColunaAtual = "S"; break; }

Acho que quando o autor deste pérola souber que o código abaixo faz a mesma coisa, ele vai se matar.

String strColunaAtual = ((char) (contadorColunas+65))+"";

Que tal o cara precisar passar 4 inteiros como parâmetro de um método, ai pra não reinventar a roda ele passa um java.awt.Rectangle hehehe :slight_smile:

bom… se for um retângulo que ele vai passar até concordo rsrsrs :roll:

Uma classe qualquer de lógica de nogócios de um sistema qualquer… nada referente a uma interface grafica não ou algo que faça desenhos na tela :stuck_out_tongue:

O certo mesmo é criar uma classe chamada Quadrilatero, pois é mais genérico. Serve tanto pra quadrado como pra retângulo! :mrgreen:

O SWT está cheio disso.

Exemplo: métodos que calculam o tamanho de um widget retornam um Point, onde o x é o comprimento e o y é a largura.

Em um sistema que vi (que podia usar Java 5) o fulano simplesmente encapsulou ArrayList, sem pôr nenhuma funcionalidade adicional.

class ClasseCollection extends ArrayList {
    ... construtores reimplementados omitidos por brevidade ...
}

e usava ClasseCollection o tempo todo, em vez de usar List<MinhaClasse> = new ArrayList<MinhaClasse>().

O SWT está cheio disso.

Exemplo: métodos que calculam o tamanho de um widget retornam um Point, onde o x é o comprimento e o y é a largura.[/quote]

Nossa, realmente, fizeram um equivalente ao java.awt.Point mas ficaram com preguiça de fazer algo como o java.awt.Dimension hehehe

[quote=thingol]Em um sistema que vi (que podia usar Java 5) o fulano simplesmente encapsulou ArrayList, sem pôr nenhuma funcionalidade adicional.
Code:

class ClasseCollection extends ArrayList {
… construtores reimplementados omitidos por brevidade …
}

e usava ClasseCollection o tempo todo, em vez de usar List = new ArrayList(). [/quote]

Bom, quem sabe o cara copiou esse código de um sistema que usava java < 5 e achou melhor não mudar nada no código… hehe

Mais um exemplo super bacana:

import org.jfree.chart.labels.PieSectionLabelGenerator;
import org.jfree.chart.labels.PieToolTipGenerator;

import de.laures.cewolf.links.PieSectionLinkGenerator;

public abstract class ProcessadorGraficosPizza extends
		ProcessadorGraficosGenerico implements PieSectionLinkGenerator,
		PieToolTipGenerator, de.laures.cewolf.tooltips.PieToolTipGenerator,
		PieSectionLabelGenerator {
}

Sim, a classe é só isso. :evil:

valeuz…

O post original é este:http://www.guj.com.br/posts/list/71405.java
Mas resolvi colocar a pérola aqui.

Encontrei a seguinte rotina de validação do formato de placa de identificação de veículo (formato: XYZ1234).

public static boolean isValid(String placa) { String letras = extrairLetras(placa); String numeros = extrairNumeros(placa); if (letras == null || numeros == null) { return false; } if ( letras.length() != 3 || numeros.length() != 4 ) { return false; } // verifica se a variável letras contém apenas letras [A-Z] if (Character.isDigit(letras.charAt(0)) || Character.isDigit(letras.charAt(1)) || Character.isDigit(letras.charAt(2))) { return false; } // verifica se a variável numeros contém apenas números [0-9] if (!Character.isDigit(numeros.charAt(0)) || !Character.isDigit(numeros.charAt(1)) || !Character.isDigit(numeros.charAt(2)) || !Character.isDigit(numeros.charAt(3))) { return false; } return true; }

Como resolver este mesmo problema? Assim:

public static boolean isValid(String placa) { return placa.matches("[A-Z]{3}[0-9]{4}"); }

Mais uma pérola:

try { Class clazzNew = Class.forName(objNew.getClass().getName()); Class clazzOld = Class.forName(objOld.getClass().getName()); } catch( Exception e ) { e.printStackTrace(); }

Por que não fazer apenas isto?

Class clazzNew = objNew.getClass(); Class clazzOld = objOld.getClass();

[quote=chicobento] public Exception sendMail() { try { // envia o email } catch(Exception e) { return e; } return null; }
E então:

Exception e = sendMail(); if (e != null) { throw e; } else { // continua }[/quote]

Else Forever por Gambi Design Pattern!!!
Desse tipo eu vejo de montão…
Mas a pior que eu já vi foi um comentário assim “Descomentar a linha abaixo após 31/08” e, impressionantemente, o sistema parou de funcionar em 1/9… vai entender… se eu não olho essa classe especificamente… sorte que eu só perdi 3 dias!!! auhauhauhauh

[quote=thingol]Em um sistema que vi (que podia usar Java 5) o fulano simplesmente encapsulou ArrayList, sem pôr nenhuma funcionalidade adicional.

class ClasseCollection extends ArrayList {
    ... construtores reimplementados omitidos por brevidade ...
}

e usava ClasseCollection o tempo todo, em vez de usar List<MinhaClasse> = new ArrayList<MinhaClasse>().

[/quote]

Calmae… isso não é nada!!!
Eu já vi FulanoList implements List e dentro dela, tinha um arrayList e todos os métodos faziam return arrayList.método();
O motivo: só pra retornar o objeto correto nas chamadas…
Detalhe: Era java 5!
O ClasseCollection extends ArrayList eu até entenderia… auhauhauhauh

[quote=info_god] if (bStatus == false){ comandos = "copy etiqueta.txt lpt1"; child = Runtime.getRuntime().exec(comandos); Thread.sleep(500); bStatus = true; }

é daqui do forum… Quando eu vi isso quase chorei! pq ele não fez assim

if !(bStatus) { //e bla blabla }[/quote]

:shock: Eu acho que isso não compila … mas veja bem, eu acho. hehehehehe
Se você quis mostrar uma pérola, acabou criando outra.

[]'s

[quote=danieldestro]Porque diabos colocar um return deste de um finally?

public int nomeDoMetodo() { try { // ... } catc( Exception e ) { //... trata } finally { filePost.releaseConnection(); return (status == HttpStatus.SC_OK); } }[/quote]

Mas esse nem roda neh? O retornó é int e a comparação faz um evaluate de um boolean. Neh não?

Destro, seu codigo ficou anos-luz mais enxuto, mas e o sistema em qual ele vai ser utilizado?Regex não é a coisa mais rápida do mundo, ás vezes essa otimização pode “dar problemas”.Eu mesmo tô com um problema em um sistema cuja as máquinas tem pouca memória(há uma única “top” com 256MB de RAM… :frowning: )