EVGD: Códigos Toscos

[quote=Schuenemann][quote=Eduardo Bregaida]
Esse tópico além de mostrar erros dos nossos projetos, também mostra como melhoramos para notar esse erro (muitas vezes nós que fazemos e acabamos postando aqui), mas independente de quem fez, você notou o erro, a má eficiência, etc, logo você evoluiu, é o que este tópico quer dizer.[/quote]
Por isso que sugeri além de colocar as tosqueiras, colocar também uma melhor forma de fazer. Mas parece que ninguém concordou.

Enfim, achei essas 2 pérolas num conhecido framework que é vendido no Brasil:

public int compare(String s1, String s2) {
	if (s1.equals(s2))
		return 0;
	return +1;
}

E nós não entendíamos porque o TreeMap não funcionava:

Map<String, Object> map = new TreeMap<String, Object>(new ComparatorInsano()); map.put("chave", "valor"); map.get("chave"); // null!!??

Melhor seria: ora, pra que escrever um comparator de String (bugado, ainda por cima) ?

Depois teve um if que nunca entrava (esse paginaAtual é int):

if (!"1".equals(paginaAtual)) { // nunca serei executado } else { // sempre serei }[/quote]

qual frame?

[quote=luistiagos][quote=Schuenemann][quote=Eduardo Bregaida]
Esse tópico além de mostrar erros dos nossos projetos, também mostra como melhoramos para notar esse erro (muitas vezes nós que fazemos e acabamos postando aqui), mas independente de quem fez, você notou o erro, a má eficiência, etc, logo você evoluiu, é o que este tópico quer dizer.[/quote]
Por isso que sugeri além de colocar as tosqueiras, colocar também uma melhor forma de fazer. Mas parece que ninguém concordou.

Enfim, achei essas 2 pérolas num conhecido framework que é vendido no Brasil:

public int compare(String s1, String s2) {
	if (s1.equals(s2))
		return 0;
	return +1;
}

E nós não entendíamos porque o TreeMap não funcionava:

Map<String, Object> map = new TreeMap<String, Object>(new ComparatorInsano()); map.put("chave", "valor"); map.get("chave"); // null!!??

Melhor seria: ora, pra que escrever um comparator de String (bugado, ainda por cima) ?

Depois teve um if que nunca entrava (esse paginaAtual é int):

if (!"1".equals(paginaAtual)) { // nunca serei executado } else { // sempre serei }[/quote]

qual frame?[/quote]

Eu chutaria um tal framework chamado “Jota” de uma ta “Companhia” :lol:

Alguém apresenta operadores de comparação pra ele, fafavô:

if (contas == null || contas.size() < 1 || contas.size() > 1) { contaContabilOK = false; }

Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!

[quote=adriano_si][quote=davidbuzatto]

if(condMinha == 0) {
    return true;
} else {
    return false;
}

Abs [][/quote]
[/quote]
Já vi muito disso… E ainda certo dia peguei um POGramador fazendo… Interrompi e mostrei “outra forma” de fazer. Ele disse: "- Nossa cara… você é fo** mesmo… " :shock:

Pasmem… Peguei um cara ensinando outro a fazer um método retornar 2 valores, rsrsrs retornava um Object[]

Melhor que isso… só isso: http://www.guj.com.br/java/234881-ondemand---novo-design-pattern

Melhor que isso… só isso: http://www.guj.com.br/java/234881-ondemand---novo-design-pattern[/quote]

hahhaha… chega a dar ância em porco…

Já vi por aqui nego instanciando classe servlet dentro de outa classe servlet para “reusar” os métodos… rsrsrs :shock:

[quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

Pelo menos a variavel tem legibilidade :stuck_out_tongue:

[quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

Mais um da serie: oddly specific!

edit:

Soh nao entendi essa parte em negrito:
lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos

[quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

uau… rsrs… esse gosta de digitar heim kkk…

Pareceu forjado… Desculpe quem postou, não lhe conheço e nem sei a situação na hora do POST, mas parece meio surreal… Tosquice em código tudo bem, agora isso é total falta de bom senso pra qualquer ser humano e fora que nem compilaria, como estaria funcionando até agora ???

[quote=Felagund][quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

Pelo menos a variavel tem legibilidade :P[/quote]

Está bem “verboso” huauhahuhuahuahua leia variáveis como frases foi oq me falaram no inicio mas isso é um parágrafo completo kkkkk boa mas tbm queria saber o que seria “lalur” lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();

[quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

O pior não é só isso, já vi em sistemas nomes como esses (não tão grandes) nas variaveis, um monte, e parecidos. Eu sempre confundia.

Era coisas como:

BigDecimal valorSaldoAtualReceitaDespesaPlanoContasDerivativos = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaDespesaPlanoContasDerivativos = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaEntradaPlanoContasDerivados = BigDecimal.ZERO;
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasIntegrados = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaDespesaPlanoContasIntegrados = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaEntradaPlanoContasDerivativos = BigDecimal.ZERO;

[quote=Marky.Vasconcelos][quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

O pior não é só isso, já vi em sistemas nomes como esses (não tão grandes) nas variaveis, um monte, e parecidos. Eu sempre confundia.

Era coisas como:

BigDecimal valorSaldoAtualReceitaDespesaPlanoContasDerivativos = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaDespesaPlanoContasDerivativos = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaEntradaPlanoContasDerivados = BigDecimal.ZERO;
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasIntegrados = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaDespesaPlanoContasIntegrados = BigDecimal.ZERO;
BigDecimal valorSaldoAnualReceitaEntradaPlanoContasDerivativos = BigDecimal.ZERO;

[/quote]

sem dúvida não é uma boa prática, mas eu prefiro os exemplo acima do que esses adaptados do código acima:

BigDecimal a = BigDecimal.ZERO;

if (b != null)
     a =  b.getValorSaldoAtual();[/code]
BigDecimal a = BigDecimal.ZERO;
BigDecimal b = BigDecimal.ZERO;
BigDecimal c = BigDecimal.ZERO;
BigDecimal d = BigDecimal.ZERO;
BigDecimal e = BigDecimal.ZERO;
BigDecimal f = BigDecimal.ZERO;

E eu ja vi outros exemplos beeeem piores, tipo misturar SQL, Javascript e HTML no java, métodos com mais de 1000 linhas, etc.

manutenção Zero, compensava fazer tudo de nOvo.

Nossa, esse que difere somente de Atual para Anual eh de f*.

Sao dois extremos, ambos sao de ferrar…

Em uma página JSP qualquer:

ParametersDocument screen = (ParametersDocument) session.getAttribute("screen");
screen = screen == null ? (ParametersDocument)session.getAttribute("screen") : screen;
String functionName = screen.getParameters().getTopBar().getFormTitle();
functionName = functionName == null ? "< N&atilde;o Definido >" : functionName;

Num banco de dados Oracle de homologação por aí:

[QUOTE=Tabelas]
JOAO.ANIVERSARIANTES
JOAO.CONTABIL
JOAO.EMPRESTIMO
JOAO.FGTS
JOAO.HOLERIT
JOAO.(OUTRAS 100 TABELAS)
MARIA.ANIVERSARIANTES
MARIA.CONTABIL
MARIA.EMPRESTIMO
MARIA.FGTS
MARIA.HOLERIT
MARIA.(OUTRAS 100 TABELAS)
ZEROBERTO.ANIVERSARIANTES
ZEROBERTO.CONTABIL
ZEROBERTO.EMPRESTIMO
ZEROBERTO.FGTS
ZEROBERTO.HOLERIT
ZEROBERTO.(OUTRAS 100 TABELAS)
A001.ANIVERSARIANTES
A001.CONTABIL
A001.EMPRESTIMO
A001.FGTS
A001.HOLERIT
A001.(OUTRAS 100 TABELAS)
A002.(…)
A003.(…)
B001.(…)
B002.(…)
…[/quote]

BTW, JOAO, MARIA, etc são os nomes dos schemas…

Perdi as esperanças na humanidade…

[quote=Tchello][quote=leoramos]Desculpa, mas hoje eu tô achando cada coisa… sou obrigado a postar isso também.
Não sei nem se a quebra de linha vai funcionar direito com essa onça, mas lá vai:

[code]
BigDecimal valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = BigDecimal.ZERO;

if (lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos != null)
valorSaldoAtualReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos = lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos.getValorSaldoAtual();[/code]

Meus cavaco… é pácabá!
[/quote]

Mais um da serie: oddly specific!

edit:

Soh nao entendi essa parte em negrito:
lalurReceitaDespesaPlanoContasCooperativaRendasComTitulosEValoresMobiliariosEInstrumentosFinanceirosDerivativos[/quote]

Lalur é o “Livro de Apuração de Lucro Real”, é um tipo de demonstração contábil intermediária. Eu trabalho com sistema bancário e tem um módulo contábil no negócio.

Ao colega que disse que pareceu meio forjado, eu não te julgo, cara. Da primeira vez que eu vi, também não acreditei.
Na realidade, acho eu que o figura que fez isso fez meio que “de propósito”. Ele ainda trabalha aqui, acho que mandaram ele mexer nesses relatórios e ele fez meio a contragosto; daí esse tipo de coisa.
Problema é: como eu fiz faculdade de contábeis, todos os relatórios contábeis do sistema vêm pra eu mexer. Já dá pra saber o que eu sinto no meu dia-a-dia, né? hehe
Mas é real, tem essa porcaria no sistema, sim. É uma classe de execução de relatório.

Abraços!