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
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
120
Context Engineeringの取り組み
nutslove
0
370
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
350
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
1
2.9k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
20260204_Midosuji_Tech
takuyay0ne
1
160
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Embracing the Ebb and Flow
colly
88
5k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
740
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
69
Git: the NoSQL Database
bkeepers
PRO
432
66k
KATA
mclloyd
PRO
34
15k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Are puppies a ranking factor?
jonoalderson
1
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
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