É possível reformatar outro código de desenvolvedor enquanto modifica / adiciona a um módulo?

13

Ao desenvolver em uma atmosfera de grupo e adicionar ou modificar recursos em alguma base de código. É considerado ofensivo ou indelicado reformatar o código dos desenvolvedores anteriores para trazê-lo aos padrões de codificação atuais? Entendo que os padrões mudaram e provavelmente continuarão a mudar, mas algum de vocês se ofenderia se alguém aparecesse e alterasse sua formatação de código?

Para ser claro, não estou falando sobre mudar nenhuma lógica, apenas mexer com guias e espaços e coisas do tipo.

EDIT: Eu não faço isso apenas por uma questão de padrões de codificação, ele me ajuda a ler o código deles e atualizá-lo para que eu possa entender completamente a lógica que foi implementada antes de começar a modificar aplicativos críticos.

wfoster
fonte
6
Ative o "formato automático ao salvar" para todos. Todo mundo usa as mesmas configurações acordadas. Depois de um tempo, todo o código é normalizado.
1
Pode haver um ponto em que isso vai longe. Eu tive um colega de trabalho que reformatou tudo, acrescentando quebras de linha, que não eram necessárias ou até relevantes para mim. Pessoalmente, a menos que seja ilegível ou o código se torne minha principal responsabilidade, deixo a formatação em paz, a menos que esteja fazendo outras alterações.
precisa saber é o seguinte
1
Se você estiver codificando em c #, siga o StyleCop. Se em outros idiomas, tente escolher uma ferramenta boa e imparcial.
5
É este "Eu estou mudando a formatação ... porque eu acho que deveria olhar diferente" .. ou é este "Eu estou mudando a formatação ... também coincidir com as normas " ... extremamente diferentes questões
WernerCD
1
@ Thorbjorn Eu não consideraria um ramo que corrige a formatação em cada arquivo, 1 arquivo por confirmação, matando o histórico. No entanto, corrigi-lo durante o mesmo commit é ruim. (Eu acho que eles poderiam usar algo como git addcometer seletivamente partes, mas meu palpite é que a maioria das pessoas usam o equivalente a svn commitou git commit -a)
alternativa

Respostas:

19

Eu acho que isso é bom, desde que os padrões sejam acordados. Uma nota de cautela, no entanto; esteja ciente se existe o potencial de o arquivo estar sendo modificado por outras pessoas ao mesmo tempo. Se você tornar a fusão mais difícil, apenas porque estava alterando a formatação, não será muito popular.

Jeremy Mullin
fonte
10
A primeira frase aqui é importante. Verifique se você está realmente seguindo os padrões acordados e não apenas fazendo alterações porque gosta deles.
Thomas Owens
5

Sim, o código deve pertencer ao projeto. Trazer o código até o padrão ajudará a reduzir o déficit técnico do projeto. Se você estiver modificando, atualmente você é responsável por isso. Para códigos mais antigos, o desenvolvedor original pode não estar mais no projeto ou ter novas funções.

Quando você faz esse tipo de alteração, é bom executar os testes de verificação após a reformatação. Se eles forem aprovados, verifique o código antes de fazer as alterações de seus recursos.

EDIT: No contexto desta pergunta, a reformatação para o padrão é apropriada. Na ausência de padrões, eu recomendaria advogar por padrões e não reformatar até que existam padrões para o formato. A reformatação para padrões / gostos pessoais não deve ser feita com o código pertencente ao projeto.

BillThor
fonte
2
+1 para "verificar o código antes de fazer a sua característica muda"
bdoughan
1
+1 novamente para "verificar alterações na formatação antes de fazer alterações nos seus recursos" e "é bom executar os testes de verificação após a reformatação". Idealmente, devemos executar testes de verificação antes de cada check-in.
precisa saber é o seguinte
Na verdade, se você reformata antes ou depois das alterações realmente não importa. O que importa é que os patches estéticos devem ser mantidos separados dos patches funcionais -> se um patches estéticos alterou a funcionalidade, não foi planejado e pode ser considerado um bug; facilita a revisão de patches funcionais (porque menores).
Matthieu M.
@ Matthiew M: Verdade, mas na maioria dos casos eles serão feitos primeiro para melhorar a capacidade de manutenção antes da manutenção. Poucos desenvolvedores têm tempo para fazê-lo após o fato. Além disso, se o código precisar ser atualizado para passar nos testes de check-in automatizado, ele deverá ser reformatado primeiro para manter a separação dos patches estéticos e funcionais.
BillThor
3

