Posso colocar um link para sites de perguntas e respostas nos comentários de um programa?

16

Em algumas bases de código, você pode ver comentários dizendo coisas como:

 // Workaround for defect 'xxx', (See bug 1434594 on Sun's bugparade)

Então, eu tenho algumas perguntas, mas todas são relacionadas.

É correto colocar um link para perguntas do SO nos comentários de um programa:

 // We're now mapping from the "sorted-on column" to original indices.
 //
 // There's apparently no easy way to do this in Java, so we're
 // re-inventing a wheel.
 //
 // (see why here, in SO question: http://stackoverflow.com/questions/951848)

Você faz isto?

E quais são as desvantagens de fazer isso? (veja meu primeiro comentário para uma terrível desvantagem)

Tristan St.
fonte
9
comentando comigo mesmo: uma desvantagem muito preocupante ao fazer isso é que, devido ao fato de o SO ser um Wiki, há exatamente zero garantia de que as respostas nas quais você confia ainda estarão corretas (ou até mesmo estarão lá). Heck, em alguns casos, a pergunta em si pode ser fechada ou alterada a partir do seu significado original. A enorme diferença entre "Veja o bug 1434594" no desfile de erros da Sun é que você garante que o texto do link de bug da Sun não deve ( "não deve", conforme definido pela RFC2119). Isso é enorme: o fato de o SO ser um wiki me deixa nervoso ao colocar links do SO nos comentários.
St. Tristan
7
Sua melhor aposta é colocar um resumo claro e conciso da resposta do SO e, em seguida, colocar o link de referência por baixo. Eu fiz isso em várias ocasiões. Dessa forma, se o SO for mal ou a resposta for removida / editada, as informações principais que você deseja ainda estão no seu resumo. Agora, dependendo da complexidade da resposta, escrever o resumo pode ser uma tarefa totalmente separada. Se a resposta do SO vincular-se a outra coisa, pode valer a pena vincular a eles (especialmente se forem menos efêmeros do que as respostas do SO).
FrustratedWithFormsDesigner
5
@ Robert S .: não, não é uma meta. Não se trata de SO: estou aceitando SO do jeito que está. Isso é especificamente sobre como lidar com um recurso semelhante ao SO a partir de um comentário.
Tristan St.
1
Você está falando sobre o código que você escreve para sua equipe? Pergunte a eles.
1
Você sempre pode salvar a página inteira como uma página completa, compactá-la e colocá-la na pasta do documentário.

Respostas:

7

Eu fiz isso, talvez não especificamente para o Stack Overflow, mas para blogs técnicos, fóruns, Usenet, Grupos do Google ou qualquer outro lugar onde o "por que eu fiz isso" possa não estar completamente claro a partir do contexto.

Não vejo por que usar SO dessa maneira seria uma coisa ruim, a menos que arquivem e eliminem perguntas antigas (o que eu acho que não, mas não tenho certeza) - mas mesmo se o fizerem, não é pior do que qualquer outro site.

Se você estiver realmente preocupado com isso, poderá sempre capturar capturas de tela ou fazer o download dessas páginas como texto (ou passar pelo problema de obter imagens, folhas de estilo etc.) e salvá-las em um repositório de conhecimento da sua empresa, anexando um identificador exclusivo para ele e colocando esse identificador exclusivo em seus comentários para permitir que você faça referência mais tarde - então você teria um lugar consistente para esse tipo de coisa. Mas isso pode ser um exagero, dependendo da complexidade e importância do seu código.

Joe Enos
fonte
5

Geralmente, a melhor maneira de criar esse link é através do sistema de versão e / ou do sistema de rastreamento de bugs. O requisito para que isso funcione é que você pode vincular com precisão seu código ao rastreador de bugs ou ao local no sistema de versão em que você colocou seus comentários.


fonte
isso é interessante: então você está realmente sugerindo que, no caso de uma resposta SO, eu poderia buscar o HTML e armazená-lo no meu DVCS (Mercurial, mas esse não é o ponto)?
Tristan St.
Bem, normalmente você não precisa de tudo, apenas os bits relevantes, certo? E você pode fazer referência à fonte.
5

Idealmente, seu código não precisa desses comentários porque é bem estruturado etc. Mas sim, quando sua situação é menos do que o ideal, é aceitável colocar comentários como este. E os links para stackoverflow.com são tão bons (e frequentemente melhores!) Que outros.

Espero que sejam comentários temporários, e você poderá voltar e melhorar o código e remover esses comentários .

Ainda não coloquei um link StackOverflow.com no meu código. Tento evitar colocar links no código, pois é um mau cheiro, mas quando chegar a hora, não hesitarei.

Edit : Eu acho que minha resposta acima dá a impressão de que a necessidade de comentários como esse é evitável. Claro que às vezes é não evitáveis; é um bug em uma biblioteca ou um design de API ruim sobre o qual você não tem controle. Comentários como este, incluindo links, são muito úteis para o próximo desenvolvedor.

Patrick Karcher
fonte
2
Ei, olhe essa, eu gostaria que houvesse uma maneira "mais limpa" de lidar com isso, mas muitas vezes não é o caso stackoverflow.com/questions/951848 Quero dizer, bugs e inconsistências / API estranha, comportamento não documentado, etc. são parte de nossas vidas programador :)
Tristan St.
2

Eu vejo isso como escrever um trabalho de pesquisa. Se eu usar as idéias de outra pessoa, preciso dar crédito por essas idéias. Eu usei uma resposta do stackoverflow no meu código antes e adicionei o link aos comentários do método

Como alguém mencionou, SO é um estilo wiki, então é possível que isso mude, mas geralmente a idéia ainda deve ser a mesma.

Você ainda deve dar crédito aos outros quando usa as idéias deles.

jmq
fonte
1

Se você precisou implementar uma solução alternativa e não é óbvio por que a implementação foi feita de uma maneira específica, um comentário deve ser realmente necessário para identificar os motivos. Acho que colocar um link para uma referência on-line é bom, mas você realmente precisa fazer seu comentário sucinto, mas completo o suficiente para que o link forneça apenas uma explicação ampliada caso o leitor sinta necessidade de verificar novamente seu raciocínio.

Se, por outro lado, o código foi copiado literalmente, um link para a fonte original é justo e pode ser necessário, dependendo da redação da licença sob a qual você tem permissão para copiar o trabalho do autor original.

S.Robins
fonte