SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Ferramentas para manter seu código
Ruby on Rails limpo e otimizado
Rafael Besen
rafael.besen@geekhunter.com.br
● Bullet
● Traceroute
● Rack-mini-profiler
● Brakeman
● Bundler audit
● Rubycritic
Bullet - https://github.com/flyerhzm/bullet
● Detecção de query N+1
● Influenciam diretamente na performance
● Muito comum quando estamos começando em Ruby on Rails
Bullet
Bullet
gem 'bullet', group 'development'
config/environments/development.rb
Bullet
Traceroute - https://github.com/amatsuda/traceroute
● Ferramenta útil para limpeza de código
● Encontra rotas não utilizadas
● Encontra métodos sem rota nos controllers
Traceroute
gem 'traceroute'
bundle
rake traceroute
Traceroute
Unuser routes (150):
Unreachable action methods (780):
Rack-mini-profiler - https://github.com/MiniProfiler/rack-mini-profiler
● Analisa uso de memória na aplicação
gem 'rack-mini-profiler', require: false
gem 'memory_profiler'
gem 'flamegraph'
gem 'stackprof'
bundle exec rails g rack_profiler:install
create config/initializers/rack_profiler.rb
Rack-mini-profiler
?pp=flamegraph
?pp=profile-gc
?pp=analyze-memory
?pp=profile-memory
Brakeman - https://github.com/presidentbeef/brakeman
● Identifica vulnerabilidades da aplicação
group :development do
gem 'brakeman', :require => false
end
brakeman
Bundler Audit - https://github.com/rubysec/bundler-audit
● Busca por vulnerabilidades nas gems
bundler install bundler-audit
bundle audit
Bundler Audit
Rubycritic - https://github.com/whitesmith/rubycritic
● Analisa a qualidade do código
gem "rubycritic", require: false
rubycritic
rubycritic app lib/foo.rb
Rubycritic
Rubycritic
Escala do Flog
Score of Means
0-10 Awesome
11-20 Good enough
21-40 Might need refactoring
41-60 Possible to justify
61-100 Danger
100-200 Whoop, whoop, whoop
200 + Someone please think of the children
Obrigado!

Mais conteúdo relacionado

Semelhante a Ferramentas para otimização do código rails

Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoCezinha Anjos
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On RailsAndre Ferraro
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsGuilherme
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
Deploy Heroku
Deploy HerokuDeploy Heroku
Deploy HerokuCreditas
 
Resolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o BundlerResolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o BundlerFrevo on Rails
 
Resolvendo problemas com o Bbundler
Resolvendo problemas com o BbundlerResolvendo problemas com o Bbundler
Resolvendo problemas com o BbundlerRodrigo Alves Vieira
 
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...Weverton Timoteo
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyFausto Siqueira
 
Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código PythonGuilherme Vierno
 
RVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisRVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisAnna Cruz
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 

Semelhante a Ferramentas para otimização do código rails (20)

Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Bricklayer
BricklayerBricklayer
Bricklayer
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com Rails
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Deploy Heroku
Deploy HerokuDeploy Heroku
Deploy Heroku
 
Resolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o BundlerResolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o Bundler
 
Resolvendo problemas com o Bbundler
Resolvendo problemas com o BbundlerResolvendo problemas com o Bbundler
Resolvendo problemas com o Bbundler
 
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
 
Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código Python
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
RVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisRVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ Petropolis
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 

Ferramentas para otimização do código rails