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?

Transcript

  1. Fabrício Ferrari de Campos Rails em 2016, usar ou não

    usar? Eis a questão.
  2. • Um dos responsáveis por eu estar aqui foi o

    Rails Um pouco de contexto
  3. • 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
  4. • 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
  5. 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
  6. 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???
  7. Breaking News!

  8. None
  9. None
  10. A Terra é redonda e gira Mr. Obvious!

  11. O mercado mudou

  12. None
  13. None
  14. As pessoas evoluem

  15. None
  16. None
  17. None
  18. Enquanto isso...

  19. • 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...
  20. • 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
  21. • 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
  22. • 2016 - Rails 5 ◦ Action Cable ◦ Rails

    API ◦ New Command Router ◦ Attributes API ◦ ApplicationRecord ◦ ActiveRecord::Relation#or
  23. Ficou para trás?

  24. • Temos hoje mais necessidade por APIs Ficou para trás?

  25. Ficou para trás? • Temos hoje mais necessidade por APIs

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

    • “Novas” arquiteturas: micro-services e SPA • Muitas integrações = maior necessidade de async
  27. 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
  28. Active Record VOCÊ É UM COCÔ E EU VOU MATAR

    VOCÊ
  29. 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;
  30. A clássica comparação com

  31. Quais são as alternativas?

  32. Alternativas em Ruby

  33. Alternativas em JavaScript

  34. Alternativas em outras linguagens

  35. Alternativas já estabelecidas

  36. Estamos orfãos de um novo Rails.

  37. Talvez, ele seja o primeiro e único da sua especíe.

  38. None
  39. 2016 Um novo encontro

  40. • Front - SPA com Angular Novo projeto Web

  41. • Front - SPA com Angular • WebSockets Novo projeto

    Web
  42. • Front - SPA com Angular • WebSockets • Multi-serviços

    Novo projeto Web
  43. Novo projeto Web • Front - SPA com Angular •

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

    • Um serviço já com Sinatra A escolha foi usar Rails 5 Novo projeto Web
  45. 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)
  46. 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
  47. None
  48. Conclusão

  49. 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;
  50. 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;
  51. 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.
  52. Obrigado!