EVGD: Códigos Toscos

mais uma contribuição

cath (Exception e) { throw new Exception(e); }

java.lang.Exception mesmo

E esse caso?! Sem comentários… :lol:

   if (bean.getName().equals("XXXXX")) {

   } else {
        processOtherCompany();
   }

quem nunca fez uma pog que atire a primeira pedra^^

Eu já fiz, assumo. Inclusive postei uma de minha própria autoria várias páginas atrás. :smiley:

[quote=victorwss]Certa fez, disseram para um determinado pogueiro que conheço, que colocar números mágicos no código era ruim, que o certo era definir constantes e acessar sempre as constantes, para deixar a manutenção no código mais fácil.

O resultado disso foi mais ou menos isso:

public static final int UM = 1; public static final int DOIS = 2; public static final int TRES = 3; public static final int QUATRO = 4; public static final int CINCO = 5; ...if (sessao.getUsuario().getIsso().fazAquilo().metodoBizarro() == QUARENTA_E_TRES) { ... }[/quote]

Putz nem me fala o sistema que eu estou mexendo atual, tem trocentas constantes pra lá e pra cá… mas cá entre nós a única alternativa é os enums ou colocar tudo isso em properties? pra mim no fundo parece tudo igual só muda a cara da coisa…( cara de gambiarra )

[quote=albertongai][quote=victorwss]Certa fez, disseram para um determinado pogueiro que conheço, que colocar números mágicos no código era ruim, que o certo era definir constantes e acessar sempre as constantes, para deixar a manutenção no código mais fácil.

O resultado disso foi mais ou menos isso:

public static final int UM = 1; public static final int DOIS = 2; public static final int TRES = 3; public static final int QUATRO = 4; public static final int CINCO = 5; ...if (sessao.getUsuario().getIsso().fazAquilo().metodoBizarro() == QUARENTA_E_TRES) { ... }[/quote]

Putz nem me fala o sistema que eu estou mexendo atual, tem trocentas constantes pra lá e pra cá… mas cá entre nós a única alternativa é os enums ou colocar tudo isso em properties? pra mim no fundo parece tudo igual só muda a cara da coisa…( cara de gambiarra )[/quote]
Tenho um amigo que diz que prefere uma classe com umonte de statics do que enum… Não desse tipo dos números que o Victor passou, mas enfim…

[quote=peczenyj][quote=paulog]Enquanto isso na minha empresa…

for (int i = 0; i < 100; ++i) {
    try {
        recurso.close();
    } catch (Throwable e) {}
}

Alguém queria ter certeza que o recurso iria ser fechado. :slight_smile:
Se eu colocar o for até 50, será que melhora a performance?[/quote]

É para fechar muito bem fechado. Ao menos não tem um sleep no meio.[/quote]

Ahahahahaha…
Basicamente, já falta um break depois do close(). Se o uso do for fosse “válido”, então que pelo menos estivesse correto.

Um colega meu deu uma alternativa:

public static final double FRACTION = 0.25;
public static final int COUNT = 100;
public static final int TOTAL = (int) COUNT * FRACTION;

for (int i = 0; i < TOTAL; ++i) {
}

Assim é possível determinar a “performance” do for mudando o valor de FRACTION. Prontamente respondi, falando que deveríamos até disponibilizar para o usuário algum controle visual para mudar esse valor, como se fosse uma resistência de um circuito elétrico.
Hahahahaha… Poderia ler o valor de alguma propriedade também…

JavaScript + Scriptlet + Java = Aberrações

// Não colocar nenhuma funcao JS apos este metodo...
function imprimirValoresControlePaginas(){
<% if(request.getAttribute("listaPaginas") != null){
	java.util.LinkedHashMap<Integer,Integer> listaPaginas = (java.util.LinkedHashMap<Integer,Integer> ) request.getAttribute("listaPaginas");
	java.util.Iterator<Integer>  it = listaPaginas.keySet().iterator();
	out.print("var vlrLista = \"<b>Página</b><br>");
	while(it.hasNext()){
		Integer key = (Integer) it.next();
		out.print(key + "-" +listaPaginas.get(key) + "<br>");
	}
	out.print("\";");
}%>
	document.getElementById("mostraLista").innerHTML = vlrLista;
}

atentem para o detalhe de se criar uma variável javasricot no meio do scriptlet

Oh SHIT…

boolean valor = getValor();
if(valor == true){
  objeto = new Objeto(true);
}else if(valor == false){
  objeto = new Objeto(false);
}else{
  objeto = null;
}
public static void escreveNoLog(Exception e){
		 if (e == null) return;
			StackTraceElement[] ste = e.getStackTrace();
			for (int i = 0; i < ste.length; i++){
				
			}
		}

estou bestificada olhando para este código. O método não faz nada de útil, só aumenta o tempo de processamento.

Tosco, não? Além do mais as principais variáveis são estáticas, todas as classes estão acessando-as, alterando-as. Os botões são estáticos, criados num canto, adicionados em outro, capturado evento em outra classe. Nada de encapsulamento, péssimas praticas de OO, difícil entendimento e manutenção.

Vontade de pegar o infeliz que fez isso e… :twisted:

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

 where 1 = 1

[quote=luistiagos]quem não lembra da velha gambi para fazer muitas vezes sqls dinamicos?

where 1 = 1 [/quote]

Eu usava isso para fazer SQL Injection. XD

Eu gosto dos comentários e os nomes dos métodos misturando português com inglês…
E o uso do FIXME e sem falar do números mágicos.
E pior aí vc clica com o direito e vai em referências no projeto abre uma lista com 325 ocorrências.

public static boolean isValidCnpj(String cnpj) {

 // FIXME: Fazer validacao de cnpj de verdade !!!
 cnpj = removeSeparators(cnpj, false);
 if (cnpj.length() != 14) {
   return false;
 }
 return true;
}
private static String removeSeparators(String str, boolean validateCPF) {

 StringBuffer buffer = new StringBuffer(str);
 if (validateCPF) {
  if (str.length() == 14) { // se for validacao de CPF e estiver com mascara
     buffer.deleteCharAt(11).deleteCharAt(7).deleteCharAt(3);
  }
 } else if (str.length() == 18) { // ser for validacao de CNPJ e estiver com mascara
    buffer.deleteCharAt(15).deleteCharAt(10).deleteCharAt(6).deleteCharAt(2);
}
 return buffer.toString();
}

Avisa a esse sujeito sobre o método replaceAll.

Aproveita e indica o Caelum Stella para validar os números de documento.

String a;
a=1+"";
select * from pedido_renovacao pe where pe.DAT_RENOVACAO between TO_DATE('07/07/2009', 'DD/MM/YYYY') and TO_DATE('07/07/2009', 'DD/MM/YYYY') and rownum between 0 and 1000000 ORDER BY DAT_RENOVACAO DESC

Adorei a parte do rownum!

Limite sua query, traga os registros entre 0 e 100000000000000000000000000000000000000!!!

[quote=Jose111] String a; a=1+"";
[/quote]

isso é outra forma de fazer cast de numeros para string, vcs não sabiam?? já vi varias vezes… :smiley:

Minha contribuição:

public class dadosGenerico {
   public String str1;
   public String str2;
   public String str3;
   public String str4;
   public String str5;
   public String str6;
   public String str7;
   public String str8;
   public String str9;
   public String str10;
   public String str11;
   public String str12;
   public String str13;
   public String str14;
   public String str15;
   public String str16;
   public String str17;
   public String str18;
   public String str19;
   public String str20;
   public String str21;
   public String str22;
   public String str23;
   public String str24;
   public String str25;
   public String str26;
   public String str27;
   public String str28;
   public String str29;
   public String str30;

   public dadosGenerico(){

   }
}
    public String criptografa(String x) {

        try {
            //Um monte de tranqueira aqui...
        } catch (javax.crypto.BadPaddingException e) {
            System.out.println(e.getMessage());
            return null;
        } catch (IllegalBlockSizeException e) {
            System.out.println(e.getMessage());
            return null;
        } catch (java.io.IOException e) {
            System.out.println(e.getMessage());
            return null;
        } catch (java.security.InvalidKeyException e) {
            System.out.println(e.getMessage());
            return null;
        }
    }