No último dia 13, participamos do RS on Rails com a palestra: “Código Saudável => Programador Feliz”. O evento foi sensacional e muito bem organizado pelo pessoal do Guru RS. Assistimos palestras de excelente qualidade e tivemos a oportunidade de compartilhar um pouco da nossa experiência. Os slides estão a seguir:
A palestra abordou três tópicos que consideramos importantes em aplicações: Arquitetura, Modelos e Produção. No primeiro tópico falamos como você pode estruturar melhor seus controllers, para eles fazerem apenas o que devem realmente fazer e deixar o trabalho de roteamento com as rotas, e também sobre um costumeiro mal uso do princípio DRY. Como uma boa referência para esses assuntos, recomendamos a leitura desse artigo, publicado no blog da Thoughbot e assistir a palestra do David Chelimsky.
Também falamos sobre modelos e como eles podem ficar bem desorganizados. Sugerimos três possíveis melhorias: extrair responsabilidades de um modelo para uma classe usando o composed_of; extrair lógicas em comum entre modelos usando Concerns; e ficar de olho em como o ActiveRecord usa o banco usando a gem query_reviewer e entender como seu banco funciona lendo a documentação ou alguma literatura de referência nesse assunto (High performance MySQL ou Postgre 9.0 High Performance caso você use um destes dois bancos).
Sobre aplicações em produção, falamos sobre algumas dicas sobre como manter sua aplicação sempre bem monitorada em um ambiente em produção. Para monitorar visitas, falamos sobre o Google Analytics e o Piwik. Para ter controle dos erros da sua aplicação em produção, falamos sobre o Airbrake e o Exception Notification. Para ficar de olho na performance de sua aplicação, falamos sobre o Request Log Analyzer e o New Relic. Para monitorar o estado do servidor de sua aplicação, as ferramentas mencionadas foram o God, Monit, Server Density e o Pingdom (sendo este último apenas para monitorar se sua aplicação caiu). Também sugerimos manter uma nota alta no YSlow; usar deploys automatizados com o Capistrano e usar uma solução de backup (nós normalmente fazemos isso usando uma tarefa de backup agendada via Cron e sempre sincronizando com outras máquinas).
Agradecemos o pessoal da Softa pela hospitalidade, pelos happy hours em seu escritório e ao Guru RS pelo excelente evento! Nos vemos em novembro no Ruby Conf!
Excelente palestra, conteúdo abordado na medida. Parabéns.