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
54
Como o Rails melhorou o desenvolvimento web
thiagoborges
0
49
Automatizando processos de frontend e deploy usando Gulp
thiagoborges
0
88
Other Decks in Programming
See All in Programming
新宿ダンジョンを可視化してみた
satoshi7190
2
260
Code Reviews
bkuhlmann
4
890
Goのエラースタックトレースの歴史と今後
sonatard
9
1.5k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
210
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
210
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
Git Rebase
bkuhlmann
11
1.6k
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
410
GitHub Copilotのススメ
marcy731
1
200
Featured
See All Featured
Building Adaptive Systems
keathley
31
1.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
The Cult of Friendly URLs
andyhume
74
5.7k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Infographics Made Easy
chrislema
238
18k
Docker and Python
trallard
34
2.7k
The Language of Interfaces
destraynor
151
23k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
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