Dev (Back & Front)ARTIGO

Mais do que só estilo

O PHP CodeSniffer é uma ferramenta super simples para implementar e reforçar um padrão de codificação.

O PHP CodeSniffer é uma ferramenta super simples para implementar e reforçar um padrão de codificação. A instalação básica vem acompanhada de alguns padrões de codificação existentes, como PEAR. Um pode facilmente corrigir um padrão de codificação com um subconjunto de sniffs de quaisquer padrões de codificação existentes. É até bastante simples escrever seus próprios sniffs no evento de um sniff já existente que não está muito correto..

Os padrões de programação podem ser controversos em muitos níveis. Muitos discutiram sobre qual padrão existente usar. Alguns entraram em discussões sobre quais aspectos retirar a partir de vários padrões de codificação e colocar em um novo. Outros argumentaram sobre invocar um novo padrão de codificação que muitas vezes leva a argumentos leigos sobre onde ter whitespace e quantos caracteres por linha. Por outro lado, muitos argumentam que discutir sobre o que deve haver em um padrão de codificação é desperdiçar tanto tempo que não poderia haver uma maneira de implementar e aplicar um padrão de codificação que poderia ajudar. Supondo que você possa estabelecer um padrão de codificação, reforçar o padrão em uma base de código legado pode ser ainda outro obstáculo.

Muitos percorreram o caminho de escolher um padrão de codificação e, então, tentaram aplicá-lo em uma base de código legado com o PHP CodeSniffer tendo um resultado muito característico de abandonar toda a noção de um padrão de codificação devido ao aparente número insuperável de erros.

Vitória dos céticos! Não tem como existir qualquer benefício possível em perder tempo consertando todas essas violações padrão de codificação! Afinal, é só estilo!

O argumento geral para ter um padrão de codificação é que ter um estilo de codificação comum permitirá ao programador se concentrar mais no problema e menos na formatação do código.

Os padrões de codificação geralmente se parecem apenas com estilo, mas o estilo pode ser útil além da redução das distrações ao implementar novas funcionalidades. Por exemplo, não permitir whitespace supérfluos pode ajudar a manter seu arquivo de histórico mais limpo, pois você não terá commits que contêm apenas alterações acidentais para esse tipo de whitespace.

Os padrões de codificação são normalmente referidos como guias de estilo, mas o PHP CodeSniffer também possui vários sniffs que podem te salvar de erros de análise, como a verificação de propriedade duplicada, parâmetro e nomes de classe. Existem outros sniffs que podem salvá-lo de possíveis erros de execução, como o sniff que detecta incrementos misturados em loops.

Há também sniffs que podem ajudá-lo a descobrir onde o código é complexo e suscetível a muitos bugs, como os sniffs do nível de alojamento e complexidade ciclomática.

Não atualizou para o PHP 5.4 ainda? Alguém escreveu um padrão de codificação para isso!

Você não é fã de um determinado construtor de linguagem? Você poderia escrever um sniff para isso, também!

Os padrões de codificação reforçados com PHP CodeSniffer podem ajudar muito mais do que o estilo, então como podemos ir além do número insuperável de erros?

Comece escolhendo alguns sniffs que você gostaria de incluir em seu padrão de codificação e veja quantas violações você possui. Se você tiver um número pequeno de violações para um determinado sniff, descarte e reforce esse sniff. Se você encontrar um sniff com um grande número de violações, mas não muito assustador, então considere distribuí-lo pela sua equipe para que ela possa corrigi-lo usando um hook de pre-commit ou organizando um “Dia do reparo”.

Alguns sniffs podem resultar em um número ridículo de violações. E é aí que você vai precisar parar e pensar: vale a pena reforçar isso? Será que vamos nos arrepender de fazer algo um pouco diferente desse sniff ? Não é uma coisa horrível escrever o seu próprio sniff, pois é possível que haja algum aspecto de um padrão de codificação que já é mais dominante em seu código do que o que você preferiu ao escolher as peças do seu padrão. Talvez seja melhor manter esse aspecto do seu estilo já existente intacto ao invés de modificar. Além disso, alguns dos sniffs atuais contêm nuances escondidas, que podem não ser para você.

A partir daqui, você deve observar o número de violações para que os sniffs não impostos atualmente caiam e, eventualmente, apenas corrigir o restante e adicionar os sniffs com seu padrão de codificação aplicado. Pode levar algum tempo, mas tenha certeza de que sua base de código está ficando muito melhor.

***

Texto original disponível em http://phpadvent.org/2011/more-than-just-style-by-laura-beth-denker

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil