Pergunta

Ferramentas para desenvolvedores e software normalmente não fornecem sugestões de soluções em mensagens de erro . Isso faz sentido para compiladores, porque eles são supostamente para dizer precisamente o que deu errado.

Existem "cotão" ferramentas para fornecer sugestões, mas AFAIK, alguns desenvolvedores usam ferramentas fiapos regularmente ou mesmo em tudo.

Há um grande conjunto de software orientado a desenvolvedor que faria bem para ter um "solução sugerida (s)" parte para mensagens de erro . Esta é uma das grandes características que IDEs como Eclipse tem. Mas o software como frameworks de aplicação web, / bibliotecas populares padrão, etc. não tem esse recurso útil.

Isto é algo que é apenas falta de design amigável (pode-se considerar isso desnecessário, uma vez que o Google é tão bom) ou há uma boa razão para isso? Fazer qualquer compiladores, enquadramentos, as plataformas que você usa fornecer mensagens de erro com sugestões de solução, se não existir, por que não?

Foi útil?

Solução

A primeira coisa que eu quero de um erro do compilador ou tempo de execução é contexto - onde isso aconteceu e onde foi chamado a partir de quando ele falhou.

Eu acho que compiladores mais modernos e tempos de execução (Java, Ruby, Go) fazer um trabalho decente lá, com números de linha e rastreamentos de pilha que você pode encontrar a maioria dos bugs. Mesmo a boa opções de JavaScript recebendo, ele certamente bate o bom "alert ()" velha abordagem de depuração.

Não é suficiente justo deixá soluções sugeridas para os IDEs?

Mas eu concordo que eu já vi frameworks / bibliotecas que eram muito esparso com mensagens de erro, e "NullPointerException na linha 264" profunda dentro alguma biblioteca de terceiros, onde você não tem o código-fonte lhe diz muito perto de nada .

Se isto é um problema, eu acho que é restrita principalmente para bibliotecas de terceiros. A "boa razão" é, presumivelmente, que foi desenvolvido em uma pressa no tempo livre de alguém, e eles não colocaram mensagens de erro significativas muito alto na lista de prioridades.

Outras dicas

O que você quer ver?

Error: Null Pointer Exception (suggested solution: Set the object to something).

Quer dizer, não é o trabalho escritores de erro para educá-lo. Eu prefiro mensagens de erro simples que apontam para o problema exato, então eu me podem determinar exatamente o que está causando isso neste momento. Para mim, isso certamente linhas no domínio de ferramentas de 3; talvez os compiladores poderia fornecer contexto extensivo para eles, para fazer sua análise, mas não é algo que eu realmente encontrar valiosas.

É difícil para a solução para um Erro que está sendo apresentado. Existem tantas possibilidades e como @silky apontou, alguns simplesmente não pode ser diagnosticado.

Advertências são um animal diferente. Em muitas situações compiladores modernos usam estes para dizer "eu acho que você quis X quando você disse Y;. Você pode querer verificar que"

A linguagem de programação tem a oportunidade de ser o máximo em flexibilidade em termos de interface do usuário. Você pode fazer o computador fazer o que quiser. O outro lado da moeda é que se você digitar tanto como um caractere errado, ele pode ter nenhuma idéia ao longo do qual eixo o seu erro foi cometido, ou onde.

sistemas com menos oferta flexibilidade mais oportunidades para oferecendo soluções para os problemas. Se você digitar (a b c) para o seu compilador Lisp e não sabe o que um é que é tão perto de tantas linhas válidas de código que não pode exatamente sugerem uma única correção. Se você cometer erros de ortografia "IDENTIFICAÇÃO DIVISION" no início do seu programa COBOL, é relativamente fácil para o compilador de detectar o erro e ajudá-lo. A maioria das outras línguas situar-se entre estes dois extremos.

Os programadores tendem a mover-se, ao longo de suas carreiras, de línguas menos potentes e mais estruturados, para as línguas mais poderosas e flexíveis. (Pelo menos, é o que eu vi acontecer antes Javascript tornou-se uma tal linguagem novato quente.) Isso significa que sua disciplina melhora até o ponto onde eles são capazes de usar ferramentas que oferecem poder à custa de ser dito o que fazer. Os ambientes que usei que pode me dizer o que fix, tendem a ser aqueles que eu não gosto de usar.

Não é diferente de qualquer outra arte. Olhe para músicos ou pintores ou artistas marciais ou atores ou escritores ou chefs ou mesmo pessoas aprendendo a falar espanhol: quando elas são jovens e inexperientes, eles são colocados em um sistema onde há um monte de estrutura, e se eles cometerem um erro alguém pode facilmente corrigi-los. Como eles se tornam mais hábeis, eles precisam e querem cada vez menos apoio. Quando eles se tornaram-se especialistas, eles precisam de nenhum apoio em tudo, mas o outro lado da moeda é que você não pode tão facilmente apontar o que é certo ou errado. Se suas cores miúdo fora das linhas, você pode explicar o problema, mas se Picasso ou Pollock faz uma má pincelada, o que você diria? Ou se Philip Glass coloca uma nota fora do lugar, ou Bruce Lee vira seu corpo muito longe em um soco? E quem gostaria de trabalhar em uma forma de arte que é tão limitado que profanos as coisas não são possíveis? compiladores COBOL ainda existem se alguém realmente quer que eles, mas muito mais pessoas pagam dinheiro para pinturas terríveis do que magistrais impressões cor-de-número.

Mais diretamente, há um site, ErrorHelp (bug.gd nee), que permite que você digite uma mensagem de erro e obter um resultado, e é mais velho do que SO mas ninguém usa . Eu tentei. A menos que você está em um contexto em que só há uma resposta possível, um simples dicionário-solução sugerida encontrou-problema não funciona, e, portanto, é um fracasso total em qualquer campo criativo.

A maioria do IDE têm seus próprios compiladores. Isto permite-lhes fazer a compilação parcial, refatorações de código, e muitos outros truques. I encontrar as mensagens de erro e sugestões bastante útil. Só porque o compilador não é invocado na linha de comando, não significa que ele não é um compilador.

alt texto http://www.theeggeadventure.com /wikimedia/images/1/1f/Eclipse-error.png

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top