Por que você precisa de sniffers de código para desenvolvimento da Web
A otimização de código é comparável à fase de edição de uma escrita. Você pode primeiro precisar colocar suas idéias no código, mas seu código deve ser otimizado com ferramentas como sniffers de código para produzir o melhor produto possível.
O sniffing de código é um termo que descreve verificação de código para conformidade com padrões regulatórios. Essas regulamentações podem especificar o número de espaços a serem usados para recuo, o posicionamento de chaves ou como nomear variáveis. Padrões não são vitais para construir um aplicativo da Web, mas os padrões são importantes para consistência interna e manutenção de código.
É aqui que o sniffing de código é útil para todos os desenvolvedores, frontend to backend. Eu gostaria de examinar o processo de sniffing de código e oferecer alguns utilitários que ajudam a analisar os padrões de código.
O que é o Code Sniffing?
A ação do sniffing de código é tipicamente automatizada para economize tempo e reduza erros. Farejadores de código verificar códigos-fonte para conformidade com padrões definido por equipes internas de desenvolvimento ou órgãos reguladores.
O código sniffing é semelhante ao código linting, mas mais pedante. Linting principalmente verifica erros e erros de sintaxe enquanto sniffing procura por problemas o código de maneira é escrito. Um arquivo PHP ainda pode funcionar corretamente, mas falhará um teste de detecção de código se o nome de uma variável não seguir os padrões (ou seja,. $ myVariable vs $ my_variable).
Uma parte semelhante da terminologia é o cheiro de código que verifica se há falhas de design no código que pode levar a erros maiores. Isso pode estar relacionado aos padrões de código, mas também inclui arquiteturas de alto nível para escrever código homogêneo.
Todas essas áreas valem a pena e são relevantes para o código sniffing. Apenas tenha em mente que o código sniffing nem sempre encontrar erros de tempo de execução já que sua prioridade é mantendo estrita conformidade com os padrões.
Até agora você pode estar se perguntando se os padrões são importantes? A verdade é que eles são importantes, mas mais para otimização e limpeza de projetos. Muitos desenvolvedores concordam que os padrões são vitais para programação e desenvolvimento web - especialmente em grandes projetos de equipe.
Aqui está uma citação do desenvolvedor Paul Jones explicando por que os padrões de código são úteis.
“O ponto de um padrão de estilo de codificação não é dizer que um estilo é objetivamente melhor que outro ... Em vez disso, o ponto é configurar expectativas conhecidas sobre como o código vai parecer.”
Se você está construindo uma pequena webapp para si mesmo, pode não valer a pena gastar tempo com os padrões WCAG 2.0 ou PSR-2. Mas considere as centenas de desenvolvedores trabalhando no código-fonte do Adobe Photoshop. Seria caótico se cada pessoa escrevesse seu próprio estilo e combinasse tudo junto.
Embora as equipes dependam muito de padrões, essas regras ainda podem ser úteis para desenvolvedores solitários. Você pode encontrar padrões de código para tudo, de CSS a WordPress, então não há desculpa para não tentar ver se a qualidade do seu código melhora.
O valor dos padrões de código
Padrões naturalmente mantenha seu código limpo e organizado. Os desenvolvedores sabem exatamente como escrever códigos e como acompanhar o trabalho uns dos outros.
Padrões de código também ajudam no desenvolvimento de código aberto ao oferecer regras para outros seguirem. Os arquivos podem ser recolhidos por qualquer pessoa meses ou anos depois e ainda assim ser fáceis de ler.
Um estilo de codificação estrito é uma boa ideia mesmo se você optar por fazer o seu próprio. Isso exige muito esforço, mas à medida que os projetos crescem, esse tipo de documentação é inestimável.
Aqui estão alguns padrões de codificação para considerar que abrangem a gama de várias linguagens da web.
- Padrões de Codificação da PEAR (PHP)
- Padrões do Google para HTML / CSS
- Padrões do Google para JavaScript
- Estilo de Codificação Django (Python)
- Guia de Estilo do Rails (Ruby)
- WCAG 2.0 (UX)
Melhores recursos para farejar código
Agora é possível encontrar free sniffers de código para tudo, de HTML / CSS a linguagens backend como PHP e SQL. Talvez você não precise usar esses sniffers ou seguir os padrões de cada idioma, mas vale a pena investigar as possibilidades de ver o que pode melhorar seu desempenho.
Sniffers de Código Frontend
Embora o HTML não precisar um sniffer de código que não impediu que o Squiz construísse um. É completamente open source e hospedado no GitHub com as opções para copiar / colar código no navegador ou salvar um bookmarklet para ser executado em páginas da Web individuais.
Este sniffer verifica os três níveis de padrões de acessibilidade A, AA e AAA da WCAG junto com as diretrizes da seção 508 que se aplicam principalmente a sites governamentais.
Os desenvolvedores de CSS podem gostar deste sniffer de código CSS gratuito que também é de código aberto, hospedado por meio do Gerenciador de Pacotes Node.
Os usuários do jQuery devem verificar o JSCodeSniffer construído por Dmitry Sheiko. Esta é outra aplicação web gratuita hospedada no GitHub que está em conformidade com o guia de estilo de código do jQuery.
Alternativamente, você pode querer tentar linting seu código JS com JavaScript Lint ou JS Lint. Essas ferramentas verificam erros na sintaxe em vez de padrões de código, mas também são muito úteis quando se trata de otimização de código de frontend.
Para o registro também é possível verificar os padrões JS / CSS diretamente com PHP_CodeSniffer.
O código PHP Sniffer
PHP_CodeSniffer é uma ferramenta imprescindível no seu toolbelt, se você estiver em conformidade com os padrões de código PHP. O pacote contém alguns Scripts PHP que analisam código PHP, JS e CSS para conformidade com sua escolha de documentação de estilo de código.
O criador de PHP_CodeSniffer Greg Sherwood escreveu uma história maravilhosa sobre como a ideia surgiu e quais problemas ela tenta resolver (vale a pena ler se você tiver tempo).
Em resumo, Greg estava trabalhando com uma equipe que aprendia JavaScript em um aplicativo PHP. Seu objetivo era estruturar o JS de uma maneira que seguisse os padrões de código do PHP para facilitar a troca de informações. Assim PHP_CodeSniffer nasceu.
Isso é ótimo para desenvolvedores PHP porque a linguagem é muito solta com requisitos de estilo obrigatórios. Frameworks como o Laravel são mais rigorosos, mas os desenvolvedores podem (e devem) configurar seus próprios padrões de código sem depender de uma estrutura de terceiros.
Vários padrões como PSR-0, PSR-1 e PSR-2 são todos populares e empacotados com a biblioteca de detecção de PHP.
Mas você pode encontrar muitos outros padrões de código pré-fabricados para o PHP CMS, como WordPress, Magento e Drupal. Desenvolvedores do núcleo do Drupal lançaram um módulo oficial de código chamado Coder.
O PHP é, sem dúvida, a linguagem mais fácil de otimizar com sniffers de código. Se você está procurando uma lista de padrões de código PHP confira esta entrada do GitHub.
Outros Sniffers de Código Backend
Os desenvolvedores de back-end trabalham com uma variedade de idiomas além do PHP e os números estão crescendo a cada ano. Com linguagens alternativas, também temos bibliotecas de sniffing de código alternativo como o sniffer de código para Python.
É possível verificar outros scripts online ou usar ferramentas como o PyLint. Mas esta é outra metodologia que requer paciência para trabalhar em seu fluxo de desenvolvimento.
Ruby Devs também tem uma série de opções quando se trata de linting e análise de código. Os melhores são sempre gratuitos e de código aberto como o Ruby Lint, um analisador de código estático construído para o moderno código Ruby.
Eu ainda não encontrei um sniffer de código Node.js dedicado, mas espero que um projeto surja com o tempo. Existem sniffers de códigos JS que suportam os padrões do Node, mas ainda é uma linguagem de backend mais nova e requer tempo para crescer.
Por fim, temos a sintaxe SQL usada para bancos de dados. Esse código pode ser mais complicado, pois é difícil encontrar padrões de sintaxe bem suportados para o código-fonte do SQL. Mas eu encontrei um webapp de formatação SQL que deveria ser tremendamente útil ao otimizar consultas de banco de dados.
Embrulhar
O melhor lugar para iniciar o sniffing de código é com um idioma e um padrão. HTML / CSS é um lugar fácil para começar para desenvolvedores de frontend, enquanto o PHP é frequentemente uma escolha favorita entre desenvolvedores de backend (especialmente desenvolvedores de WordPress).
E se você quiser saber mais, confira esses posts relacionados sobre sniffing de código, linting e análise automatizada de código para otimização.
- Por que você precisa de padrões de codificação
- Cheiro de Código por Jeff Atwood
- Sniffer de Código PHP: Instalação e Configuração
- Introdução ao CodeSniffer (Parte 1)
- Vitrine do GitHub: Limpar Linters de Código