EVGD: Códigos Toscos

Caso objeto Empregado seja igual null garanti que ele sempre será -1 e outra saldo como String nao me cheira bem…

        String saldo = "-1";
        try 
        {
            Empregado emp = Empregado.findByMatriculaCompetencia( matricula, competencia );
            if( emp != null ) 
            {
                saldo = String.valueOf( emp.getSaldo() );
            } else 
            {
                saldo = "-1";// ha necessidade disso?
            }
        } catch( Exception e ) 
        {
            e.printStackTrace();
        }

[quote=ramilani12]Caso objeto Empregado seja igual null garanti que ele sempre será -1 e outra saldo como String nao me cheira bem…

[code]
String saldo = “-1”;
try
{
Empregado emp = Empregado.findByMatriculaCompetencia( matricula, competencia );
if( emp != null )
{
saldo = String.valueOf( emp.getSaldo() );
} else
{
saldo = “-1”;// ha necessidade disso?
}
} catch( Exception e )
{
e.printStackTrace();
}

[/code][/quote]

No mínimo, nojento.

Não quero nem imaginar como é que eles lidam com conexões e banco de dados. hehe

Esse codigo é bem antigo peerless meados de 2000
Ate que gerenciamento de conexao com banco de dados é interessante implementaram um Pool de Conexoes

Acho que se esse tópico se chamasse “Códigos limpos e otimizados”, não teríamos tantos posts…

ruby.c, linha 372 :D:

Init_ext(); /* should be called here for some reason :-( */

Pra quem não acreditar: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/RUBY/ruby.c?revision=11708&view=markup

O cara quer ter certeza que a data é a correta:

EstagioTorPadraoVO estagioTorPadraoVO = pForm.getEstagioTorPadraoVONovo(); estagioTorPadraoVO.setDtInicioVigencia(pForm.getEstagioTorPadraoVONovo().getDtInicioVigencia());

Doação de um amigo que trabalha em Alphaville.

[quote=ramilani12]Rodei aqui na minha maquina: Windows XP SP2 jdk: java version “1.6.0_03”
Eclipse Europa:
T1: 219
T2: 156
T3: 125
T4: 109
T5: 94
T6: 63
T7: 93
T8: 0[/quote]

Aqui eu troquei algumas partes na marcação do tempo para ter mais precisão:

long t1 = System.nanoTime(); ... System.out.println("T1: " + (t1 / 1000000 - t0 / 1000000)); ...

Em um Windows XP SP3 jdk: java version “1.6.0_05” Eclipse Europa
Pentium 4 2.4 GHz com 1 GB RAM

T1: 238
T2: 165
T3: 207
T4: 176
T5: 136
T6: 127
T7: 118
T8: 16

hahahahah…

if( itemSegurado == null ) { msgErro = "Item segurado não encontrado: "; msgErro += itemSegurado.getNumero(); }

Porra Daniel, essa bateu o recorde.

kkkkkkkkkk.

provavelmente o cara que fez isso deveria estar com a cabeça na lua…

ou deve ter visto as opções da petrobras cairem e ver que perdeu 75% do dinheiro investido em menos de 3 horas

[quote=danieldestro]hahahahah…

if( itemSegurado == null ) { msgErro = "Item segurado não encontrado: "; msgErro += itemSegurado.getNumero(); }[/quote]

[quote=danieldestro]hahahahah…

if( itemSegurado == null ) { msgErro = "Item segurado não encontrado: "; msgErro += itemSegurado.getNumero(); }[/quote]

Da para imaginar o seguinte,
Talvez essa era intenção:


Long id = 2;
ItemSegurado itemSegurado = dao.achaItem(id);

f( itemSegurado == null ) {
  msgErro = "Item segurado não encontrado: ";
  msgErro += id;
}

Ihh parece que o dono apareceu, rsrs

Algo parecido com isto foi encontrado em um programa escrito em C++. (Não se preocupem, o programa equivalente é exatamente igual em Java).

switch (valor1) {
    case CASO1:
        codigo1();
        break;
    case CASO2:
        codigo1();
        break;
    case CASO3:
        codigo1();
        break;
    case CASO4:
        codigo1();
        break;
    case CASO5:
        codigo1();
        break;
    default:
        codigo1();
        break;
}

Ou seja, um “case” completamente inútil - eu abreviei o “codigo1”, que na verdade era bem mais extenso (umas três linhas de 80 caracteres cada uma), só para ficar mais fácil de vocês entenderem. Acho que o programador anterior devia ganhar por linha de código produzida :stuck_out_tongue:

O meu colega encontrou essa barbaridade e obviamente fez o seguinte:

// begin added code
   codigo1();
// end added code
/* // begin deleted code
// DANGER - UGLY CODE FOLLOWS BELOW - BEWARE - WARNING!!!
switch (valor1) {
    case CASO1:
        codigo1();
        break;
    case CASO2:
        codigo1();
        break;
    case CASO3:
        codigo1();
        break;
    case CASO4:
        codigo1();
        break;
    case CASO5:
        codigo1();
        break;
    default:
        codigo1();
        break;
}
*/ // end deleted code

Ou seja, deixou a prova do crime exposta para todo mundo ver e aprender o que não se deve fazer. Não limpou o sangue coisa nenhuma.

EDIT - como vocês viram, eu troquei o switch com o case - acho que foi algum mau fluido do programador original, que deveria cobrar por linha de código :frowning:

thingol, vai que o cara foi malandro e, resolveu utilizar as métricas de cobrar por linha de código em vez de ponto de função ou whatever seja a droga que o cara usou

Tem certeza que o cara usou switch no lugar do case e case no lugar do switch ou você só copiou errado?

É, realmente copiei errado. Vou editar :stuck_out_tongue:

Ah não, essa eu tinha q por…

Usando equals com enum:

...
if(trabalho.getAcao().value().trim().equals( Acao.fromValue("Inativar").value() )){
....

E o enum utlizado…

public enum Acao {

    CRIAR("Criar"),
    INATIVAR("Inativar"),
    ATUALIZAR("Atualizar");
    private final String value;

    Acao(String v) {
        value = v;
    }

    public String value() {
        return value;
    }

    public static Acao fromValue(String v) {
        for (Acao c: Acao.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }
        return null;
    }
}

E pq não assim ?

if(trabalho.getAcao().equals( Acao.INATIVAR )){

ou 

if(trabalho.getAcao() ==  Acao.INATIVAR ){

Pra que complicar… Pra que utlizar mais recursos?

No the Daily WTF de hoje leiam o terceiro item - Find The Function!

Não é preciso que as pessoas em média saibam fazer contas, mas é interessante que pelo menos tentem, e não fiquem tão empacadas.

[quote=thingol]No the Daily WTF de hoje leiam o terceiro item - Find The Function!

Não é preciso que as pessoas em média saibam fazer contas, mas é interessante que pelo menos tentem, e não fiquem tão empacadas. [/quote]

Infelizmente essa é a realidade do mercado atualmente.

[quote=danieldestro]O cara quer ter certeza que a data é a correta:

EstagioTorPadraoVO estagioTorPadraoVO = pForm.getEstagioTorPadraoVONovo(); estagioTorPadraoVO.setDtInicioVigencia(pForm.getEstagioTorPadraoVONovo().getDtInicioVigencia());

Doação de um amigo que trabalha em Alphaville.[/quote]

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

a melhor!