-
Notifications
You must be signed in to change notification settings - Fork 1
Folha de Estilo
- Introdução
- Inspirações para os padrões
- Indentação e padrões de texto
- Métodos
- Strings
- Routes
- Hashs
- Curly Braces (Chaves)
- Arrays (Colchetes)
- Migrates (Migrações)
- Estrutura das classes
- Métodos e atributos privados (Private)
- Estilo do HTML
- Estilo do SASS/CSS
- Estilo do Cabeçalho
- Estilo dos Comentários
Em um projeto de software, independente de sua magnitude, é ideal que ele seja construído da melhor maneira possível. Dentre as diversas coisas que afetam esta construção, está abrigado a qualidade do código. A qualidade do código tange vários aspectos, que vão desde o estilo do código (foco desse documento), quanto em boas técnicas de programação, otimizações, dentre outras coisas.
Desse modo, este documento tem como objetivo trazer o padrão de estilo de código que deve ser seguido no Bring to me. Ao todos os desenvolvedores seguirem o mesmo padrão, a leitura e visuabilidade do código fica mais uniforme, melhorando assim a experiência do programador.
As escolhas feitas para o estilo do código evidentemente não foram criadas do zero. Foram inspiradas por diversas fontes. Dentre estas fontes, estão: O estilo utilizando pela comunidade Ruby em si (pode ser comparado com as respostas relativas no Stack Overflow), com o livro Rails Tutorial, escrito por Michael Hartl, o livro (Ruby Metaprogramming)[https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2], o software (Noosfero)[https://github.com/noosfero/noosfero], dentre outros.
Estes itens são completamente configurados em qualquer editor de texto/IDE decentes. Os padrões utilizados são os mesmos utilizados pela comunidade Ruby, ressaltados no livro (Eloquent Ruby)[http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional-Series/dp/0321584104].
- Indent Using Spaces: true
- Tab Width: 2
- Caso a função não receba parâmetros, não deverão ser utilizados parênteses
- Sempre que no parâmetro for utilizado uma Hash de atributos (exemplo: email: @user.email), deve ser utilizado parênteses.
- Sempre que for chamado um método para o retorno da função (exemplo: user.find(2).name), deverá ser utilizado parênteses
- Sempre que a ultima letra do nome do método for o carácter =, deverá ser utilizado parênteses. (Exemplo: **def current_user=(user))
- Qualquer outro caso não citado, não deverá utilizar parênteses.
- Sempre deve haver uma quebra de linha antes e após o método
- Sempre que na string for utilizado #{ }, deverá ser utilizado aspas dupla. Em qualquer outro caso, deverá ser utilizado aspas simples. Exemplos:
- "#{@user.name}"
- 'Invalid Combination.'
- Nos resources, só deverão ser possíveis rotas que estejam prontas e estáveis. As rotas que não são possíveis devem ser filtradas utilizando o comando only.
- A síntaxe de rotas deve utilizar o símbolo =>, exemplo: **get '/signin' => 'sessions#new'
- Deverá ser utilizado aspas simples para os nomes
- A hash deverá sempre ser acessada através de dois-pontos :, ao invés de =>. Exemplo: get :index, user: @user
- Sempre deve haver um espaço após o início da chave, e um antes de terminar. Exemplo: ** user: { name: @user.name, email: @user.email } **
- Sempre deve haver um espaço após a vírgula
- Deverão sempre ser geradas via rails generate, por conta do id unico.
- Sempre deve haver uma quebra de linha após a declaração da classe, e uma antes do final da classe (do ultimo end)
- Sempre deve haver um espaço antes e depos da herança (exemplo: CreateUsers < ActiveRecord::Migration
- deve haver uma quebra de linha antes e depois da declaração do Private
- Não deve haver nível de indentação nos itens dentro do private.
- Sempre deve haver um espaço após o início, e um antes do final, na utilização do embedded-ruby (Exemplo: <%= a.name %>)
- Os mesmos padrões válidos para os arquivos .rb já citados também valerão para os arquivos .html
- Caso não exceda o limite de 80 carácteres (colunas), as tags deverão ficar na mesma linha que o conteúdo. Exemplo:
- <%= link_to 'users', users_path %>
- Deve haver um espaço antes das chaves. Exemplo: ** .users-new { padding: 40px; } **
- O mesmo estilo utilizado em arquivos .rb deve ser utilizado em arquivos .css e SASS
- Deve haver sempre o nome do arquivo
- Deve haver sempre o propósito deste arquivo
- Deve haver sempre o nome da licença
- Deve haver sempre o nome do projeto
- Deve haver sempre o nome da faculdade.
Exemplo:
- Os comentários devem sempre começar com letra minúscula.
- Deve haver sempre um espaço depois de iniciado o comentário.
- Os comentários só devem começar com letra maiúscula no cabeçalho de arquivo