Lidando com palavrões no código fonte [fechado]


34

Como as pessoas lidam com palavrões no código fonte e nos comentários do VCS. Manter ou excluir?

E quanto aos palavrões como WTF ou Arrgggh?

Não é profissional, ofensivo ou algo a ser descartado?


15
Caso a caso ... os comentários são uma avenida para a personalidade de um desenvolvedor. Assim como você precisa lidar com N tipos de personalidades, também precisa lidar com N tipos de comentários que prejudicam a personalidade dos desenvolvedores. Como você lida com um desenvolvedor usando palavrões à medida que interage com eles via IM, email, verbalmente?
Aaron McIver 23/02

10
Eu tive que dizer a alguns desenvolvedores Jr. antes para não colocar palavrões nos comentários. IMHO é muito pouco profissional. Se você não juraria na frente de seus colegas de trabalho ou clientes, por que jurar em comentários / código? E se você jurasse na frente de seus colegas de trabalho e clientes ... então você tem um ambiente de trabalho muito mais descontraído do que eu. :)
Tyanna

4
@Tyanna: No meu último local de trabalho, éramos um pouco racistas! Se você pode chamar assim. Eu acho que a correção política é terrível entre os colegas de trabalho que se vêem dia após dia. Você ficaria com medo de contar uma piada racista para alguém que você vê 10 horas por dia? Por outro lado, eu moro na Bolívia - acho que os EUA têm uma mentalidade muito mais processa - isso, processa - e é por isso que ninguém quer pisar no pé.

4
@ Anna Lear: Nunca alguém sendo processado na Dinamarca por contar uma piada picante. Os EUA, no entanto ... É tudo uma questão de em que tipo de ambiente você está trabalhando. Os EUA têm mais peso nos drones de RH que monitoram tudo.

10
Basta fazer um grep f.ckno código fonte de um kernel Linux. Se é bom o suficiente para eles, é bom o suficiente para mim. Mas nunca coloque algo ofensivo em lugares onde há a menor chance de os clientes encontrarem. Fiz isso uma vez e, felizmente, conseguimos fazer a atualização no último minuto, mas não foi divertido. (Bem, na verdade, foi depois.)
biziclop

Respostas:


41

Deve ser suavemente desencorajado

..você não pode saber quem poderá ver o código fonte ao longo da sua vida.

Embora seja parte do trabalho frustrar-se com um pedaço de código particularmente complexo ou antigo e que queira falar sobre isso, colocar comentários de palavrões / ofensas / arte ASCII / piadas ruins / ofensivas no código-fonte não é profissional e má ideia na minha experiência. Às vezes, o engenheiro que está escrevendo os comentários ignora os possíveis efeitos que seus comentários poderiam ter - aqui estão apenas alguns dos problemas que eu vejo:

  • Um alto número de palavrões no código divulgado ao público como código-fonte aberto / de exemplo.
  • Piadas de mau gosto que causam ofensa profunda a alguns membros da equipe, resultando em tribunal industrial.
  • Observações de descarte que eram realmente racistas / sexistas / de gênero, fazendo com que as pessoas fossem demitidas.

Embora todos precisemos ter algumas saídas para frustração / diversão / diversão, o código fonte não é o lugar para isso, IMO. Você não colocaria palavrões / piadas / comentários ofensivos em um contrato, páginas de ajuda, projetos ou outro documento profissional, mesmo que esses documentos possam ser lidos com menos frequência do que o código-fonte.

Se os líderes de equipe se importarem com isso, vai ficar chateado, então eu digo 'suavemente desencorajado' por meio de uma palavra silenciosa com os engenheiros de problemas e forneci mecanismos de ventilação adequados para desabafar, seja Facebook, mensagens instantâneas , air hockey ou um saco de pancadas.

Não é nenhuma defesa dizer que os comentários também são compilados - e o JavaScript ou qualquer outro código dinâmico do lado do cliente?

