- Adicione as configurações da gem Rubocop ao projeto.
- Utilize o Ruby Style Guide. A análise e formatação de código da Rubocop é baseada neste guia.
- Evite modificadores de condicional (linhas que terminam com condicionais).
- Evite muitas atribuições por linha. (
foo, bar = 1, 2). - Evite comentários com TODO. (
# TODO). - Evite nomes de métodos bang (!). Prefira nomes descritivos.
- Prefira
detectao invés defind. - Prefira
selectao invés defind_all. - Prefira
mapao invés decollect. - Prefira
reduceao invés deinject. - Prefira
&:method_namepara{ |item| item.method_name }chamadas de métodos mais simples. - Use
_para parâmetros de bloco não usados. - Adicione underscore (
_) como prefixo de de variáveis e parâmetros não usados. - Use
%()para strings em uma única linha contendo aspas duplas que requerem interpolação. - Use
?como sufixo para métodos predicados (que retornam true ou false). - Use
def self.method, nãoclass << self. - Use
defcom parenteses quando tiverem parâmetros. - Use heredocs para strings com múltiplas linhas.
- Ordene os métodos de classe acima dos métodos de instância.
- Prefira a invocação de método ao invés de variáveis de instância.
- Evite parâmetros opcionais. Será que o método não está fazendo muita coisa?
- Evite monkey-patching.
- Gere os Bundler binstubs necessários para o projeto, como
rakeerspec, e adicione ao controle de versão. - Prefira
privateao indicar o escopo. Useprotectedapenas com métodos de comparaçãodef ==(other),def <(other), edef >(other).
- Especifique no
Gemfilea versão do Ruby usada no projeto. - Use a versão pessimista (
~>) noGemfilepara gems que seguem o versionamento semântico, comorspec,factory_bot, ecapybara. - Use a opção sem versão no
Gemfilepara gems que é seguro atualizar automaticamente, como apg,thin, anddebugger. - Use a versão exata no
Gemfilepara gems sensíveis, como a gem Rails.
** Em breve teremos uma gem com as definições do Rubocop que será usada como dependência nos projetos.
** Esse style guide é fortemente baseado no guia da thoughtbot.