Como foi o Encontro em março!

11 Mar 2016

Finalmente voltamos à ativa depois de um longo período ‘de férias’. Esperamos que esse encontro de hoje seja o primeiro de muito outros novos encontros.

O encontro em si foi muito bom! Tivemos várias rostos novos, diria que a maioria. O assunto principal girou em torno do tema sugerido pelo Luciano que foi Melhoria de performance em queries, mas na verdade acabamos falando de melhorias em performance de uma forma geral. O formato de palestras é legal, mas acho muito mais importante o bate-papo e troca de experiência entre os participantes.

Ruby 2.3.0 performance

Dando início ao primeiro tópico falado, listo o post do Alexander Dymo falando sobre alguns benchmarks do ruby 2.3.0 comparado com o ruby 2.2.3. O site referenciado tem outros posts bem interessantes sobre performance do ruby que valem a pena dar uma olhada.

Virtual box / Ruby installer

Seguindo com o relato, o Jonathan perguntou se existia alguma forma melhor de usar o ruby numa máquina Windows. Ele usa numa máquina virtual Virtual Box com linux, pois ainda não domina Linux o suficiente para deixar como seu S.O. principal. Nossa recomendação foi continuar com essa configuração pois apesar de ter o recurso do ruby installer, a maioria dos tutoriais, posts e artigos são feitos num ambiente UNIX, logo, é melhor ir se ambientando com Linux ou Mac. Foi comentado também sobre opções de desenvolvimento em ambientes virtuais, onde não há a necessidade de configurar nada. Não posso falar muito pois não tenho experiência no assunto, mas de toda forma, é bom para o desenvolvedor se ambientar e dominar seu ambiente de trabalho. Preparar a máquina para trabalhar, instalando o ruby, as bibliotecas necessárias e até mesmo configurando o seu editor preferido são tarefas que TODO o desenvolvedor deve fazer.

Algumas gems para análise de performance

Voltando com o tema de performance, vimos algumas gems que fazem análise e mostram o que pode ser melhorado no código, como a fasterer gem, a fast-ruby, ruby-prof e stack-prof.

Palestra da Eileen Uchitelle na GURUCO 2015

Essa palestra foi altamente recomendada e pode ser assistida na íntegra através do site do Confreaks. Os slides da palestra da Eileen também estão disponíveis. Vale comentar que a Eileen trabalha no Basecamp e ficou com a ‘simples’ tarefa de melhorar a performance do Basecamp (produto).

Arel

O Vagner Zampieri, fez uma breve apresentação do uso do Arel nas queries do MyFinance. E ficou de falar sobre “Rails Query Security”, mas pelo menos compartilhou o link.

Gem Bullet

Durante o papo de performance, foi lembrado da clássica gem Bullet que ajuda a buscar queries N+1.

RTFM

Voltando ao papo de performance, o bom e velho Rails Guides nos mostrou o que porquê devemos usar find_each ao invés de all quando for processar todos os registros de um modelo Active Record. No mesmo guides também tem uma seção destinada exclusivamente ao upgrade de versões do Rails. Muito bom!

Análise dos testes mais lentos

Uma boa dica compartilhada foi o uso do argumento -p, usado no RSpec para mostrar os testes mais lentos.

Performance do Ruby

Leitura recomendada sobre performance do ruby

Ferramentas para análise de qualidade de código

Falamos sobre o Code Climate, a versão semelhante dele, porém open source, chamada Metric-fu e uma gem que mostra possíveis code smells chamada Reek.

Livros recomendados

Clean code e Confident ruby

Até a próxima!

Abraços, Rafael B. Tauil