EVGD: Códigos Toscos

Encontraram nova maneira de usar mensagens:

  /*
     * insert
     */
    public String insert() {
        String msg = "";

        try {

           //código muito extenso omitido

           throw new Exception("Os registros foram vinculados");   
        } catch (Exception e) {
            if (msg.equals("")) {
                msg = e.getMessage();
            }
        }
        return msg;
    }

[quote=g4j]Encontraram nova maneira de usar mensagens:

  /*
     * insert
     */
    public String insert() {
        String msg = "";

        try {

           //código muito extenso omitido

           throw new Exception("Os registros foram vinculados");   
        } catch (Exception e) {
            if (msg.equals("")) {
                msg = e.getMessage();
            }
        }
        return msg;
    }

[/quote]

Eu ainda omiti parte do catch…

Vejam como se garante um rollback:

        } catch (Exception e) {
            try {
                con.rollback();
            } catch (SQLException e2) {
                e2.printStackTrace();
            }
            if (msg.equals("")) {
                msg = e.getMessage();
            }
            try {
                con.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
                msg = "Não foi possível incluir registro.";
            }
        } finally {

Código tosco foi o que eu vi no projeto hoje…

Começava assim…

package br.com.empresa.contingencia;

public class WService extends Service {

13.000 :shock: , isso mesmo 13 mil linhas de código depois chega o final da classe

}

Quando eu vi essa classe de 13 mil linhas de código quase cai de costas, criaram quase um projeto todo dentro da classe, e para piorar
tinha mais umas 4 classes com pelo menos 10 mil linhas. Jamais tinha visto um absurdo desse antes.

[quote=maior_abandonado][quote=Luiz Augusto Prado][quote=Yky Mattshawn][quote=Luiz Augusto Prado][quote=kicolobo]Aqui em BH teve um momento lindo.

Uma empresa imensa que desenvolve softwares para dispositivos touch percebeu que sempre a mesma área do visor estragava.
Quando foram analisar, descobriram que era o botão mais usado pelos usuários.

Visando solucionar o problema aumentando a vida útil do equipamento, qual foi a solução adotada?
QUAL? QUAL??? QUAL???
O botão ANDA aleatóriamente pela tela hoje.
Se eu não tivesse visto, não acreditaria.[/quote]

Eu não trabalho com mobile, mas estou curioso em saber como vc resolveria isso de outra forma.
Na verdade gostei da idéia do botão aleatório.
Existe outra forma melhor?[/quote]

Eu trocaria a marca/modelo do dispositivo touch, hehehe.[/quote]

Ou trocar de dedo? Hehehe
também pensei nisso, mas nossos programas as vezes não podem obrigar os usuarios a trocarem de celular.
[/quote]

trocar o dedo?? veja:

[/quote]

Navegando na web, encontrei esse que achei melhor!


[quote=johnny quest]Código tosco foi o que eu vi no projeto hoje…

Começava assim…

package br.com.empresa.contingencia;

public class WService extends Service {

13.000 :shock: , isso mesmo 13 mil linhas de código depois chega o final da classe

}

Quando eu vi essa classe de 13 mil linhas de código quase cai de costas, criaram quase um projeto todo dentro da classe, e para piorar
tinha mais umas 4 classes com pelo menos 10 mil linhas. Jamais tinha visto um absurdo desse antes.
[/quote]

hhehe… pede pro eclipse abrir a classe e vai buscar um café ou fumar um cigarro torcendo pra não travar.

ashudhasudhuashu que erro patético…

[code]#include
#include
#include <stdio.h>
#include
#define INF 999999

using namespace std;

int n, xx, yy, test = 1;

int main(void){
ios::sync_with_stdio(false);
while(cin >> n && n != 0){
vector edges[n + 1];
for(int i = 0; i < n - 1; i++){
cin >> xx >> yy;
edges[xx].push_back(yy);
edges[yy].push_back(xx);
}
int miN = INF, ret = 1;
for(int i = 1; i <= n; i++){
int max = 0;
int dist[n + 1];
bool vis[n + 1];
for(int j = 0; j < n + 1; j++) {dist[j] = 0; vis[j] = 0;}
queue q;
q.push(i);
while(!q.empty()){
int x = q.front(); q.pop();
if(dist[x] > max) max = dist[x];
for(int y = 0; y < edges[x].size(); y++){
if(!vis[edges[x][y]]){
dist[edges[x][y]] = dist[x] + 1;
q.push(edges[x][y]);
}
}
}
if(max < miN) {miN = max; ret = i;}
}
cout << "Teste " << test++ << “\n” << ret << “\n\n”;
}
return 0;
}
[/code]

To migrando um legado e analisando o código antigo em VB6, é uma coleção danada de código tosco!
Vou compartilhar os mais toscos…

olhem esse:

Public Function pegaate10(pos As Long, txt As String)
Dim tmptxt As String
Dim car As String
Dim X As Long

    tmptxt = ""
    
    For X = pos To 1 Step -1
        car = Mid(txt, X, 1)
        If car = Chr(10) Then
            Exit For
        Else
            tmptxt = car & tmptxt
        End If
    Next X

    pegaate10 = tmptxt

End Function

Achamos este aqui hoje, mereceu até um meme:

String[] arr=str2array.split(";");
System.out.println("Array :"+arr.length);
for(int i=0;i<arr.length;i++){  //<=== WAT??
}
algumaCoisa = arr[0];
algumaCoisa2 = arr[1];
algumaCoisa3 = arr[2];
algumaCoisa4 = arr[3];
algumaCoisa5 = arr[4];

//nomes de variaveis alteradas, 

Encontrei esse aqui hoje. Código bem comentado em ASP.

    preco = request("txtPreco[]")
    valor = request("txtValor[]")
    desconto = request("txtDesconto[]")

    'Datas sem putaria
    dtInicSigap = request("txtDtSrvInic")    
    dtFinSigap = request("txtDtSrvFin")    
    dtEmissaoSigap = request("txtDtEmissao")     

Um código que vimos recentemente aqui:

[code]public boolean isSuperUser() {
if (“platform-Administrator super-support”.contains(username)) {
return true;
}

//Aqui vinham outros testes, com base num bd
return false;

}[/code]

O dev preguiçoso usou contains. Mas olha a m… que dá se você criar um usuário chamado “a” ou “trator” ou qualquer coisa que esteja no meio daquela string ali…

Um que vi aqui recentemente:

private boolean isAgenciaVazia(VoCuentas vo) {
    return vo.getAgencia() == 0 ? true : false;
}

Esse queria mostrar que sabe usar operador ternário.

quentinho este aqui… acabei de pegar num projeto rsrsrs


			if ( criteria.list() != null && criteria.list().size() > 0 ) {
				infos = criteria.list();
			}

:roll: :roll: :roll:

Ué, qual é o problema desse código?

[quote=daniesouza]quentinho este aqui… acabei de pegar num projeto rsrsrs


			if ( criteria.list() != null && criteria.list().size() > 0 ) {
				infos = criteria.list();
			}

:roll: :roll: :roll: [/quote]

Amigo, acho que você é quem tá com problema.
O código é bem válido, mostrar resultados somente se houver algo na lista é um tratamento bem trivial.

[quote=doravan][quote=daniesouza]quentinho este aqui… acabei de pegar num projeto rsrsrs


			if ( criteria.list() != null && criteria.list().size() > 0 ) {
				infos = criteria.list();
			}

:roll: :roll: :roll: [/quote]

Amigo, acho que você é quem tá com problema.
O código é bem válido, mostrar resultados somente se houver algo na lista é um tratamento bem trivial.[/quote]

Esse codigo é equivalente a

infos = criteria.list();
			if (infos  != null && infos.size() > 0 ) {
				infos = infos;
			}

entenderam o problema agora ?

talvez eu tenha entendido errado entao…favor me corrigir se eu estiver errado… mas quando vc faz um criteria.list ele nao vai no banco listar os dados??

e no codigo ele esta fazendo 3 vezes… indo no banco 3 vezes…

acredito que seria mais facil fazer isto…

infos = criteria.list();

if(infos != null || infos.size() >0)
{
// blah blah blah
}

Sem a gente ver o interior do método list(), ou você dizer de que API vem esse criteria, não daria para prever o que esse método faz.

Esse eu acabei de achar aqui!


...
boolean variavelBooleana = false;
...

if (variavelBooleana == true) {
             
} else if (variavelBooleana == false) {
                     
}

Acho que o cara queria garantir que não existisse um talvez…
aieuhiuaehuieahea

[quote=lucasportela]Um que vi aqui recentemente:

private boolean isAgenciaVazia(VoCuentas vo) {
    return vo.getAgencia() == 0 ? true : false;
}

Esse queria mostrar que sabe usar operador ternário.[/quote]

Oxi, que mal há nisso?

:?:

[quote=andredecotia][quote=lucasportela]Um que vi aqui recentemente:

private boolean isAgenciaVazia(VoCuentas vo) {
    return vo.getAgencia() == 0 ? true : false;
}

Esse queria mostrar que sabe usar operador ternário.[/quote]

Oxi, que mal há nisso?

:?:

[/quote]

O uso redundante do operador ternário, retornar true se a condição for verdadeira e false se a condição for falsa.