Como você codifica sem ofender?


27

O que quero dizer com isso é: como você desenvolve um código que compartilha com os desenvolvedores que trabalham nele há anos e estão familiarizados com isso?

Não quero pisar no pé de ninguém, mas não recebo reclamações tão sutis sobre a maneira como faço as coisas, seja como espaços em branco no meu código ou com que frequência faço check-in no SVN (com muita frequência). Então, embora eu possa mudar essas coisas facilmente - quero ser um desenvolvedor de equipe melhor em geral.

Não tenho certeza do que fazer, além de perguntar, mas talvez vocês tenham alguns pensamentos que eu possa colocar em prática.

ATUALIZAR

Não há nenhum guia de estilo para falar - apenas as pessoas não estão acostumadas a compartilhar a base de código. Todo mundo tem seu próprio mundo de código em silos.

Esta é uma loja perl, mas tenho certeza de que isso se aplica a qualquer idioma

ATUALIZAÇÃO 2

O CTO que mais tarde se tornou CEO era um megalomaníaco completo e era a principal fonte dessas reclamações. Se você não fez as coisas exatamente como ele gostava, se estava usando um Mac, ou Emacs, ou 4 espaços de tabulação em vez de 2 ou se vestia de uma certa maneira, você era inferior. Foi uma situação horrível que tentei corrigir, mas a única resposta correta para mim estava saindo.

Estou convencido de que esse foi um caso de bullying no local de trabalho e, posteriormente, estou mais ciente do que pode ser um bullying sutil e um comportamento inadequado no ambiente de trabalho.

Para qualquer desenvolvedor que esteja procurando respostas para uma situação como essa, saia imediatamente. Você não pode trabalhar em equipe para sair de uma situação ruim de equipe.


3
Eles acham que você verifica o código com muita frequência? Ou muito raramente?
Adam Jaskiewicz

3
No mínimo, a verificação dupla de seus ponteiros impedirá que você ofenda o computador ( xkcd.com/371 )
riwalk

4
Se você codificar em C #, proponha que todos usem o StyleCop. Se você codifica em outro idioma, procura por ferramentas semelhantes. Deixe o software cego ser o árbitro em 80% dos casos.

3
Você não deve verificar as coisas, a menos que esteja "pronto", em uma extensão razoável. Portanto, você deve ter atualizado sua cópia de trabalho para o código mais recente (resolvendo conflitos), construído com êxito localmente e executado testes (ou, se você não tiver testes automatizados, feito seus próprios testes de fumaça para verificar se suas alterações funcionam conforme o esperado e não quebre mais nada) antes de fazer o check-in. Mas se você estiver fazendo isso, e eles ainda sentirem que você faz o check-in do código "com muita frequência", realmente não entendo o que eles querem.
Adam Jaskiewicz

2
Se você está preocupado com a perda de trabalho ou a criação de "pontos de verificação" para trabalhos que possam quebrar coisas, você deve fazer esse trabalho em uma ramificação, não em um tronco. Você ainda pode fazer isso, mesmo que eles continuem trabalhando fora do tronco.
Adam Jaskiewicz

Respostas:


38

Peça. Ou seja, pergunte às pessoas com quem trabalha. Faça o seu melhor para manter o estilo estabelecido do código existente. Pergunte especialmente se há uma lista de documentos de padrões de codificação e siga-a. Se não houver, escreva um primeiro rascunho com base no que você observa no código e peça aos outros membros da equipe que o critiquem. Você prestará um serviço à empresa (e aos novos desenvolvedores que vierem depois de você), começando a documentar as práticas de codificação aceitas. O único risco é possivelmente ficar preso no meio se os veteranos não concordarem entre si sobre o que é ou o que não é aceitável.

Além disso, não tenha medo de ser você mesmo . Você pode ser o cara novo, mas você é um membro da equipe e suas opiniões são válidas. Se você puder pensar em maneiras melhores de fazer algo, sugira-o. Respeite os outros membros da equipe e a maneira estabelecida de fazer as coisas, mas não deixe que eles o pressionem. A empresa não o contrataria se não valorizasse sua contribuição.

Ajudará bastante se você encontrar alguém da equipe que pareça amigável e particularmente disposto a responder perguntas. (Se é uma boa equipe, deve ser todos, mas as equipes nem sempre são assim.) Seu chefe pode ter designado alguém para ajudá-lo a começar. Use essa pessoa como um recurso. Anote as perguntas à medida que elas ocorrerem e, em seguida, peça a essa pessoa útil que as responda de tempos em tempos.

Quanto à verificação do código "com muita frequência", por que não criar sua própria ramificação para suas confirmações periódicas e depois voltar ao tronco quando o código estiver pronto? Ninguém faz mal a ninguém e, quando seus colegas de trabalho vêem você obtendo benefícios do SVN que eles gostariam, eles podem seguir seu exemplo.


14
Uma alternativa à ramificação é usar o GIT localmente. Ele possui uma interface SVN perfeita e eles nunca verão seus commits por hora.
mattnz

4
+1 por ser proativo sobre a criação de um documento padrão de codificação a partir do código que você vê e obter consenso. É absolutamente imprescindível ser criticado por não seguir o estilo de codificação de uma pessoa que não segue o de outra pessoa.
David Harkness

24

Em relação ao espaço em branco: basta fazê-lo, mas o código já o faz. Vá com o fluxo.

