EVGD: Códigos Toscos

Num desses casos de uso por aí:

[quote]Caso não seja recuperado nenhum registro nas tabelas TAB_A e TAB_B não emitir mensagem de erro e prosseguir com as demais consistências.

A fim de prosseguir com as demais consistências é necessário que sejam recuperados registros nas tabelas TAB_A e TAB_B. Caso não retorne os registros. As validações seguintes não poderão ser feitas.[/quote]

Fora a redundância, por que diabos eles falam de tabelas no caso de uso?

Bom, sendo analistas de mainframe, sinto-me aliviado por eles não falarem de outras coisas.

vc não viu nada ainda destro ( risada maligna ) Tem os que NÃO SÃO analistas de mainframe que fazem coisas piores… huahuahua

[quote=Tecnoage]
vc não viu nada ainda destro ( risada maligna ) Tem os que NÃO SÃO analistas de mainframe que fazem coisas piores… huahuahua[/quote]

Pois é, a minha pergunta é devido a meu conhecimento empírico da coisa…

[quote=danieldestro]Num desses casos de uso por aí:

[quote]Caso não seja recuperado nenhum registro nas tabelas TAB_A e TAB_B não emitir mensagem de erro e prosseguir com as demais consistências.

A fim de prosseguir com as demais consistências é necessário que sejam recuperados registros nas tabelas TAB_A e TAB_B. Caso não retorne os registros. As validações seguintes não poderão ser feitas.[/quote][/quote]

Entendi errado ou isso ai dá loop infinito? :stuck_out_tongue:
Parece aquelas mensagens de erro da bios de uns PCs velhos que eu já vi… “keyboard error, press F1 to continue…”

[quote=Rafael Nunes][quote=Tecnoage]
vc não viu nada ainda destro ( risada maligna ) Tem os que NÃO SÃO analistas de mainframe que fazem coisas piores… huahuahua[/quote]

Pois é, a minha pergunta é devido a meu conhecimento empírico da coisa…[/quote]

editado… tosquise…

Sei bem como é, no meu caso é um pouco diferente, são Analistas de Negócio, modelando um sistema que não tem nem menção a mainframe, e vez em quando sai em uns casos de uso: ‘Se a configuração na TABELA_PARAMETROS, for igual a X, então exibir a mensagem …, se a configuração na TABELA_PARAMETROS for igual a Y, então buscar quais as são as informações na TABELA_OUTROSPARAMETROS’

[editado] Agora minha mensagem é que ficou sem sentido sem ter a sua mensagem acima…hehe

huahuahua… pois é… eu ia mandar MP, mas apertei o bt errado “citar” huahua por isso o “editado… tosquice…” huahau

Essa é p/ rir:

Teve um dia na empresa onde trabalhava que o kra ficou um tempão debugando o código e ñ entendia pq a execução ñ entrava no if, ele chamou outro kra e os doi ficaram + um tempão tentando entender o pq o bendito código ñ entrava no if.

Final da história o código se parecia c/ isso:

if(isTrue()); //Faz alguma coisa

Perceberam o “;” no final do if…

ahuauhauahaua!! :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

Grito desesperado do programador:

  • Cara, pelo amor de Deus, me ajuda. O Entity Manager está sempre null. Não funciona! Porquê?

Eu:

  • Deixe-me ver - segundos depois - Ah tá!!!

AlgumEJBDAO dao = new AlgumEJBDAOBean(); dao.processarAlgoNoBancoDeDados();

Gosto de pessoas que tem certo “DOM” para dar nomes às coisas:

public class BaseExcecaoException ...

[quote=danieldestro]

AlgumEJBDAO dao = new AlgumEJBDAOBean(); dao.processarAlgoNoBancoDeDados();[/quote]

Geração espontânea ué…

if(true){ total = total + 1; }

Isso foi o que eu vi um designer fazer pra tentar resolver um probleminha…
Alguém me responde se em algum momento esse if não será executado? aiuhaa

