Devo alterar o nome do autor no arquivo de classe se fizer mais de 80% de alterações?

18

Estou refatorando o conjunto existente de classes de teste java para testes automatizados de interface do usuário. Às vezes, acabo fazendo grandes alterações no arquivo de classe ou reformulando-o completamente. Isso me faz pensar que, quando estou reescrevendo a classe inteira, devo alterar o nome do autor na seção de comentários para o meu?

Estou sendo ganancioso? ou será útil ver meu nome e me perguntar em caso de dúvida?

Tarun
fonte
17
Você está usando controle de versão? Acho cometer logs para ser um mecanismo de rastreamento mais confiável para a autoria (se há sempre uma necessidade legítima de descobrir ...)
rwong
5
O nome deve estar lá se tiver algum tipo de valor para o código. Ou seja, pessoa de contato. Responsabilidade e assim por diante. E, nesse caso, cole-o com uma data final e um novo nome anexado.
Independent
15
Qual é o objetivo de ter o nome de um autor nos arquivos de classe?
BЈовић
2
Se o arquivo tiver um espaço reservado para um nome de autor, é provável que ele também tenha um espaço reservado para o log de alterações. Eu colocaria meu nome no log de alterações em vez do autor original. De qualquer forma, nunca deixo minhas próprias impressões digitais no código que escrevo, apenas as do meu chefe.
Mouviciel
1
o que está errado em deixar o seu nome como autor e adicionar uma linha abaixo que diz "reescrito / data nome reformulado"
Ryathal

Respostas:

15

Realmente depende ...

