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
TRUNK 0125 トレーニング
Search
oyaoyaoya
January 25, 2017
Technology
0
44
TRUNK 0125 トレーニング
Ruby on Rails | 2時間でTwitterを作ろう
oyaoyaoya
January 25, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.5k
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
350
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
380
Agile Leadership Summit Keynote 2026
m_seki
1
650
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
190
Agent Skils
dip_tech
PRO
0
120
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
Raft: Consensus for Rubyists
vanstee
141
7.3k
4 Signs Your Business is Dying
shpigford
187
22k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Writing Fast Ruby
sferik
630
62k
Transcript
None
ΞδΣϯμ ࣗݾհͷϑΣʔζ Ruby ʹ͍ͭͯ Ruby on Rails ͱ ࣮ࡍʹͬͯΈΑ͏ʂ
ࠓͷΰʔϧ RoRΛ͔ͬͨؾʹͳΔ
ࣗݾհ • ཱڭେֶ̏ੜ • TECH::CAMPͰϝϯλʔͯ͠·͢ɻ • ΏΔεϙΛ࡞͍ͬͯΔɻ • མޠͱ͔ɺөը͕͖
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͖
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͚ ͦͷલʹ
ϓϩάϥϛϯάݴޠʁʁ
ϓϩάϥϛϯάݴޠʁʁ C, C++, Java, Go, python, HTML, CSS, JavaScript Ruby,
PHP,
ϓϩάϥϛϯάݴޠͱ • ίϯϐϡʔλʹ໋ྩΛग़ͨ͢Ίͷݴޠ • ग़དྷΔ͜ͱେମಉ͡ • త࣍ୈͰɺ͖ෆ͖͕͋Δ
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͖
ϚʔΫΞοϓݴޠͷҧ͍ͱ ϓϩάϥϛϯάݴޠͷҧ͍
ϚʔΫΞοϓݴޠͷҧ͍ͱ ϓϩάϥϛϯάݴޠͷҧ͍ ϚʔΫΞοϓݴޠ ˠจॻߏɺදݱ ϓϩάϥϛϯάݴޠ ˠσʔλͷΓऔΓ
Ruby on Rails ͱ v RubyͷwebΞϓϦ༻ϑϨʔϜϫʔΫ => webΞϓϦͷ࡞͕ൺֱతΧϯλϯ v Ҏલ1000ߦॻ͍͍ͯͨίʔυ͕ ɹɹɹɹ 100ߦͰՄೳʹͳΔɻ
https://blog.codecamp.jp/what_is_rails
None
ᶃ ߘ ᶄ දࣔ ᶅ ฤू ᶆ আ ɹɹɹɹΛͬͨWebΞϓϦͷ࡞ʂ Ruby on Rails Ͱग़དྷΔࣄ OOΛߘɺදࣔɺฤूɺআɻ
ɹɹɹɹɹɹɹͱ͍͏͜ͱͳΒେମͰ͖Δɻ ߟ͑ͯΈΑ͏ʂ
Ruby on Rails ઃܭཧ೦ • CoC (convention over configuration) ɹ໋໊نଇΛकΒͶͳΒͳ͍ɻ
• DRY ʢDon’t Repeat Yourselfʣ ಉ͡هड़Λ܁Γฦ͞ͳ͍ɺলΤωɻमਖ਼ָ͕ɻ • RESTʢRepresentational State Transferʣ URLͱHTTPϝιουͷֻ͚ࢉɺRESTfulͰ͢ɻ
ࠓ͍͡Δॴ ᶃconfig/routes.rb :ΞΫηεͱॲཧ ᶄapp/controllers :viewͱσʔλΛ࿈݁ ᶅapp/views :ݟͨ ᶆdb/migrate :σʔλϕʔεߏங ᶇapp/models
:σʔλؔ࿈
• ड͚औͬͨURL(ϦΫΤετ)ͱͦͷޙͷΞΫγϣϯΛܾఆ͢Δɻ Rails.application.routes.draw do get '/tweets’ => 'tweets#index’ end ˞ҙຯ
/tweetsʹϦΫΤετΛड͚औͬͨΒɺ tweetsίϯτϩʔϥʔͷindexΞΫγϣϯʹड͚͢ɻ cofig/routes.rb ϧʔςΟϯά
• ΞΫγϣϯͷఆٛ • Viewͷσʔλఆٛ App/conterollers/tweets_controller.rb class TweetsController < ApplicationController def
index @tweets = Tweet.all end end ˞ҙຯ ɹ@tweetsviewʹ͢σʔλͷശɺதʹ = ͷӈଆ͕ೖ͍ͬͯΔɻ ɹTweet.allͰɺTweetςʔϒϧͷશͯͷσʔλΛॴಘ͍ͯ͠Δɻ Controller
• ݟͨ୲ • ίϯτϩʔϥʔ͔Βड͚औͬͨσʔλͷॲཧΛ͢Δ <% @tweets.each do |tweet| %> <%=
tweet.text %> <% end %> ˞ҙຯ <%%>Ͱғ·ΕͨͷRubyͷίʔυɻ @tweetsͰड͚औͬͨσʔλΛeachจͰల։ͯ͠ද͍ࣔͯ͠Δɻ app/views/index.html.erb View
• σʔλϕʔεͷઃܭ ɹɹσʔλͷ໊લɺܗࣜɺΈ߹ΘͤΛهड़͢Δॴ class CreateTweets < ActiveRecord::Migration[5.0] def change create_table
:tweets do |t| t.string :text t.integer :user_id ɹend end end ˞ҙຯ ɹtweetςʔϒϧstringܕtextΧϥϜͱ ɹɹɹɹɹɹɹɹ integerܕuser_idΧϥϜͰߏ͢Δɻ migration db/migrate/20170125110916_create_tweets.rb
σʔλͷߏ ໊લɹจࣈ(λϩ) (cm) ମॏ(kg) ͭͿ͖ จࣈ(τϨʔχϯάͳ͏) ɹɹɹɹɹstring
• σʔλϕʔεͱͷௐ(ςʔϒϧΛ͑ΔΑ͏ʹ͢Δ) • ςʔϒϧಉ࢜ͷؔੑΛఆٛ(reration) • σʔλͷ੍ݶ(validation) ˞ҙຯ tweetϞσϧuserϞσϧʹैଐ͍ͯ͠Δ text140จࣈҎ্ෆՄ class
Tweet < ApplicationRecord belongs_to :user validates :text, length: { maximum: 140 } end app/models/tweet.rb Model
σʔλͷؔੑ ෳ ̍ has_many :tweets belongs_to :user
σʔλͷ੍ݶ ໊લɹଟͯ͘10จࣈ 150 ~ 180cm·Ͱ ମॏ 35 ~ 90
kg·Ͱ ͭͿ͖ 140จࣈҎ
࣮ࡍʹͬͯΈΑ͏ʂ
ᶃ ߘ ᶄ දࣔ ᶅ ฤू ᶆ আ ɹɹɹɹΛͬͨWebΞϓϦͷ࡞ʂ Ruby on Rails Ͱग़དྷΔࣄ OOΛߘɺදࣔɺฤूɺআɻ
ɹɹɹɹɹɹɹͱ͍͏͜ͱͳΒେମͰ͖Δɻ ࠶ͼ
Ruby on Rails ઃܭཧ೦ • CoC (convention over configuration) ɹ໋໊نଇΛकΒͶͳΒͳ͍ɻ
• DRY ʢDon’t Repeat Yourselfʣ ಉ͡هड़Λ܁Γฦ͞ͳ͍ɺলΤωɻमਖ਼ָ͕ɻ • RESTʢRepresentational State Transferʣ URLͱHTTPϝιουͷֻ͚ࢉɺRESTfulͰ͢ɻ ࠶ͼ
͍͍ײ͡ͷࢿྉ • http://blog.sumyapp.com/2013/07/no- recommend-rails/ • http://www.rubylife.jp/rails/ini/ index7.html
Φεεϝͷษڧํ๏ • Progate • TECH::CAMP