Folha de Estilo - Measurement-and-Metrics-2018-1/2017.1-SIGS GitHub Wiki
#SIGS - Folha de Estilo
Todos os nomes de variáveis, métodos, rotas, classes e funções devem ser em inglês
Comentários devem ser um português
Classes sempre começam com letra maiúscula e em caso de uma classe com nome composto usa-se camel case
Exemplos:
class CompanyDenunciation < ActiveRecord::Base
end
class Notification < ActiveRecord::Base
end
Depois da declação da classe e suas dependências deve-se pular uma linha para escrever os métodos.
Exemplos:
class CommentsController < ApplicationController
before_action :authenticate_user
before_action :verify_user_permission, only: [:destroy, :edit]
def new
@comment = Comment.new
end
...
end
Exemplos:
has_many :active_battles
has_many :passive_battles
has_many :won_battles
Nunca abreviar os nomes e sempre separar nomes compostos por _ (underline)
Exemplos:
@battle_answer_notification
@pending_battles
def um_exemplo
@meu_metodo
end
Variáveis dentro de lops devem sempre corresponder ao singular do nome do array (que deve ser composto)
Exemplos:
def read
render :nothing => true
@notifications = current_user.notifications.where(visualized: false)
@notifications.each do |notification|
notification.update_attribute(:visualized, true)
end
end
Identação sempre com 2 espaços.
Parênteses e colchetes sempre na mesma linha.
Chaves sempre separadas do conteúdo por um espaço.
Exemplos:
def update
@vote = Vote.new(vote_params)
@vote.question_id = params[:question_id]
@vote.option_id = params[:vote][:option_id]
@votes.each do |vote|
vote.description = nil
end
if @vote.save
redirect_to "/questions/#{ @vote.question_id }/results"
end
end
Rotas devem sempre começar com letra minúscula
Os nomes devem ser intuitivos e em inglês
Exemplos:
#questions
get 'questions/humans' => 'questions#humans'
get 'questions/languages' => 'questions#languages'
get 'questions/math' => 'questions#math'
get 'questions/nature' => 'questions#nature'
get 'questions/recommended' => 'questions#recommended'
get 'questions/upload' => 'questions#new'
post 'questions/upload_questions'
post 'questions/upload_candidates_data'
Os comentários devem sempre de acordo com a identação.
Devem começar com letra maiúscula.
Devem estar em português.
# Meu exemplo de comentário
# Continua meu exemplo de comentário