Acredito que é sempre uma boa prática refatorar o código quando você está modificando / adicionando a um arquivo específico. Isso inclui a atualização do estilo do código para refletir convenções de nomenclatura adequadas para variáveis ​​/ métodos e estilos de codificação.

Wayne Molina
fonte
O OP perguntou sobre reformatação, não refatoração.
51311 quant_dev
Eu sei; Eu disse que eu considero que também incluem reformatar :)
Wayne Molina
2

Eu faço isso toda hora. O código antigo deve ser mantido com os mesmos padrões do novo código e, se você não o consertar enquanto estiver trabalhando, ninguém o fará. Eu acho que isso conta sob a regra dos escoteiros.

RKitty
fonte
2

Eu acho que essa é uma boa prática e uma parte necessária da manutenção do código.

Eu recomendaria verificar as alterações de formatação em um commit no sistema de controle de versão e as alterações funcionais em um commit separado para ajudar você e outras pessoas a entender o que aconteceu.

semaj
fonte
1
+1 para confirmações separadas. Tentar descobrir quais alterações de código foram feitas em uma consolidação quando o código foi reformatado ao mesmo tempo é uma PITA. Suas ferramentas diff são inúteis se todas as linhas do arquivo forem alteradas.
18711 Dave
2

Eu não teria nenhum problema com isso e provavelmente apreciaria ... desde que as mudanças não sejam "religiosas". Por favor, não passe por todas as minhas aulas e mova as chaves para a primeira linha do método. Se a formatação é uma coisa legítima do tipo "traços diferentes para pessoas diferentes", é um pouco chato quando alguém entra e impõe um formato no código que você edita com mais frequência. No entanto, se você se tornar o editor principal desse módulo em particular, faça as alterações de formatação que achar mais adequadas.

Morgan Herlocker
fonte
1

Sim. "Corrija" o código como achar melhor. Assim como os programadores pragmáticos dizem em seu livro O programador pragmático , sem janelas quebradas. Se o código não estiver à altura, considero uma janela quebrada.

mpenrow
fonte
1

Existem vários repositórios que farão a reformatação automática no check-in, além de pequenas coisas como alterar o emparelhamento CR / LF no get dependendo da plataforma que obtém o código-fonte.

Há uma grande desvantagem em fazer suas próprias reformatações, pois seu delta no check-in será ofuscado por toneladas de reformatação e, se houver um problema de regressão, fica mais difícil encontrar os blocos de código incorretos.

Você pode sugerir ao seu líder que, como a base de código é antiga, ela deve ser trazida do frio e reformatada para os padrões atuais de uma só vez, levando a um novo e brilhante futuro para o código em qualquer lugar.

Patrick Hughes
fonte
1

Como você está falando de um problema puramente de "formatação" (o que significa que não estamos corrigindo bugs, mas fazendo com que pareça bastante com seu próprio padrão), acho que depende se a pessoa original ainda está mantendo o código ou não.

Se o autor ainda estiver trabalhando no projeto - é rude. O que pode "parecer" certo para você não é o que "parecerá" certo para eles e a modificação do código para fins de formatação não é educada. Também pode perder muito tempo.

Eu estava trabalhando em um projeto uma vez com um desenvolvedor MUITO possessivo. Ao longo dos anos, desenvolvi uma maneira muito metódica de formatar meu código que considero fácil de ler, menos propensa a erros implícitos e auto-documentada. Esse cara, por outro lado, preferia usar todos os recursos implícitos com longas filas, com 300 caracteres de largura, então você precisava ter um monitor de 30 "para lê-lo, porque acreditava que a contagem de linhas era mais importante que a legibilidade. Ele passou meio dia soprando no meu código, alterando-o para seu "padrão preferido" ... enquanto eu ainda estava desenvolvendo em paralelo! Eu vim na manhã seguinte para encontrar dois dias de trabalho formatados para a bagunça dele.Era rude e uma perda de tempo.

Agora, se o desenvolvedor se foi e você tem um "estilo melhor", vá em frente.

Jordan Parmer
fonte
0

Sempre formate o código automaticamente , se o seu IDE puder fazer isso.

  • Impede que alterações de formatação manual atrapalhem seu histórico de versões a longo prazo
  • O perfil do formatador deve ser acordado entre todos os desenvolvedores (escolha o padrão? -)
  • Crie o código de formatação e a organização de importações um hábito ao salvar um arquivo

Por exemplo, no eclipse, você pode primeiro executar o formatador e organizar as importações para toda a base de códigos. Lembre-se de ctrl + alt + f antes de salvar.

jkj
fonte