Aqui estão algumas das experiências do mundo real que tive que moldaram minha opinião:

  • Enquanto trabalhava na Microsoft, vi que um engenheiro de software não sabia a grafia correta de "não podia" - ele perdeu o o, le de - e havia apimentado muito do seu código com longas explicações sobre como não podia faça o X funcionar porque a pessoa Y estava causando o problema Z. O código dele era ótimo; a ortografia dele não era tão boa. Basta dizer que qualquer revisor subsequente deste código (por exemplo, eu) ficou alarmado ao ver um grande número de palavrões aleatórios no código. Parte desse código passou a ser mostrado aos parceiros (escritores de drivers). Imagine o horror deles ao ver os palavrões. Idealmente, os discursos deveriam ter sido dirigidos ao gerente do projeto na forma verbal (nesse caso, a pessoa Y pode ser convidada para a discussão) ou talvez enviar mensagens, mas não na fonte.

  • Em uma empresa, um indivíduo de língua estrangeira ingressou em uma equipe de língua predominantemente inglesa. Ele escreveu comentários em seu idioma, pensando que ninguém mais poderia lê-los. Tudo bem, até Babelfish / Google Translate lançar uma opção 'para inglês' para o seu idioma, quando o resto da equipe traduziu alguns comentários e ficou horrorizado com os comentários sujos e muitas vezes depreciativos que o cara estava fazendo sobre a empresa , sua equipe e uma colega de trabalho. Estranho .

  • Em outra empresa, um cara realmente se interessou pela arte ASCII e colocou todo tipo de arte em seu código-fonte, sem manchas (ou talvez abençoado) pelos revisores de código. Depois de um tempo, ele se voltou para os dragões, por algum motivo, geralmente com algum tipo de slogan. Mais tarde, um galês se juntou à equipe. O emblema nacional do país de Gales é um dragão vermelho, então o novo cara ficou inicialmente alegre com as fotos, mas depois se ofendeu quando algumas das frases tolas poderiam ser interpretadas como ofensivas. Sim, é necessária alguma mediação do líder da equipe, mas isso não deveria ter acontecido.


Nomes / detalhes removidos para proteger os inocentes.


1
Eu acrescentaria que a profanação no seu sistema de rastreamento de defeitos também não deve ser incentivada. Tendo estado na posição de solicitar a um remetente que edite seus comentários para remover a profanação, posso dizer que essa não é uma posição agradável para um supervisor / líder de equipe / gerente. Especialmente quando eles recusam.
2741111

@quickly_now, como você lidou com essa situação?

Eu perguntei novamente. Quando a pessoa recusou novamente, eu mesmo editei os comentários para higienizá-los. Não achei que valia a pena passar pelo processo de aconselhamento / disciplina (etapa 1 que leva à demissão), mas também relatei ao meu chefe o que havia encontrado e feito. Todos concordamos que não iria além se não fosse repetido (e não foi repetido). Não tem graça. [Devo acrescentar ainda que os comentários profanos foram relatados a mim por outro membro da equipe que estava preocupado. Isso fez com que meu problema fosse resolvido. Às vezes altos cargos não valem o extra $ !!!]
quickly_now

"mas ofendeu-se quando algumas das frases bobas puderam ser interpretadas como ofensivas". Você teria que ser uma pessoa MUITO perturbada para se ofender com a imagem de um dragão, porque você é galês.
Roteamento de milhas

24

Se você está vendendo seu código fonte (ou seja, você é um escritor de componentes), provavelmente não deve estar lá.

Se é uma questão de pudor, então, seja qual for, depende de você.

Se você vir alguém escrevendo muitos WTFs, talvez seja um sinal de que você deve conversar com eles sobre os problemas que eles estão tendo.

Se alguém está direcionando sua agressão ao código de outra pessoa, pode estar assediando essa pessoa e você tem uma situação completamente diferente para lidar. Talvez eles tenham uma reclamação legítima e não saibam como expressá-la adequadamente. Talvez eles sejam apenas um idiota.

Não seria aconselhável ter apenas algum tipo de filtro de conteúdo, o que quer que um desenvolvedor escreva é importante e diz muito sobre como as coisas estão indo.


1
+1 no que diz respeito a não vender código-fonte com carga explosiva. O código deve ser cuidadosamente inspecionado para esses comentários antes de ser entregue.
FrustratedWithFormsDesigner

2
Comentários rudes definitivamente não são uma boa idéia se você é um desenvolvedor de HTML. :)
biziclop

@ Bizclop, o que é lamentável, porque o HTML é uma linguagem tão frustrante quanto possível. Confira o link do the Jinx sobre taxas de palavrões na fonte. olhares como Javascript está empatado em primeiro (não sei se isso inclui acidental minified javascript cussing)
Peter Turner

