Como você trabalha com um programador com um estilo de codificação radicalmente diferente? [fechado

StackOverflow https://stackoverflow.com/questions/2146940

  •  23-09-2019
  •  | 
  •  

Pergunta

Alguém já trabalhou com um programador com um estilo de codificação radicalmente diferente? Como vocês se juntam sem querer excluir e reescrever o código um do outro?

Foi útil?

Solução

Escolha um e vá com isso.

Se você está achando difícil concordar, reserve um tempo para listar prós e contras, incluindo:

  • Suporte à ferramenta para formatação automática (De maneira judicial, sei que o Eclipse e o Visual Studio podem fazer isso com um arquivo de configurações)
  • conformidade com o padrão geral da indústria (A Sun publicou convenções padrão para Java, talvez haja um equivalente em seu idioma?)
  • conformidade com ou custo da fonte de modificação e pré-existente (Se você tem um milhão de linhas em um estilo, quão difícil será atualizar esse código para o novo estilo?)
  • ... qualquer outro fator que qualquer um de vocês ache é importante (Isso pode incluir o custo para se familiarizar com o novo estilo)

Se você se encontrar trabalhando com alguém muito teimoso para mudar e se adaptar, bem, você tem um problema maior do que o estilo de código de conflito e lidar com isso está fora de escopo para esta pergunta.

Se você é a pessoa para adaptar seu estilo, evite a afirmação "bem se tivéssemos escolhido minha Way ... ". Se você concordou em um único estilo, se comprometa totalmente com ele.

Antes de chegar a esse ponto, você provavelmente deve se perguntar: quais são os benefícios de ter código consistente? Você pode achar que o custo de código consistente (irritante o outro desenvolvedor) não vale o benefício.

Outras dicas

Concordamos em um estilo de codificação padrão e aplicá -lo na forma de arquivos de configurações do Visual Studio.

Essa é uma questão de comunicação humana. Apenas fale um com o outro. Não através do código, pessoalmente.

Comunicar com o outro desenvolvedor. Concordo com um estilo de codificação que combina o melhor dos dois mundos?

Quando você diz "estilo de codificação", você quer dizer formatação ou uma diferença na maneira como estrutura seu código?

Quanto ao estilo de codificação, a equipe provavelmente deve ter um formatador de estilo e aplicar algum tipo de formato antes do comprometimento. Dessa forma, a função não enlouquece a fusão.

Para a diferença estrutural no código, receio que não haja solução fácil. Se alguém for um codificador de espaguete de núcleo duro, versus um codificador de objetos fanáticos, você terá que se sentar em uma mesa e discutir as duas abordagens e como elas se aplicam em seu projeto específico. Lembre -se de que não há resposta absoluta, tudo depende do contexto. Tente também recorrer a alguém que respeita a recomendação das melhores práticas, faça a revisão do código para validação de código e ajude a determinar uma abordagem comum (líder técnico ou PM de tecnologia).

  • Usando o IDE em combinação com plugins de verificação de estilo (no caso Java - Checkstyle, PMD), o líder da equipe, ou mesmo o gerente de projeto (se uma pessoa técnica) pode forçar as diretrizes de estilo de código sobre toda a equipe.

  • Basta ignorar o estilo dele - eu trabalhei em projetos Java, onde alguns desenvolvedores estavam colocando os colchetes encaracolados em uma nova linha e tendiam a esquecer os espaços onde geralmente são necessários - e não tive nenhum problema com isso após a semana do punho.

  • Discuta os estilos de código e o compromisso e aplique os recursos do IDE mencionados no primeiro ponto.

Vou responder sobre as "habilidades sociais" necessárias para se dar bem com alguém que tem um estilo de codificação muito diferente que eu. Geralmente tento me concentrar em três princípios simples; profissionalismo, confiança e ego.

Em termos de profissionalismo, é simples inaceitável simplesmente reescrever ou excluir o código de alguém porque o estilo deles é diferente do seu. Uma abordagem profissional seria primeiro entender por que considero minhas idéias/estilo/preferências melhores. Então eu esperaria sentar com a outra pessoa e discutir meus pontos e, aqui está a parte importante, mantenha a mente aberta. Só porque gosto da minha ideia não significa que ela está certa ou correta. Um verdadeiro profissional estará capaz e disposto a aceitar que outras idéias são igualmente valiosas e vêm de uma perspectiva diferente.

Pessoalmente, preciso confiar em meus colegas desenvolvedores. O velho ditado é que a confiança deve ser ganhada não trazida e isso é verdade para o desenvolvimento de software. A confiança pode ser construída a partir de uma variedade de fontes, como compartilhar informações, idéias e código. Uma equipe produtiva geralmente tem um nível implícito de confiança entre seus desenvolvedores.

Uma das principais razões pelas quais as pessoas não se dão bem é o ego. Nossos egos nos permitem nos sentir ameaçados, superiores, envergonhados e uma variedade de outras emoções humanas. Deixar nossos egos de lado e falar sobre nossos problemas com a outra pessoa é sempre um bom começo.

Sua O estilo de codificação não é a norma. Dele O estilo de codificação não é a norma. o Norm é o estilo de codificação escolhido pelo projeto ou, às vezes, toda a organização (e que deve ser documentada em algum lugar) e vocês dois precisam cumprir. Ferramentas como o CheckStyle (com Java) podem ser usadas para garantir a conformidade. Se você usar essa ferramenta, distribua seu arquivo de configuração. Distribua também arquivos para a configuração de formatação de IDES.

Muitos projetos de código aberto (ou corporativo) usam esses princípios (veja por exemplo o Xwiki's Estilo de código Java, Convenções de código e código do MAVEN ou Guia de estilo de linguagem C dos desenvolvedores da Apache). Isso funciona para desenvolvedores distribuídos em todo o mundo, não me diga que isso não pode funcionar para os desenvolvedores em uma mesma sala.

Se o seu projeto não tiver padrões de código, talvez seja hora de definir alguns e eu só espero que você possa fazê -lo como dois adultos (na verdade, isso deve ser uma decisão de equipe). Se necessário, lembre -se por que um estilo de código unificado é importante (para uma melhor legibilidade, para o DIFFS). Se, infelizmente, isso não funcionar, faça um chefe decidir por você.

Eu tenho que trabalhar com desenvolvedores todos os dias que têm estilos de codificação muito diferentes para os meus e, como desenvolvedor, você aprende a lidar com isso.

Você tem 4 opções, - você as converte - você é convertido - você propõe um padrão da empresa. - Você vive com isso.

Se for algo como precender a variável com o tipo, argumente o ponto de que uma variável deve ser descritiva o suficiente para que ele possa ser inferido.

PersonName vs Spersenname vs strperSonname <- Qual você escolheria?

Se você quer dizer formatação, Ctrl-A, Kf <-formata seu código bem em vs :)

Acho raro que haja apenas um outro desenvolvedor com quem eu tenho que concordar com estilos de codificação e que diferentes grupos ou projetos têm estilos diferentes. Você precisa aprender a se adaptar a diferentes estilos de codificação.

Se houver apenas dois de vocês, há apenas dois de vocês que precisam concordar com o estilo de codificação comum que você usará.

Se você não pode concordar com um estilo de codificação, basta lidar com isso. Tente trabalhar de uma maneira que seja produtiva - e isso significa que não reescreverá o código da outra pessoa apenas para fazê -lo corresponder ao seu estilo.

Pode haver alguns aspectos estilísticos que são problemáticos e é melhor focar neles. O estilo pode facilmente se transformar em uma discussão religiosa, por isso geralmente é mais eficaz se concentrar em argumentos quantitativos ou empíricos para mudanças. A elegância e a beleza física do seu código podem não vencer o argumento - mas mostrar casos em que uma mudança estilística teria se afastado desnecessário, pode ser eficaz.

Depende.

Se o outro desenvolvedor não é particularmente fácil, então eu tendem a usar o estilo de programação deles, mesmo que eu não concorde com ele, em vez de forçar o problema - neste caso, é realmente uma questão de O que é mais desconfortável, o estilo de codificação ou a dor que vou ter ao fazer um barulho?

Se o outro desenvolvedor for mais aberto, eu posso discutir coisas como padrões de codificação / nomeação (espero que coisas como a arquitetura geral sejam discutidas de qualquer maneira)

Você terá que inventar algum estilo adequado para vocês dois e cumpri -lo. E se a comunicação é um problema, fique com uma idéia: "Quando escrevo o meu, não toque no outro código"

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