Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[RubyConf 2016] Como funciona o Rails

Flavia Fortes
September 23, 2016

[RubyConf 2016] Como funciona o Rails

RubyConf Brasil 2016

Flavia Fortes

September 23, 2016
Tweet

More Decks by Flavia Fortes

Other Decks in Programming

Transcript

  1. gem install rails • ActiveSupport • ActionView • ActionPack •

    ActiveModel • ActiveRecord • ActiveJob • ActionMailer • ActionCable • Railties
  2. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  3. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  4. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  5. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  6. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  7. A doutrina do Rails • Otimizar para a felicidade dos

    programadores • Convenção sobre configuração • O menu é omakase • Sem paradigmas específicos • Exaltar código elegante • Fornecer facas afiadas • Valorizar sistemas integrados • Progresso sobre estabilidade • Acolher sob uma grande tenda
  8. • Concatena e “minifica” ou comprime JS e CSS •

    Implementado pela gem Sprockets Asset Pipeline
  9. • Concatena e “minifica” ou comprime JS e CSS •

    Implementado pela gem Sprockets • Reduz o número de requests que um browser precisa fazer para renderizar uma página Asset Pipeline
  10. • Não é um conceito fácil de entender, pode e,

    provavelmente, vai ser usado de forma equivocada Concerns
  11. • Não é um conceito fácil de entender, pode e,

    provavelmente, vai ser usado de forma equivocada • Seu mau uso pode adicionar mais complexidade ao código em vez de simplicidade e legibilidade Concerns
  12. • Não é um conceito fácil de entender, pode e,

    provavelmente, vai ser usado de forma equivocada • Seu mau uso pode adicionar mais complexidade ao código em vez de simplicidade e legibilidade • Além disso, pode gerar uma arquitetura desconexa e confusa Concerns
  13. N+1

  14. N+1

  15. N+1

  16. N+1

  17. N+1 • Eager loading significa fazer menos queries, porém mais

    complexas, que podem demandar mais do seu banco de dados
  18. N+1

  19. Opções do `Rails new` • --skip-gemfile # Don't create a

    Gemfile • --skip-active-record # Skip Active Record files • --skip-sprockets # Skip Sprockets files • --skip-spring # Don't install Spring application preloader • --database=DATABASE # Preconfigure for selected database • --javascript=JAVASCRIPT # Preconfigure for selected JavaScript library • --skip-turbolinks # Skip turbolinks gem • --skip-test-unit # Skip Test::Unit files