Se você acha que há uma pequena chance de alguém mais tarde se interessar em perguntar ao autor original, digite o nome dele no código. Se você acha que alguém pode estar interessado em perguntar pessoalmente, informe seu nome. E se você acha que ambos podem ser possíveis, deixe os dois nomes (ou um comentário como "baseado no trabalho de ...).

Obviamente, quando o uso do controle de origem é obrigatório em seu local de trabalho, e essa é a única maneira de obter acesso às fontes, salve a confusão e retire todos os comentários de autores da fonte. No meu local de trabalho, por exemplo, temos muitos arquivos de origem no controle de origem, onde não nos preocupamos em escrever nenhum nome nas fontes. Se eu quiser saber quem é responsável pelo arquivo, ou foi no passado, ou por uma alteração específica, o TortoiseSVN me produzirá facilmente um log para isso.

Por outro lado, temos muitas macros VBA, escritas por alguns caras, repassadas para outros caras (alguns deles deixaram a empresa ao longo dos anos) e foram modificadas muito, tudo sem usar o controle de origem. Felizmente, os comentários desses arquivos geralmente contêm nomes de autores e algum tipo de log de histórico.

Doc Brown
fonte
13

Acabei de encontrar outro post em que o OP estava perguntando se o nome do autor deveria estar no cabeçalho do arquivo e parece que pelo menos 2/3 das pessoas que responderam disseram que o nome nem deveria estar listado e que você deveria usar o controle de versão para basta acompanhar quem alterou o arquivo. Não sei o que aconteceu com esse post, mas agora não consigo encontrá-lo. <- (daí "OP" anônimo)

Pessoalmente, acho o autor listado no cabeçalho do arquivo útil, mas por um motivo um pouco diferente (e isso pode não estar relacionado a outras pessoas em seus ambientes). Embora tentemos praticar a propriedade da comunidade e frequentemente trabalhe em várias partes do projeto, tendemos a ter poucos membros da equipe que conhecem determinadas áreas do código muito mais intimamente do que outras. Portanto, quando alguém (especialmente numerosos prestadores de serviços que vão e vêm) abre um arquivo que nunca viu antes, o autor se torna o candidato. Ele pode não ser o único colaborador, ou mesmo o majoritário, mas, tendo o nome no topo, ele reconhece ter certa responsabilidade na distribuição de conhecimento / informação sobre o código para o restante da equipe. Podemos listar mais de uma pessoa no cabeçalho, se várias pessoas realmente contribuíram e se sentem responsáveis.

Acho frustrante quando tenho uma pergunta sobre um arquivo e preciso recorrer ao controle de versão para identificar a pessoa principal ou mais experiente. Depois, acabam passando de um cara para o outro, pois todos negam realmente saber o que o código faz ... eles apenas precisavam entrar e consertar um bug ou dois.

Essa prática funciona em nossa equipe porque não temos transferências. A menos que uma pessoa saia, ou se mude para uma equipe diferente, esse código / projeto permanecerá com a pessoa e com nossa equipe. Obviamente, se as pessoas que mantêm o código não são iguais às que o escrevem, ninguém se importa com quem está listado no cabeçalho.

Portanto, à luz da minha opinião sobre os cabeçalhos de arquivo, eu diria que se você alterasse 80% do arquivo e sentir que agora é o principal responsável por todas as perguntas (e provavelmente deve se sentir assim), sim, vá adiante e atualize o cabeçalho do arquivo para ter seu nome nele. Se você se sentir mal por remover a pessoa anterior, também poderá deixar o nome dela lá, pelo menos por enquanto. Você sempre pode perguntar ao autor original e tenho certeza de que eles não se importarão nem um pouco com o fato de você ter alterado o nome, pois estou assumindo que não há nenhum sentimento difícil sobre você alterar 80% do arquivo em si.

UPDATE: Encontrou essa postagem . Não tenho idéia de como consegui recuperar algo de agosto. Acabei de ler The Pragmatic Programmer e, no capítulo anterior, os autores falam sobre a assinatura de trabalho e prestação de contas (o outro post mencionou, é por isso que procurei). O livro faz todo o sentido e, agora que penso nisso, talvez devamos introduzir uma política de equipe para que quem estiver listado como autor seja incluído em todas as revisões de código do arquivo em questão. Não importa quem alterou o arquivo pela última vez ou mais no SVN, o autor é o proprietário e o responsável.

DXM
fonte
1
Eu vejo seus pontos, mas quem é "OP"?
Tarun
Pode haver uma página do projeto ou um wiki interno onde as informações de contato podem ser colocadas para que todos possam ver. A dificuldade de colocar essas informações (documentação e pessoas de contato) no controle de origem surge ... durante a ramificação e a mesclagem.
rwong
@ Tarun: OP = "pôster original" (ou seja, a pessoa que faz a pergunta). É uma expressão usada em fóruns de discussão online.
sleske
Concordo com @Tarun, um link para a postagem ajudaria a colocar sua resposta em perspectiva. Eu estou supondo que é este ?
yannis
1
@rwong: Por que há um problema durante a ramificação e fusão? Normalmente, a pessoa que mescla uma mudança deve entendê-la (caso contrário, por que ela a mescla?). Portanto, a pessoa no log é quem deve perguntar.
sleske
5

Não acho o nome do autor muito útil. Como essa pergunta mostra, geralmente não há um autor único, portanto, nomear "o autor" não é possível.

É claro que você poderia incluir uma lista de todas as pessoas que fizeram grandes contribuições, mas já pode obtê-lo no log de controle de revisão - então, qual é o sentido?

No meu projeto, não há informações do autor na maioria dos arquivos. Se você tiver uma pergunta, basta olhar para os logs e, geralmente, é óbvio que uma ou duas pessoas fizeram a maior parte do trabalho, então você as pergunta.

Editar

A resposta assume um projeto usando o controle de versão. Se você não usar (consistentemente) o VC, colocar um autor (lista) e talvez algum histórico de alterações em um arquivo possa ser uma solução viável. Ainda assim, você provavelmente deve começar a usar o VC o mais rápido possível. Nesse caso, veja acima :-).

