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
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
CSC307 Lecture 06
javiergs
PRO
0
690
Fluid Templating in TYPO3 14
s2b
0
130
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
AgentCoreとHuman in the Loop
har1101
5
240
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
CSC307 Lecture 04
javiergs
PRO
0
660
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
Data-Centric Kaggle
isax1015
2
780
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
The Curse of the Amulet
leimatthew05
1
8.7k
Statistics for Hackers
jakevdp
799
230k
So, you think you're a good person
axbom
PRO
2
1.9k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Odyssey Design
rkendrick25
PRO
1
500
Are puppies a ranking factor?
jonoalderson
1
2.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
200
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