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
42
TRUNK 0125 トレーニング
Ruby on Rails | 2時間でTwitterを作ろう
oyaoyaoya
January 25, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
Discord とビルダー&チャットボットの使い方 / How to use Discord and Builder & Chatbots
ks91
PRO
0
130
オブザーバビリティの Primary Signals
onk
PRO
0
550
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
330
クラウドサインにおけるプロダクトマネージャーの役割と開発プロセス / 20240410_cloudsign-PdM
bengo4com
1
680
Garoon 開発チーム / Garoon development team
cybozuinsideout
PRO
2
2.9k
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
130
20240416_devopsdaystokyo
kzkmaeda
1
190
Databricks におけるデータエンジニアリング
databricksjapan
0
380
スタートアップの技術顧問を3年間続けて発生した事と気付き
biwakonbu
0
160
疲弊しない!AWSセキュリティ統制の考え方 #devio_osakaday1
masahirokawahara
6
5.9k
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
8
1.9k
自動生成を活用した、運用保守コストを抑える Error/Alert/Runbook の一元集約管理 / Centralized management of Error/Alert/Runbook to minimize operational costs using automated code generation
biwashi
9
2.1k
Featured
See All Featured
Writing Fast Ruby
sferik
620
60k
Imperfection Machines: The Place of Print at Facebook
scottboms
258
12k
Design by the Numbers
sachag
274
18k
Facilitating Awesome Meetings
lara
41
5.6k
What's in a price? How to price your products and services
michaelherold
237
11k
Side Projects
sachag
451
41k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
Building Your Own Lightsaber
phodgson
98
5.7k
Building Effective Engineering Teams - LeadDev
addyosmani
27
1.8k
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