Olha só o código mais elegante do mundo que acabei de achar:

       while (i < args.length) {
                if (args[i].equals("-o")) {
                    if (i > args.length - 2)
                        usage(false);
                    filename = args[i + 1];
                    i += 2;
                } else if (args[i].equals("-nogui")) {
                    showFrame = false;
                    i++;
                } else if (args[i].equals("-ipr")) {
                    sampler = "ipr";
                    i++;
                } else if (args[i].equals("-threads")) {
                    if (i > args.length - 2)
                        usage(false);
                    threads = Integer.parseInt(args[i + 1]);
                    i += 2;
                } else if (args[i].equals("-lopri")) {
                    lowPriority = true;
                    i++;
                } else if (args[i].equals("-hipri")) {
                    lowPriority = false;
                    i++;
                } else if (args[i].equals("-sampler")) {
                    if (i > args.length - 2)
                        usage(false);
                    sampler = args[i + 1];
                    i += 2;
                } else if (args[i].equals("-smallmesh")) {
                    TriangleMesh.setSmallTriangles(true);
                    i++;
                } else if (args[i].equals("-dumpkd")) {
                    KDTree.setDumpMode(true, "kdtree");
                    i++;
                } else if (args[i].equals("-buildonly")) {
                    noRender = true;
                    i++;
                } else if (args[i].equals("-showaa")) {
                    showAA = true;
                    i++;
                } else if (args[i].equals("-nogi")) {
                    noGI = true;
                    i++;
                } else if (args[i].equals("-nocaustics")) {
                    noCaustics = true;
                    i++;
                } else if (args[i].equals("-pathgi")) {
                    if (i > args.length - 2)
                        usage(false);
                    pathGI = Integer.parseInt(args[i + 1]);
                    i += 2;
                } else if (args[i].equals("-quick_ambocc")) {
                    if (i > args.length - 2)
                        usage(false);
                    float d = Float.parseFloat(args[i + 1]);
                    shaderOverride = new AmbientOcclusionShader(Color.WHITE, d);
                    i += 2;
                } else if (args[i].equals("-quick_uvs")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new UVShader();
                    i++;
                } else if (args[i].equals("-quick_normals")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new NormalShader();
                    i++;
                } else if (args[i].equals("-quick_id")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new IDShader();
                    i++;
                } else if (args[i].equals("-quick_prims")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new PrimIDShader();
                    i++;
                } else if (args[i].equals("-quick_gray")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new QuickGrayShader();
                    i++;
                } else if (args[i].equals("-quick_wire")) {
                    if (i > args.length - 1)
                        usage(false);
                    shaderOverride = new WireframeShader();
                    i++;
                } else if (args[i].equals("-resolution")) {
                    if (i > args.length - 3)
                        usage(false);
                    resolutionW = Integer.parseInt(args[i + 1]);
                    resolutionH = Integer.parseInt(args[i + 2]);
                    i += 3;
                } else if (args[i].equals("-aa")) {
                    if (i > args.length - 3)
                        usage(false);
                    aaMin = Integer.parseInt(args[i + 1]);
                    aaMax = Integer.parseInt(args[i + 2]);
                    i += 3;
                } else if (args[i].equals("-bucket")) {
                    if (i > args.length - 3)
                        usage(false);
                    bucketSize = Integer.parseInt(args[i + 1]);
                    bucketOrder = args[i + 2];
                    i += 3;
                } else if (args[i].equals("-bake")) {
                    if (i > args.length - 2)
                        usage(false);
                    bakingName = args[i + 1];
                    i += 2;
                } else if (args[i].equals("-bakedir")) {
                    if (i > args.length - 2)
                        usage(false);
                    String baketype = args[i + 1];
                    if (baketype.equals("view"))
                        bakeViewdep = true;
                    else if (baketype.equals("ortho"))
                        bakeViewdep = false;
                    else
                        usage(false);
                    i += 2;
                } else if (args[i].equals("-filter")) {
                    if (i > args.length - 2)
                        usage(false);
                    filterType = args[i + 1];
                    i += 2;
                } else if (args[i].equals("-bench")) {
                    runBenchmark = true;
                    i++;
                } else if (args[i].equals("-rtbench")) {
                    runRTBenchmark = true;
                    i++;
                } else if (args[i].equals("-frame")) {
                    if (i > args.length - 2)
                        usage(false);
                    frameStart = frameStop = Integer.parseInt(args[i + 1]);
                    i += 2;
                } else if (args[i].equals("-anim")) {
                    if (i > args.length - 3)
                        usage(false);
                    frameStart = Integer.parseInt(args[i + 1]);
                    frameStop = Integer.parseInt(args[i + 2]);
                    i += 3;
                } else if (args[i].equals("-v")) {
                    if (i > args.length - 2)
                        usage(false);
                    UI.verbosity(Integer.parseInt(args[i + 1]));
                    i += 2;
                } else if (args[i].equals("-h") || args[i].equals("-help")) {
                    usage(true);
                } else {
                    if (input != null)
                        usage(false);
                    input = args[i];
                    i++;
                }
            }

