menu

SHARKLABS

Tutorial Rubocop: Análise de código para programadores Ruby

/
/
Tutorial Rubocop: Análise de código para programadores Ruby
bookmark Ruby access_time

Qual é o padrão a ser seguido?

Uma das coisas mais fantásticas da comunidade Ruby é a padronização do código. Existe uma Style Guide que todos os programadores seguem. Quando eu digo todos, você pode achar exagero, mas dentro da comunidade as convenções são levadas a sério.

Há muitos itens definidos nessa Style Guide, como: indentação de código, nomenclatura de classes/métodos/variáveis, definição strings/arrays/hashmaps e muito mais. Você pode consultar mais detalhes na documentação resumida ou na documentação completa.

Posso alterar o padrão?

Alguns projetos (normalmente de grande porte) fazem uma extensão dessa Style Guide e modificam alguns itens de acordo com suas particularidades. Vale ressaltar que os ajustes são pequenos e a essência permanece a mesma. Os mais populares são do Airbnb e Shopify.

Na maioria dos casos eu recomendo seguir o padrão principal. Fazer o próprio padrão é algo para programadores bem experientes e com uma necessidade bem específica.

Uma ferramenta que vai te ajudar

É provável que programadores iniciantes terão dificuldades para se lembrar de todas as regras e por mais cuidadoso que você seja, sempre tem algo passa despercebido.

O Rubocop é uma ferramenta que analisa seu código e verifica se ele está dentro do padrão. Disponível no RubyGems, o Rubocop pode facilmente ser instalado e configurado.

Rubocop: Passo 1 - Instalação

Basta adicionar no seu Gemfile e executar o bundle. Mais detalhes estão na documentação oficial: Instalação Rubocop.

Depois de instalar,  você já pode executar o comando rubocop na pasta do seu projeto. Porém vai aparecer muitos erros e inicialmente você se assusta, pois não sabe por onde começar.

Rubocop: Passo 2 - Configuração

Para configurar quais arquivos e quais regras você deseja validar, basta inserir um arquivo .rubocop.yml na pasta raiz do seu projeto. O conteúdo deste arquivo pode ser algo assim:

AllCops:
  Exclude:
    - config/**/*
    - db/migrate/**/*

Rails:
  Enabled: true

Basicamente neste arquivo, informei alguns diretórios que desejo remover da verificação e também habilitei algumas verificações específicas para softwares que utilizam o Ruby on Rails.

Se você quer mais detalhes sobre as configurações do Rubocop, clique aqui.

Rubocop: Passo 3 - Organizando os erros

Mesmo adicionando um arquivo de configuração, é difícil visualizar os alertas do Rubocop pelo console. Para esta situação existe o comando rubocop --auto-gen-config  que gera um arquivo com todos os erros. O arquivo gerado se chama .rubocop_todo.yml e fica na raiz do projeto.

Se executar agora o comando rubocop, você perceberá que todos os erros sumiram!

Na verdade eles não sumiram, o Rubocop simplesmente ignora todos os erros contidos no arquivo .rubocop_todo.yml. Desta forma, você pode resolver um item por vez e gradualmente remover os erros do .rubocop_todo.yml.

Se você quer mais detalhes spbre o Automatically Generated Configuration (auto-gen-config) consulte este link.

Rubocop: Passo 4 - Corrigir automaticamente

Para corrigir os alertas automaticamente, basta executar o comando rubocop -a. Vale ressaltar que nem todos os erros é possível corrigir automaticamente e neste caso a correção é manual. Na documentação tem um tópico específico para a Auto Correção, recomendo a leitura.

Por fim, estas são as funcionalidades básicas do Rubocop, mas se você quer aprender mais, basta entrar no site oficial.

Dúvidas ou sugestões é só entrar em contato. Abraço.

Autor
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Martin Fowler