Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Como o Rails melhorou o desenvolvimento web
Search
Thiago Borges
June 27, 2014
Programming
0
110
Como o Rails melhorou o desenvolvimento web
Apresentado no Café com Dev em Londrina dia 27/06/2014 por Thiago Borges.
Thiago Borges
June 27, 2014
Tweet
Share
More Decks by Thiago Borges
See All by Thiago Borges
Bourbon, neat e bitters no github-pages
thiagoborges
0
59
Como o Rails melhorou o desenvolvimento web
thiagoborges
0
58
Automatizando processos de frontend e deploy usando Gulp
thiagoborges
0
110
Other Decks in Programming
See All in Programming
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
0
640
What's new in Spring Modulith?
olivergierke
1
140
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
120
理論と実務のギャップを超える
eycjur
0
130
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
370
CSC509 Lecture 04
javiergs
PRO
0
300
Advance Your Career with Open Source
ivargrimstad
0
480
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
220
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1.1k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
690
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
140
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
3.6k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Typedesign – Prime Four
hannesfritz
42
2.8k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Bash Introduction
62gerente
615
210k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
30
2.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Designing for humans not robots
tammielis
254
26k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Transcript
Como o Rails melhorou o desenvolvimento web Thiago Borges
Thiago quem? Thiago Borges Desenvolvedor ~4 anos Ruby, Python, iOS
@tgabrielborges http://thiagoborg.es/
O que é Ruby on Rails? • Rails para os
mais íntimos • Ruby é a linguagem de programação, assim como Python, C++, etc.. • Rails é um dos frameworks para desenvolvimento web em Ruby
Blog em 15 minutos
10 anos de Ruby on Rails
Menos esforço
Foco no problema
Setup padrão • git clone
[email protected]
:thiagogabriel/projeto.git projeto • bundle install
# Instala as dependências • bundle exec rake db:setup # Cria os bancos e executa o seeds.rb • rails server
Don't Repeat Yourself (DRY) • Partials • Helpers •
Validações no model
Convenção sobre configuração • Nomeclatura • View com _ antes
do nome é partial. _form.html.erb • Template com o mesmo nome da action no controller • Relacionamento • user_id, configuration_id
Model View Controller Imagem: http://www.railstutorial.org/book/demo_app
Associações • @article.comments • @comment.article
RESTful • Tratar Usuários, Posts, Sessions como recursos (resources) •
Podem ser "criados", "lidos", "editados" e "deletados" (CRUD) usando as requisições HTTP: POST, GET, PATCH, e DELETE. • Não existe dúvida onde o código deve estar
Configuração separada por ambiente config/database.yml
Erro 500
Erro 500 • Poupe o usuário das mensagens de erro
• O usuário leigo não vai entender nada • Pode conter informação sensível • Ninguém precisa ver seu código :)
Terminal para agilizar • rails new nome-do-app • rails generate
controller welcome index • rails generate model Article title:string text:text • Modo apelão: rails generate scaffold Article title:string text:text
Migração de banco de dados • $ rails generate migration
AddTitleBodyToPost title:string body:text published:boolean
Migração de banco de dados • Rollback • rake db:rollback
Facilidades do Ruby no Rails • Sintaxe • Expressividade •
DSL - Domain Specific Language • Monkey Patching • Datas: 2.days.ago, 3.years.from_now, etc
Asset pipeline • Pré processamento de SASS, CoffeeScript e HTML
• Minifica e junta os arquivos • Fingerprint no nome do arquivo para cache no browser
Asset pipeline • Ambiente de Desenvolvimento •
Ambiente de Produção
Gerenciador de dependência • Bundler • Gemfile
Gems (bibliotecas) • Qual gem devo usar para resolver tal
problema? https://www.ruby-toolbox.com/ • Gems populares • Rspec - testes • Devise - autenticação • Cancan - autorização • Nokogiri - parsear HTML e XML
O repositório
O repositório • Criado em 2009 • Qualquer um pode
publicar a qualquer hora • Open source https://github.com/rubygems/ rubygems.org
Obrigado