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

Rails em 2016, usar ou não usar? Eis a questão

Rails em 2016, usar ou não usar? Eis a questão

Nos últimos anos muito se vem falando do futuro do Rails, principalmente devido a forte adoção do Node e SPAs. O objetivo da Talk é apresentar é condensar alguns fatos ao redor do assunto, junto com opiniões da comunidade e um case prático com Rails 5, para que você tenha mais bases pra responder a perguntar: Rails em 2016, usar ou não usar?

More Decks by Fabrício Ferrari de Campos

Other Decks in Programming

Transcript

  1. • Um dos responsáveis por eu estar aqui foi o

    Rails • 2010 - iniciando uma startup focada em monitoramento de redes sociais Um pouco de contexto
  2. • Um dos responsáveis por eu estar aqui foi o

    Rails • 2010 - iniciando uma startup focada em monitoramento de redes sociais • 2011 - inicio da Vizir como Software Studio - até 2014 trabalhando 80% do tempo com Rails Um pouco de contexto
  3. Um pouco de contexto • Um dos responsáveis por eu

    estar aqui foi o Rails • 2010 - iniciando uma startup focada em monitoramento de redes sociais • 2011 - inicio da Vizir como Software Studio - até 2014 trabalhando 80% do tempo com Rails • De janeiro de 2014 até janeiro de 2016 trabalhando com Node.js, Angular.js e um pouco de PHP
  4. Um pouco de contexto • Um dos responsáveis por eu

    estar aqui foi o Rails • 2010 - iniciando uma startup focada em monitoramento de redes sociais • 2011 - inicio da Vizir como Software Studio - até 2014 trabalhando 80% do tempo com Rails • De janeiro de 2014 até janeiro de 2016 trabalhando com Node.js, Angular.js e um pouco de PHP • 2016 - retorno as origens???
  5. • 2010 - Rails 3 ◦ ARel ◦ New router

    ◦ New Action Mailer ◦ Adoção do Bundler ◦ XSS protection ◦ Agnosticism with jQuery, rSpec, and Data Mapper • 2011 - Rails 3.1 ◦ Reversible Database Migrations ◦ Asset Pipeline, Streaming ◦ jQuery as default JavaScript library ◦ introduced CoffeeScript and Sass into the stack Enquanto isso...
  6. • 2012 - Rails 3.2 ◦ Faster Development Mode ◦

    New Routing Engine ◦ Automatic Query Explains ◦ Tagged Logging • 2013 - Rails 4 ◦ Russian Doll-caching ◦ Turbolinks ◦ Declarative etags ◦ Strong parameters ◦ Async Mailers
  7. • 2014 - Rails 4.1 ◦ Spring ◦ config/secrets.yml ◦

    Action Pack Variants ◦ Action Mailer previews • 2014 - Rails 4.2 ◦ Active Job ◦ Asynchronous mails ◦ Adequate Record ◦ Web Console ◦ Foreign key support
  8. • 2016 - Rails 5 ◦ Action Cable ◦ Rails

    API ◦ New Command Router ◦ Attributes API ◦ ApplicationRecord ◦ ActiveRecord::Relation#or
  9. Ficou para trás? • Temos hoje mais necessidade por APIs

    • “Novas” arquiteturas: micro-services e SPA
  10. Ficou para trás? • Temos hoje mais necessidade por APIs

    • “Novas” arquiteturas: micro-services e SPA • Muitas integrações = maior necessidade de async
  11. Ficou para trás? • Temos hoje mais necessidade por APIs

    • “Novas” arquiteturas: micro-services e SPA • Muitas integrações = maior necessidade de async • Os profissionais conheceram novas formas de modelar a aplicação
  12. Mais defeitos • As camadas se conhecem muito, o que

    facilita o acoplamento e colocar regras de negócio neles; • Não segue o conceito de responsabilidade única; • Ele faz muita mágica por trás, o que facilita a nossa vida no primeiro momento, mas quando ocorre algum problema, é difícil superar; • Faz muito monkey patching (incluindo muitos métodos em classes padrões); • Performance abaixo dos concorrentes;
  13. Novo projeto Web • Front - SPA com Angular •

    WebSockets • Multi-serviços • Um serviço já com Sinatra
  14. • Front - SPA com Angular • WebSockets • Multi-serviços

    • Um serviço já com Sinatra A escolha foi usar Rails 5 Novo projeto Web
  15. Motivos • Versão 5, simples: performance, API mode e Action

    Cable • Rails: ◦ Conhecimento da equipe; ◦ Um porto-seguro, mediante tantas incertezas de negócios ◦ Encaixa bem nos requisitos ▪ API ▪ Web Sockets ▪ Domain não acoplado ao framework (services e libs)
  16. Devo usar Rails ainda? Our stack is intentionally as boring

    as possible. We are a perfect simple rails app in the backend. - Andreas Klinger, CTO of Product Hunt Taking into account those issues, payments might seem more suited for a strongly typed language where the database access model is more restrictive. Yet, at Airbnb we use Rails for our payments stack. Instead of ditching Rails for its drawbacks, we’ve come up with solutions for its main issues, making it work well for payments - Michel WekslerSoftware Engineer at Airbnb
  17. Gostamos de guerrear • CUIDADO! Saiba diferenciar o que é

    apenas mimimi, das críticas que trazem soluções; • Assim, como em outros contextos, use a diversidade para ter melhores resultados; • Tenha suas preferencias, mas não fique relaxado, esteja sempre atento e aprendendo coisas novas;
  18. Conclusão • Ao se perguntar se deve usar algo, ou

    aprender algo novo, conheça mais a sua realidade; • Cuidado com as bolhas e falsas impressões; • Há razões para não usar Rails, assim como há razões para não usar qualquer outra tecnologia; • Evite cair nessa pressão social; • Abrace a diversidade de stacks;
  19. Rails em 2016, usar ou não usar? Você deve responder!

    Para nós, Rails ainda traz diversões, aprendizados e nos faz chegar mais longe.