Post on 13-Feb-2017
Boas Práticas em Rails
@fabioperrella - github.com/fabioperrella @cruzguilherm - github.com/guicruzzs
Boas práticas de código● Design Patterns - O que são, e como podem nos ajudar?● DRY, KISS (entre classes, inclusive)● Arquivos, classes e métodos que representem exatamente aquilo que fazem
ou são● Não use abreviaturas, nem suprima as vogais de suas variáveis, métodos,
classes…● Dê preferência para nomes em inglês no seu código (talvez 100% de inglês)
Boas práticas de código● Não deixe comentários do código explicando o que o método faz, prefira o
código auto explicativo● Não largue códigos comentados, podemos usar o git para recuperar o que foi
apagado (GIT amigo =])● Tenha sua aplicação sob controle de falhas, não se esqueça do begin rescue
(mas não “esconda” as exceptions”)● Não usar GEMs para coisas simples pois pode dificultar um upgrade de
versão do Rails
MVC● Controllers sem lógica, só devem delegar, renderizar, redirect, etc● Modelos com validações, relacionamentos, sem muita lógica● Classes “puras” de serviço para tirar lógica dos modelos e controllers
Views● Usar I18n para todos os textos utilizados nos modelos, controllers, views e
JSs● Helpers de HTML facilitam a vida● Uso de presenters para tirar lógica das views● Partials (DRY)
Banco de Dados● Não editar migração que já foi enviada pro repositório, criar outra migração● Utilizar Transactions em operações que podem gerar inconsistências.● Evite apagar os registros do seu banco (pense na consistência dos dados e
na investigação de um problema)● Cuidado ao sobrescrever as querys do ActiveRecord (SQL injection)● Não use SQLite nos testes e desenvolvimento, use o mesmo database que
irá usar em produção se possível (já tive problemas com isso)
Rotas● Usar resources, member e collection nas rotas ao invés de fazer a rota “na
mão”● Na dúvida, use o rake routes pra te mostrar as rotas do projeto (é mais uma
dica do que boa prática)
Ambiente de Desenvolvimento● Criar o arquivo .ruby-version na raiz do projeto para todos saberem qual a
versão de ruby deve ser usada (usar RVM ou Rbenv)● Crie uma rake do tipo devsetup para criar dados no banco que facilite subir o
ambiente de dev rápido● Escreva o README do seu projeto (instruções de instalação e uso), se
alguém quiser colaborar com você, as dúvidas de setup precisam ter as respostas lá dentro.
Deploy● Entenda como funciona o assets pipeline e use-o direito (com isso vai evitar
problemas de cache nos deploys)● Use o GOD (ou algo parecido) para monitorar os processos
E agora, José?● Não se preocupem se não acertarem de primeira, consciência é o mais
importante● Você é responsável pelo que escreve● Ler código de outras pessoas para aprender github.com (usem e abusem do
que já foi feito) ● Acompanhar newsletter Ruby Weekly (rubyweekly.com)● Escutar podcasts (ex: https://devchat.tv/ruby-rogues, grokpodcast.com)● Ler livros técnicos (Practical Object-Oriented Design in Ruby, Clean Code,
etc..)
E agora, José?Não parem, contínuo é o aprendizado!
Dúvidas?
Boas Práticas em Rails
Fábio PerrellaGuilherme Cruz
Obrigado!!!