157 linhas de Else if. Depois que voce termina de ler isso, estar tonto é a característica minima.

[quote=Sergio Figueras]Olha só o código mais elegante do mundo que acabei de achar:

{… 157 linhas de código.}

157 linhas de Else if. Depois que voce termina de ler isso, estar tonto é a característica minima.
[/quote]

Já vi uma vez um switch de pouco mais de 3000 linhas. Com direito a fallthrough, chamada recursiva e tudo mais. Com variáveis chamadas aaa, aab, aac, xxx (normalmente String ou Object). Basicamente era um servlet de uma aplicação horrível em JSP (que nada mais eram do que scriptlets gigantescos com alguns esparsos trechos de HTML). Aliás, um servlet não, era O servlet da aplicação.

A divisão de camadas e o MVC eram perfeitos: Esse método com o switch era o doGet (ou doPost, não me lembro ao certo), onde havia fragmentos de SQL, fragmentos de HTML, cálculos, manipulação de string e sabe-se mais o que. E devia haver pelo menos cinquenta atributos public static.

Ah sim, esse switch ficava dentro de um bloco try. E no final tinha algo mais ou menos assim:

} catch (Exception e) {
    e.printStackTrace();
}

Mas não era todo o código que ficava lá não. Aparecia chamadas deste tipo:

Object o = algumaCoisa.getOutraCoisa().getMaisOutraCoisa((String) parametro1, (Integer) parametro2).metodoMaluco((Object) algo(), maisAlgo(outroParametro - 13, (Object[]) outraCoisa(variavel), umMetodo()), qualquerCoisa + 27).outroMetodo(maisUmParametro);

Depois, eu soube como é que tal código foi concebido. Tinham entregue o sistema para dois estagiários que nunca tinham visto nada de java antes e apenas sabiam um pouquinho de pascal.

Infelizmente não possuo mais essa pérola. :frowning:

    /**
     * Método que retorna o Cliente/Fornecedor selecionado.
     * @return Cliente/Fornecedor.
     */
    public ClienteGeralVO getClienteFornecedorVO() {
        return clienteGeralVO;
    }

    /**
     * Método que atualiza o estado (habilitado/desabilitado) das abas
     */ 
    private void atualizarAbas() {
        if(getClienteFornecedorVO() != null) {
            
        } else {
            
        }
    }

    private ChangeListener tabbedPaneClienteChangeListener = new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            dispararActionCommand("AbaSelecionada");

            // Se a aba selecionada for a Geral habilita o botao de pesquisa...
            if(getSelectedTabbedIndex() == 0) {
                templatePrincipal.getButtonPesquisar().setEnabled(true);
            } else if(getSelectedTabbedIndex() == 12) {
                // Se a aba selecionada for a Semovente habilita o botao de pesquisa...
                templatePrincipal.getButtonPesquisar().setEnabled(true);
            } else if(getSelectedTabbedIndex() == 14) {
                // Se a aba selecionada for a Referencia Pessoal habilita o botao de pesquisa...
                templatePrincipal.getButtonPesquisar().setEnabled(true);
            } else {
                templatePrincipal.getButtonPesquisar().setEnabled(false);
            }
        }
    };

Como em java ainda não temos funções delegate como no C# e nem ponteiros para funções como C++ então uma vez tive q fazer um switch gigantesco para simular o funcionamento de um processador RISC…

pelo amor de deus…

olha oq eu acabei de encontrar num codigo fonte de um jogo em Java

if (true==true) { KeyBindingManager.getKeyBindingManager().set( "exit", KeyInput.KEY_ESCAPE ); }

ainda seria menos feio por somente (true)… aff

[quote=alucardeck]pelo amor de deus…

olha oq eu acabei de encontrar num codigo fonte de um jogo em Java

if (true==true) { KeyBindingManager.getKeyBindingManager().set( "exit", KeyInput.KEY_ESCAPE ); }

ainda seria menos feio por somente (true)… aff[/quote]

Podia ser pior, tipo if (true==true || true==false).