sleske
fonte
so what's the point?Projetos que não estão sob um vcs, projetos que em algum momento migraram para um vcs diferente (nem todos os esquemas de migração permitem a migração do histórico, infelizmente) e projetos que usam mais de um vcs ao mesmo tempo - alguns projetos do FLOSS adotam esse aproximar para tornar mais fácil para as pessoas a contribuir, sem limitá-las a uma vcs (SVN pessoas acham git rígidos, as pessoas git encontrar svn inutilizável, e nós hg as pessoas riem de ambos)
yannis
1
@YannisRizos: OK, é verdade. Eu assumi implicitamente que qualquer projeto de software usaria controle de versão. Editou minha resposta.
sleske
E, é claro, meus outros pontos devem ser facilmente resolvidos com alguns vcs-fu menores, independentemente dos vcs envolvidos. Mas, na prática, raramente são, infelizmente.
yannis
2

Se o arquivo foi modificado significativamente, deve ser aceitável adicionar seu nome ao arquivo como alguém que saiba algo sobre ele.

Paul Nathan
fonte
1

O criador do arquivo de origem deve / deve sempre (IMHO) ser mencionado no arquivo de origem. Isso, com bons comentários no cabeçalho, deve mostrar por que o autor desenvolveu a fonte e qual era seu pensamento ao escrever o código. Quanto ao mantenedor do código, adicionar o nome do mantenedor é crucial para o rastreamento do controle de origem.

A nomeação do autor, IMHO novamente, deve incluir a versão fonte do código, fora do sistema de controle de versão, a primeira data em que a alteração ocorreu, bem como o número da solicitação de alteração. O motivo é que, se a decisão de alterar o VCS surgir, há um histórico da versão do código, quem era o autor e o número do pedido de alteração ao qual os desenvolvedores podem se referir (se eles precisam saber por que o mantenedor fez o que / ela fez). Assim, em nossa organização, nosso formato é o seguinte:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/
Buhake Sindi
fonte
3
"se a decisão de alterar o VCS surgir, há histórico da versão do código" Espero que nenhuma organização sã considere migrar o VCS sem migrar o histórico (pelo menos, o histórico recente). Afinal, esse é o ponto de usar o VCS.
sleske
1
Completey discorda. Esse tipo de informação deve ser rastreado com controle de versão. Caso contrário, não há realmente como saber quem fez alterações em quais linhas (supondo que mais de uma pessoa tenha trabalhado em um arquivo). Colocá-lo no arquivo é simplesmente uma duplicata de baixa fidelidade de informações disponíveis em outros lugares.
Bryan Oakley
1
@Bryan Oakley, não estou removendo o controle de versão, estou afirmando que reconhecer o código é uma maneira de saber quem trabalhou na fonte, sem precisar fazer a pesquisa necessária via controle de versão. Além disso, existem alguns códigos disponíveis fora dos sistemas de controle de versão, o nome do autor deve ser excluído?
precisa saber é o seguinte
1

Gosto de ver o nome do autor original, apenas para encontrar alguém para iniciar minha busca por respostas sobre o código. (O autor geralmente não se lembra, mas é pelo menos um tiro!)

Eu recomendaria que você simplesmente adicionasse seu nome abaixo do autor original.

Não há necessidade de substituir o nome da outra pessoa, pois ela pode conhecer alguns aspectos da empresa original que você não precisa, e outros que a seguem depois de você também precisam conversar com essa pessoa.

ka9cql
fonte
+1 no terceiro parágrafo, pois o autor original pode conhecer outra pessoa que fez algo no código, mas não colocou seu nome nele.
Coyote21
1

Minha política sobre os comentários do autor é:

  1. Se for um arquivo novo, eu me coloco como o autor.
  2. Se for um arquivo existente, deixo o @author sozinho, independentemente do que faço com o arquivo.

Se você tiver alguma dúvida, não importa quem é o autor do arquivo - é importante quem é o autor da porção do arquivo que você está editando. É para isso que [git/svn/whatever] blameserve.

OMI, o autor precisa ir embora.

Michael Moussa
fonte
Por um lado, você se lista como autor em um novo arquivo. Por outro lado, você quer que o autor vá embora?
Anthony Pegram
1
Os padrões de codificação da empresa exigem a presença da tag @author. Caso contrário, eu não usaria (porque quero que desapareça :)).
Michael Moussa