Em relação aos check-ins do SVN: documente-os com muita clareza. Isso ajuda as pessoas a entender o que está acontecendo no código. (Acompanhamento: Quais são as objeções deles aos check-ins frequentes?)

Em geral: comece a criar um documento padrão de codificação. Não tente preenchê-lo com 100 regras. Basta adicionar regras conforme elas surgirem.

Além disso: faça perguntas aos seus colegas desenvolvedores. Isso lhes dá a oportunidade de avaliar antes de fazer algo que eles não vão gostar. Além disso, constrói relacionamentos. Além disso, você aprende mais sobre como a loja funciona.


1
Resposta decente, mas não gosto necessariamente do "Vá com o fluxo" no espaço em branco. Se for razoável (mas não exatamente como você faria), sim, siga o fluxo. Mas, como no caso do código que eu vi e não há espaço em branco consistente, o estabelecimento de boas práticas (como sugerido por Caleb) pode percorrer um longo caminho.
JasCav 23/01/12

7

No que diz respeito ao estilo de formatação do código (espaço em branco, guias, onde os chavetas vão etc.), você deve seguir o padrão predominante no código. Se não houver, acho que eles não têm muito do que reclamar. Quando se trata disso, se você coloca chaves na sua própria linha ou não, coloca espaços em torno das listas de parâmetros de métodos, etc. é uma preferência pessoal, e você deve ceder ao estilo predominante, porque a longo prazo, isso realmente não acontece. importa . O que importa é ser consistente.

Quando se trata de verificar código no SVN, eu tentava evangelizar o que considero o caminho certo para fazer as coisas, em vez de me deixar levar pelo vapor. Não faço check-in do meu código, a menos que ele crie e passe nos testes, e se estou fazendo várias alterações não relacionadas, divido meu trabalho em várias confirmações. Se algo ficar quebrado por um tempo, eu crio um ramo e faço meu trabalho lá. As confirmações recebem comentários descritivos. Isso funciona melhor na minha experiência do que o método "verificar uma pilha de alterações na sexta-feira às 5:00" e parece ser a "melhor prática" predominante, de acordo com a maior parte do que li aqui e em outros lugares.


4

Leia primeiro o documento das convenções de codificação (se eles não tiverem um, peça que escrevam um para que você possa segui-lo)

Então observe e faça um esforço consciente para seguir isso e o que eles dizem. Pode parecer que eles estão sendo severos, mas os padrões de codificação são importantes, é melhor apontar agora o que está errado, em vez de deixá-lo se transformar em um problema mais tarde, quando você estiver fazendo alterações maiores.

Tenho certeza de que você fará o mesmo em um ano ou dois quando algum novato estiver pisando no seu pé :)


Sim, eles não têm convenções, apenas não têm novos desenvolvedores há muito tempo.
Qdeninja

1
@ codeninja então como eles podem reclamar se você não os seguir? Eles precisam concordar com um conjunto de convenções antes que possam esperar que você mude a forma como sua codificação. Diga-lhes que
Tom Squires

esse lugar era um pesadelo, o CTO que mais tarde se tornou CEO era um megalomaníaco completo. Se você não fez as coisas exatamente como ele gostava, se estava usando um Mac, ou Emacs, ou 4 espaços de tabulação em vez de 2, ou se vestia de uma certa maneira, você era inferior. Pesadelo total.
Qodeninja

Percebo que você usou o pretérito. Navio saltou? :)
Tom Squires

3

Peça os padrões da empresa. Preste mais atenção aos detalhes. Se você vir outras pessoas seguindo uma forma muito específica de espaço em branco e padrões de chaves, siga-as. Como Sr., você pode argumentar que isso é exigente, mas como Jr. ou novato em um projeto, você precisa mostrar que pode seguir antes de liderar.

Além disso, entenda que qualquer novo desenvolvedor de um projeto terá um tempo necessário para "acelerar". Então não se preocupe com isso.


1

A melhor coisa que você pode fazer é seguir os conselhos que eles lhe dão. Não há como dizer com antecedência o que eles querem. A menos que você seja psíquico.

No entanto, eu sugeriria que, conforme as pessoas o aconselham, você o documenta. Você tem um wiki? Se sim, use-o. Caso contrário, um arquivo de texto registrado com o código-fonte pode ser uma boa ideia. Crie um guia de programação bem organizado. Isso ajudará você a se lembrar de como fazer as coisas e, se alguém contradizer os conselhos anteriores que você recebeu, fornece um ponto de referência para discutir a inconsistência. Além disso, quando a próxima pessoa se juntar à equipe, ela não terá que passar pelo que você está passando.

Eu sugiro que você não atribua o conselho no documento a indivíduos (portanto, "os blocos de código devem ser recuados por três espaços", não "Bill me disse que os blocos de código devem ser recuados por três espaços"). No entanto, se você puder registrar essas informações de maneira discreta (por exemplo, no comentário de confirmação, escreva "regra adicional sobre indentação com base nos conselhos de Bill"), poderá ser útil para resolver contradições, pois é possível obter imediatamente dois pontos de vista Em algo. O que estou pensando aqui é que, se você receber conselhos contraditórios, precisará evitar se tornar uma bola de futebol sendo chutada por dois colegas que discordam de algo. É uma abordagem um pouco disfarçada, mas pode ser prudente.


0

Uma maneira fácil é encontrar o guia de estilo e segui-lo. A maioria não tem nada muito ofensivo, e impedirá que você ofenda os outros.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.