Nosso filtro de conteúdo simples em execução no jenkins teve um problema com isso: void pushItem (...
sal

17

Eu trabalho para uma empresa da Fortune 500 que projeta, fabrica e vende produtos de consumo que possuem µControllers executando código desenvolvido internamente. O contencioso é sempre uma possibilidade, seja de consumidores que esperam enriquecer rapidamente ou de concorrentes que alegam violações. Por esse motivo, escrevemos nosso código e TODOS os comentários com o conhecimento de que ele pode (provavelmente) estará sob o escrutínio de jurados hostis em algum momento. Isso significa que nomes de variáveis ​​e funções não devem incluir termos incitosos, como KILL_CHILD(int process_id). Embora o objetivo desta função de exemplo possa muito bem ser encerrar processos filhos, como um júri hostil visualizaria esse nome de função se o filho do demandante fosse morto ao usar o produto?

Comentários no código podem ser ainda piores. Embora uma equipe de defesa decente provavelmente consiga explicar o que é um processo filho (do exemplo anterior) e por que ele precisa ser encerrado, seria quase impossível se defender de um comentário como:

// The following section of code is REALLY BAD!!!  I hope
//  it doesn't burn anybody's house down.

Comentários imediatos como esses têm sido fatores decisivos em processos judiciais reais.

Em um tópico relacionado, os nomes dos projetos também podem ser prejudiciais quando sob o microscópio de litígios intensos. Você se lembra do alvoroço dos grupos conservadores em meados dos anos 90, quando fontes de notícias de tecnologia relataram "SATAN UNLeashed On The Internet" ?

<rant_mode_off>

Com tudo isso dito, para projetos pessoais, você é livre para fazer o que quiser no seu código.


1
+1 por apontar o aspecto mais perigoso desse comportamento NÃO PROFISSIONAL. Trabalhei em equipes de "due diligence" que revisaram o código fonte das empresas nas quais o F500 em que trabalhei estava prestes a comprar. Procuramos esse tipo de coisa pelas razões mencionadas e fez diferença quem foi oferecido emprego contínuo e quem não fez quando a fusão foi concluída. Especificamente, uma empresa grande (bolsos profundos) não compra uma empresa pequena para herdar ações de assédio / ambiente de trabalho hostil, de modo que os infratores sejam denunciados / despedidos quando a compra for concluída.
23411 kloucks

5
KILL_CHILD é apenas um exemplo absurdo. E eu gostaria de ver a citação em "Comentários indiretos como esses têm sido fatores decisivos em processos judiciais reais". (Eu não estou dizendo isso como um STFU ... Eu realmente gostaria de ler a citação.)
Wolfger


1
"Isso significa que nomes de variáveis ​​e funções não devem incluir termos instigantes, como KILL_CHILD" Essa é a coisa mais estúpida que eu já li e você deve ter vergonha de sugerir que KILL_CHILD é um nome ruim para uma função.
Roteamento de milhas

9

Se isso te incomoda e você é o chefe de honra, não vejo por que você não conseguiu implementar uma regra sobre isso. Você é afinal o líder nessa situação hipotética.

No entanto, se isso apenas incomoda você e mais ninguém parece se importar, talvez você deva apenas aceitar.


Aqui está a coisa: eu não "sugar" as coisas.
gnasher729

7

Talvez eu não seja a pessoa certa a perguntar, já que geralmente uso palavrões leves.

Eu acho que depende principalmente de quão PC (politicamente correto) é o seu ambiente.

Se eu codificasse para uma empresa de terno e gravata, tentaria não usar palavrões, mas se for para um projeto de hobby ou algo do tipo, tendem a falar mais livremente.

Parece-me que nos EUA e em alguns outros países as pessoas são muito mais PC (ou atoladas) do que na Holanda onde moro e trabalho.

Como um bônus adicional, aqui estão algumas estatísticas sobre palavrões no código: http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/


1
Eu acho que é mais dependente do setor - em um ambiente de alta pressão como finanças, palavrões são comuns.
JBRWilkinson

também é altamente dependente do que você considera "palavrões". Como no artigo vinculado, "lol" e "rofl" foram escolhidos como palavrões, quando a maioria de nós acho que não os classificará como tal.
Jwenting

Não se trata de PC - é sobre o uso apropriado da linguagem (você pode não ser totalmente um PC e ainda optar por não usar palavrões - você pode ser profundamente ofensivo e rude e ainda não usar palavrões). Ele precisa ser pensado em termos de não ofender indevidamente - indevido porque quase tudo é ofensivo para alguém - mas a maioria de nós sabe onde está a linha e geralmente jura que as palavras estão do lado errado. A restrição nessa área é útil - se você não xingar muito ou com frequência, então quando as pessoas tomam conhecimento ...
Murph

6

Estou inclinado a concordar que isso pode ser pouco profissional, mas todo mundo xinga de vez em quando, então tento não defender isso contra os outros. Dito isto, a base de código tende a refletir o profissionalismo geral do grupo, de modo que uma base de código carregada explicativa possa refletir um grupo não profissional e uma reunião talvez precise ser para "aplicar algum polimento" ao grupo. Da mesma forma, se certas tendências aparecerem no código, pode ser um indicador de problemas gerais dentro do grupo que precisam ser resolvidos (ou seja, a API com a qual você está trabalhando tem problemas que frustram os desenvolvedores).

Em termos de base de código, geralmente editarei o comentário relevante para ser seguro para o trabalho e deixarei assim. Dependendo do idioma com o qual você está trabalhando, é sempre uma boa idéia, pois você nunca sabe o que pode aparecer na frente de um cliente ou cliente.


3
+1, Interessante, eu não tinha pensado em usar padrões de aparências palavrões para rastrear a frustração com funções / bibliotecas específicas.
FrustratedWithFormsDesigner


5

Isso não é profissional, ofensivo ou algo a ser descartado?

Possivelmente todos os três ... dependendo do seu ponto de vista.

É da natureza humana que as pessoas se expressem usando "linguagem colorida" em determinadas situações. Mais em algumas culturas do que em outras, e em algumas pessoas mais que em outras. Mas a tendência é universal.

Se eu fosse você, eu daria de ombros a menos que você esteja disposto a se tornar impopular com seus colegas de trabalho.

No entanto, se os comentários sobre o código-fonte / VCS forem publicados fora da sua organização, seu gerenciamento poderá adotar uma linha mais forte, considerando que é ruim para os negócios ofender seus clientes.


A chave aqui é "em determinadas situações" - ou seja, quando apropriado e aceitável. Eu acho que é razoável sugerir que comentários (codifique ou confirme) não são lugares realmente aceitáveis ​​e, portanto, não são apropriados.
Murph

5

Um dos problemas com palavrões é que é diferente de cultura para cultura. Nos EUA, coisas inocentes tendem a ser "bipadas", enquanto em outros países você costuma ouvir o mesmo idioma trocado nas discussões do parlamento.

A profanação de códigos e comentários de confirmação é bastante comum, provavelmente devido à visão "ninguém vai vê-lo". Eu acho que é realmente mais comum agora que a maioria das organizações proíbe os ovos de páscoa.

Pessoalmente, acho que coisas que não são voltadas para o cliente (como materiais de confirmação internos) não são um grande problema.

No entanto, a maioria das grandes multinacionais é administrada por departamentos jurídicos e "locais de trabalho seguros" e tudo mais, o que significa que qualquer coisa que possa ser ofensiva para pelo menos uma pessoa é um problema e uma possível causa de demissão. Detesto admitir, mas tenho tendência a me curvar aos regulamentos daqueles que pagam meu salário.

Uma solução rápida para esse problema é instalar um filtro de palavrões em seu sistema de controle de origem (como um script de pré-envio ou uma verificação regular).


2
Eu tenho que discordar da sua sugestão de um filtro automático de palavrões. Em primeiro lugar, você corre o risco de se deparar com o problema de Scunthorpe e, em segundo lugar, como Stephen C diz, a profanação é provavelmente um sintoma de outro problema e a proibição de que isso não seja corrigido magicamente.
23711 Scott

2
+1 Para o filtro de palavrões, mas é importante para evitar o "erro clbuttic" ( thedailywtf.com/Articles/The-Clbuttic-Mistake-.aspx )
rjzii

filtros de palavrões não funcionam. Eles tendem a bloquear coisas inocentes e deixar que coisas ruins passem. Eles também tendem a ser fáceis de contornar.
Jwenting

cntd. Faço moderação em um fórum de fotografia da natureza. Quando os administradores decidissem instalar um filtro de palavrões, todas as discussões sobre castores, gatinhas de estimação, pássaros etc. seriam censuradas. Antes de ser removido novamente, os usuários começaram a desenvolver maneiras de contornar o filtro. Se você não pode falar sobre sua viagem para atirar em castores (oops, três palavrões em uma frase curta), você fala sobre seu tr.ip para sh.oo.t be.ave.rs, por exemplo, e o filtro seja muito stu.pi.d (outra palavra que foi banida) para capturá-la.
Jwenting

Para mim, o argumento de evitar filtros de palavrões "porque muitos deles são péssimos" faz tanto sentido quanto evitar filtros de spam, higienizadores de sql, etc. Existem opções decentes de terceiros por aí. Se você usar apenas regexps, você é SOL.
Uri

3

Eu acho que está tudo bem, desde que não esteja fora de controle, como jogar bombas lá. Eu vi um cara com quem trabalho escrever um script entre dois personagens discutindo os vários objetos que cada um representa. Houve um comentário multilinha que durou 30 linhas desses dois personagens conversando entre si.

/ * * igor: devo me tornar um mestre público? * Frankenstein: ah igor, herdarei suas melhores características ... * /

Continuou assim por um longo tempo. Ele criou dois objetos chamados, você adivinhou: Frankenstein e Igor como parte de uma verificação de sanidade. Foi realmente muito criativo, mas uma perda total de tempo. Eu preferia ter visto alguns WTFs ou palavrões do que um roteiro entre dois objetos C # ...


Isso é engraçado. Improdutivo, mas engraçado.
Paul Nathan

@Paul: Ha! Desculpe, sim - não é muito produtivo, mas foi ridículo ver esse dia vendo um código.
Nodey The Node Guy

2

Depende da cultura da empresa / cliente. Por exemplo, se você estiver desenvolvendo software da Bíblia, palavrões de qualquer forma são definitivamente indesejáveis. Por outro lado, um desenvolvedor de jogos pode não se importar tanto (ou ir para o outro extremo).

Estou sempre ciente de que quaisquer comentários (no código ou confirmações) devem ser úteis . Certas palavras chamam nossa atenção mais do que outras - palavrões, mesmo a variedade suave, são definitivamente notados. Pode ser útil chamar atenção para algo que está completamente errado, mas você ainda não tem como contornar isso.

Dito isto, não uso palavrões, mas ocasionalmente usarei coisas como "Doh!" ou "Hein?" que não é muito diferente em espírito. Se isso o incomoda, converse com o agressor - ele pode não estar pensando. Se eles disserem para você fazer uma caminhada e você se sentir fortemente a respeito, vá até o gerente. Se você não obtiver apoio do gerente, precisará aprender a conviver com ele ou a outro lugar.


Desculpe, o que é "software da Bíblia"? (não um nativo inglês aqui).
Rook

2
A Bíblia é onde a doutrina cristã é escrita. O software da Bíblia é um software que os cristãos podem usar para examinar o texto em diferentes traduções, procurar o que os estudiosos disseram sobre uma certa passagem e, em geral, estudá-lo. Uma escritura fala sobre "Não saia da sua boca comunicação corrupta", que é o inglês antigo para não xingar ou falar sobre coisas que derrubam as pessoas. Tenho certeza de que existem outras aplicações religiosas nas quais a maldição seria igualmente indesejável.
Berin Loritsch 23/02

3
Cristãos desmontam executáveis ​​para procurar palavrões na fonte?

Erm, os comentários não são compilados para que nem funcionem;)
the JinX

