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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
95
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
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
430
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
6
3.4k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
Foundry Localでエージェント開発
seosoft
0
160
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
Building an Out-of-Order CPU
latte72
1
740
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
140
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
130
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
HDC tutorial
michielstock
2
860
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The Limits of Empathy - UXLibs8
cassininazir
1
650
30 Presentation Tips
portentint
PRO
1
390
Visualization
eitanlees
152
17k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Designing for humans not robots
tammielis
254
26k
Optimizing for Happiness
mojombo
378
71k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
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