Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Novidades do Ruby on Rails 5
Search
Daniel Cavalcante
August 28, 2016
Programming
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Novidades do Ruby on Rails 5
Palestra ministrada na segunda edição da Expotec em João Pessoa.
Daniel Cavalcante
August 28, 2016
More Decks by Daniel Cavalcante
See All by Daniel Cavalcante
Arquiteturas modulares com Node.JS
danielcdesouza
1
81
React Native e GraphQL na construção de mobile apps
danielcdesouza
0
65
Nest Framework
danielcdesouza
0
130
"Go" da Alemanha! Sete passos para começar a desenvolver em Go
danielcdesouza
0
96
Minerando jóias: como extrair o melhor do Ruby
danielcdesouza
0
61
Nos trilhos do Ruby
danielcdesouza
0
63
Conhecendo o AngularJS
danielcdesouza
1
91
Começando com Ruby on Rails
danielcdesouza
0
100
Apresentação sobre Framework VRaptor
danielcdesouza
0
140
Other Decks in Programming
See All in Programming
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
3.5k
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
残高管理から台帳サービスへの進化
artoy
1
200
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
880
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
Jetpack Compose Mechanisms
skydoves
3
820
ChromeでローカルLLM
ryu1013
0
140
Featured
See All Featured
Fireside Chat
paigeccino
43
4.1k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Amusing Abliteration
ianozsvald
1
350
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
New Earth Scene 8
popppiees
4
2.7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
From π to Pie charts
rasagy
1
400
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Transcript
Novidades do Ruby on Rails 5
Daniel Cavalcante
Rails?
Framework Web Criado em 2003
None
Ruby Linguagem de programação
MVC Arquitetura
Don’t Repeat Yourself Não se repita (DRY)
REST Organizar sua aplicação com recursos e verbos HTTP
Convention over configuration Framework baseado em convenções
5.0.0 30 de junho de 2016 9999 Commits 948 Contribuidores
Sobre o Rails 5
Requer Ruby 2.2.2 Requisitos mínimos
Comando rails agora executa rake tasks Command-line
Rails 4 rake routes rake test rake db:migrate Rails 5
rails routes rails test rails db:migrate
Nova página de boas vindas ACTIVE MODEL
O que mudou no ACTIVE MODEL
Agora temos detalhes de uma falha de validação organizadas em
um objeto, e não em uma mensagem de erro. VALIDAÇÃO DE ERROS
class Book include ActiveModel::Validations validates_presence_of :title attr_accessor :title end book
= Book.new book.valid? book.errors.details #=> { :title=>[{:error=>:blank}]} ACTIVE MODEL
O que mudou no ACTIVE RECORD
Nova BaseClass foi adicionada, os models irão herdar da classe
ApplicationRecord ACTIVE RECORD
# app/models/application_record.rb class ApplicationRecord < ActiveRecord::Base self.abstract_class = true end
# app/models/book.rb class Book end ACTIVE RECORD
Migrações versionadas permitindo evoluir a API de migrações sem quebrar
a compatibilidade com versões anteriores ACTIVE RECORD
RAILS 4.2 class CreateBooks < ActiveRecord::Migration[4.2] def change create_table :books
do |t| t.text :title, null: false t.timestamps null: false end end end RAILS 5.0 class CreateBooks < ActiveRecord::Migration[5.0] def change create_table :books do |t| t.text :title, null: false t.timestamps end end end ACTIVE RECORD
Migrations[5.0] associações são indexadas por padrão timestamps são obrigatórios por
padrão ACTIVE RECORD
Agora podemos usar OR ACTIVE RECORD
relation.OR(another_relation) ACTIVE RECORD
O que mudou no ACTION PACK ACTION PACK
Testes de Controllers não são recomendados. Deve ser utilizado Testes
de integração ACTION PACK
5.0 deprecated 5.1 gem separada ACTION PACK
Actions sem template retornam status 204 ACTION PACK
Rails 4 ActionView:MissingTemplate (Missing template books/create) Rails 5 No template
found for BooksController#create, rendering head :no_content Completed 204 No Content in 30ms ACTION PACK
O que mais mudou no RAILS 5
RAILS API
Aplicação otimizada para a criação de APIs RAILS API
$ rails new project --api Rails API
Middleware Stack reduzido Base Controller ActionController::API Generators Não geram views,
helpers e assets RAILS API
Output de erros própria para API RAILS API
{ “status” : 404, “error” : “Not Found”, “exception” :
“#<ActionController::RountingError: No route matches [GET] \”/posts.json\”> ”, “traces” : { “Application Trace” : [], “Framework Trace” : [] } } Rails API
O uso da CLI ficou mais intuitivo. Todos os comandos
estão centralizados no comando ‘rails’ Executar testes
rails test rails test <file> rails test <file>:<line number>
O que mudou no TURBOLINKS
SINGLE-PAGE APPLICATIONS É a resposta do Ruby para single- page
applications TURBOLINKS
O que é ACTION CABLE
Comunicação Full-Duplex com Websockets ACTION CABLE
Obrigado @danielcdesouza