5
Então, se eu escrever um software bíblico, devo censurar todas as coisas obscenas da Bíblia?
Wooble 23/02

1

Bem, não sei exatamente o que mais você deve dizer sobre código como este:

tocommit = (n + (COMMITSIZE/PAGESIZE) - 1) & ~(COMMITSIZE/PAGESIZE - 1);

Esse código foi extraído de uma base de código real e extremamente suja que tenho tentado otimizar recentemente. (O código é de código aberto, por isso não estou revelando os segredos de nenhum empregador aqui nem nada.)


3
Mate esse sumbitch com fogo e um ímã!

1

Como outros já disseram, depende do local de trabalho e de quem verá o código-fonte.

Se eu estivesse vendendo o código-fonte, teria um segundo repositório apenas de versões lançadas e não permitiria nenhum comentário de check-in lá fora de uma descrição do que cada nova versão fornece. O que faço no dia a dia e todos os meus erros estão entre mim e minha equipe, não meus clientes.

Atualmente, meu servidor de compilação relata OMG, WTF, kludge, mess e TODO comentários como uma métrica da limpeza restante, para fazer isso agora e faz parte do processo.


1

Se você perceber palavrões no software de código aberto e quiser se livrar dele, prepare-se para a possibilidade de retroceder. Não basta escrever um relatório de erro de três linhas e esperar que seja aceito. Escreva um mini-ensaio explicando por que os palavrões e a linguagem discriminatória são ruins e evite as refutações.


0

Eu acho que é uma questão de preferência pessoal. Essa coisa realmente não me incomoda, então eu provavelmente a deixaria. Pode até me dar uma dica de onde estão as áreas problemáticas no código.

Eles te incomodam ? Pelo fato de você estar fazendo essa pergunta, acho que sim. Nesse caso, remova-os ou limpe-os em comentários mais apropriados sobre o que está errado.

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.