Eu tive alguns dos quais me orgulho e alguns deles foram escritos por mim mesmo alguns anos atrás. Não precisa ser necessariamente de buggy, apenas um código incorreto.
code-quality
bug
code-smell
James
fonte
fonte
Respostas:
Não sei se orgulhar da correção porque era muito óbvio, mas o código mais horrível que me lembro de corrigir foi esse.
Aparentemente, o desenvolvedor anterior continuava adicionando novas linhas toda vez que um novo usuário (geralmente irlandês) começava a receber erros no aplicativo.
Vou deixar como exercício para a classe como foi corrigido.
fonte
UserName='John O''Reily'
se torneUserName='John OReily'
(como como C concatena strings literais adjacentes), mas não acho que sobre a falta'
:(Eu realmente não deveria me orgulhar disso, mas por algum motivo, foi satisfatório.
Além de ter COBOL na escola, eu não tinha experiência, mas eu era um homem baixo no totem, e precisávamos fornecer código-fonte de compilação a um contratante para verificação do Y2K. Tínhamos um único arquivo COBOL com várias rotinas que se chamavam no arquivo, tipo espaguete, e era muito grande para carregar em nosso IDE atual para compilação. Ele precisava ser separado em pelo menos dois arquivos físicos, e esses arquivos, é claro, precisavam ter tudo o que precisavam em seu próprio arquivo. (Ou talvez, houvesse uma maneira de vinculá-los, mas eu realmente não conhecia COBOL.)
De qualquer forma, peguei esse arquivo de cerca de 100.000 linhas e gentilmente separei as dezenas e dezenas de rotinas para encontrar dois conjuntos de rotinas independentes entre si e, portanto, poderia existir em dois arquivos separados, cada um com cerca de 50.000 linhas. (Eu acho que o máximo que o compilador suportava era de cerca de 80.000 linhas, por isso precisava corresponder de maneira bastante uniforme.)
Eu estava lendo um idioma antigo que não conhecia e ainda tinha sucesso na tarefa.
fonte
Tirei o cursor de um gatilho e reduzi o tempo para inserir 40.000 novos registros de uma hora para menos de um minuto. Eventualmente, isso resultou em eu ser capaz de inserir 21 milhões de registros em algo menos do que o tempo glacial, mas nunca experimentamos a importação de 20 milhões de registros até a correção, por isso não tenho estatísticas sobre quanto tempo economizamos.
fonte
Havia uma classe base para criar diálogos de confirmação para diferentes operações nos nós da árvore. Você precisaria apenas fornecer uma mensagem para ser exibida na caixa de diálogo e a ação a ser executada se ela fosse confirmada. Sistema agradável, mas não permitia tratamento especial no caso de não haver um nó de árvore selecionado. Como resultado, o texto em uma das caixas de diálogo dizia: "Por favor, selecione não". Se você selecionou sim, lançou uma exceção. Experiência de usuário muito boa, de fato.
Corrigi isso desabilitando as operações inválidas.
fonte
O pior que vi foi um código Java para extrair frases-chave de um corpus de texto.
Para ser justo, isso não é nada comparado a algumas das nossas peças, mas ainda existe uma enorme diferença de qualidade antes e depois. Considere o seguinte código real antes e depois de uma função:
Antes (tente descobrir o que faz antes de olhar para Depois!):
Depois de:
fonte
Meu primeiro trabalho de programação foi escrever instaladores no InstallShield. Eu herdei um script que era milhares de linhas sem funções , apenas gotos. Era incompreensível. Eu o reescrevi, fiz tudo bonito, modular e controlado por dados, para que eu pudesse receber binários / art / etc. e lançar um novo instalador em menos de uma hora, em vez da semana + levou o cara anterior. Fiquei muito orgulhoso de mim mesmo.
fonte
Eu acho que nada chega nem perto disso :
O conserto? Eh, isso não deve exigir muita explicação.
fonte