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
「ふつう」のRuby on Rails ウェブアプリケーション #clipla_mwed ...
Search
matsuhisa
May 24, 2017
Programming
1
850
「ふつう」のRuby on Rails ウェブアプリケーション #clipla_mwed /ruby_on_rails_for_minnano_wedding
「ふつう」のRuby on Rails ウェブサービス開発(Clipla x みんなのウェディング)での発表資料です #clipla_mwed
matsuhisa
May 24, 2017
Tweet
Share
More Decks by matsuhisa
See All by matsuhisa
Rails移行のレキシ/mobasif-to-ruby-on-rails2017
matsuhisa
1
1.5k
Railsでつくる 画像アップロード 2017 #railsdm /rails_developers_meetup6_image_upload
matsuhisa
0
1.2k
デザインレビューにエンジニアも参加してみよう/engineers-join-design-review-2017
matsuhisa
0
1.1k
Rails 移行を支える コードレビュー #finc_mw /support_to_rails_from_code_review
matsuhisa
0
700
爆速のために 独自フレームワーク から Rails に移行した話/mobasif_to_ruby_on_rails
matsuhisa
3
2.7k
デザインレビューにエンジニアも参加してみよう/engineers-join-design-review
matsuhisa
0
260
1年間で起きたデザイナーとエンジニアの変化/1year-designer-engineer
matsuhisa
0
520
サービス改善のために エンジニアがすること、 しないこと
matsuhisa
0
1.7k
Other Decks in Programming
See All in Programming
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
たのしいparse.y
ydah
3
120
useSyncExternalStoreを使いまくる
ssssota
6
1k
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
190
MCP with Cloudflare Workers
yusukebe
2
220
From Translations to Multi Dimension Entities
alexanderschranz
2
130
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Done Done
chrislema
181
16k
How to Ace a Technical Interview
jacobian
276
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
How to train your dragon (web standard)
notwaldorf
88
5.7k
Visualization
eitanlees
146
15k
Documentation Writing (for coders)
carmenintech
66
4.5k
Rails Girls Zürich Keynote
gr2m
94
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Optimising Largest Contentful Paint
csswizardry
33
3k
Transcript
ʮ;ͭ͏ʯͷ3VCZPO3BJMT ΣϒΞϓϦέʔγϣϯ ݄ɹদٱߒ৳
w גࣜձࣾΈΜͳͷΣσΟϯά ΣϒΞϓϦέʔγϣϯͷΤϯδχΞ w 5XJUUFSɿ!LBNPOFHJ w IUUQXXXqJDLSDPNQIPUPTNBUTVIJTB দٱɹߒ৳
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
ΈΜͳͷΣσΟϯάʹ͍ͭͯ w ໊͙Β͍ɻΤϯδχΞ ໊͕ఔ w αʔϏεఏڙ։࢝ɻձ ࣾઃཱ w 1FSM͔Β3VCZPO3BJMTΛར ༻Ҡߦத
w 3VCZɺ +BWB4DSJQUʢ&4ʣɺ1FSM גࣜձࣾΈΜͳͷΣσΟϯά
ΈΜͳͷΣσΟϯάʹ͍ͭͯ ΈΜͳͷΣσΟϯά ՖՇɾՖ͕࣮ମݧʹج͍ͮͨʮຊԻͷޱίϛʯʮ࣮ࡍͷ අ༻໌ࡉʯͳͲͰࠃ Ҏ্ͷ͔݁ࠗࣜΒࣜΛબ Δʮ݁ࠗࣜબͼͷޱίϛαΠτʯͰ͢
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ͍ͭͰͲ͜ʹͰ͋ͬͯɼΊͣΒ͘͠ͳ͍͜ͱʢ͞·ʣ ΄͔ͱ͘ΒͯಛʹมΘΒͳ͍͜ͱʢ͞·ʣɻ ಛผͰͳ͘ɼҰൠతͰ͋Δ͜ͱʢ͞·ʣɻ ʮ;ͭ͏ʯͱ εʔύʔେࣙྛ
ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࢢʹྲྀ௨͍ͯ͠Δ͕ϝʔΧʔ͝ͱͷݸੑΛࣦ͍ɺফඅऀʹͱͬͯ Ͳ͜ͷϝʔΧʔͷΛߪೖͯ͠େࠩͷͳ͍ঢ়ଶʢ8JLJQFEJBʣ 3VCZPO3BJMTʮ;ͭ͏ʯʹͳͬͨʁ 3VCZPO3BJMT "84
˞8BOUFEMZͷٻਓ݅ʢ݄ʣ
ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ʮΈΜͳͷΣσΟϯάʯͷதͷ3VCZPO3BJMT 3VCZPO3BJMT %# ςετ ϑϩϯτ Πϯϑϥ σϓϩΠ ղੳ ݕࡧ
SFETIJGU SFEBTI 4MBDL $PEF%FQMPZ &MBTUJD4FBSDI "84
ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ w ʮ;ͭ͏ʯʹ3VCZPO3BJMTΛͬͯΣϒαʔϏεΛ։ൃͰ͖͍ͯΔ ͷͩΖ͏͔ʁ w 3BJMTඪ४Ͱ͋Εʮ;ͭ͏ʯ w HFNͳͲͰɺେൊͷยํͰ͋Εʮ;ͭ͏ʯ w ൺֱ͢Δର͕ͳ͍ͱʮ;ͭ͏ʯΛஅͰ͖ͳ͍
w ΈΜͳͷΣσΟϯάͷݱঢ়Λ;Γ͔͑Δ ʮ;ͭ͏ʯ͕ग़དྷ͍ͯΔͷ͔ʁ
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
࣮ߦڥ 1FSMͷಠࣗϑϨʔϜϫʔΫʢچڥʣ͔Β3VCZPO3BJMTʹҠߦத ݱࡏچڥͱ3BJMT͕ฏߦՔಇத 3VCZPO3BJMT .PCB4J' ʢچڥʣ OHJOY
࣮ߦڥ w Πϯϑϥ"NB[PO8FC4FSWJDFT w 1VNB OHJOYΛར༻ w 6OJDPSO͡Όͳ͍ w .Z42-
w จࣈίʔυ$1Ͱ͢ɻ65'Ҡߦ༧ఆͰ͢ w چγεςϜ͕$1Λར༻͍ͯ͠Δ ࣮ߦڥ
࣮ߦڥ w ݱࡏɺΛར༻ w ࠷৽ɺʢϦϦʔεɿ݄ʣ w ݄ w ͦΖͦΖόʔδϣϯΞοϓ͍ͨ͠ 3VCZ
࣮ߦڥ w ݱࡏɺ3VCZPO3BJMTΛར༻ w 3VCZPO3BJMTͷόʔδϣϯΞοϓ࡞ۀΛਐΊ͍ͯΔ w ݄ϦϦʔε w ݄ϦϦʔε w
ϑϨʔϜϫʔΫͷैʹ͔͔Γͦ͏ͳͷ͍ʁ 3VCZPO3BJMT
࣮ߦڥ w ͋·Γར༻͠ͳ͍ʁ ΧδϡΞϧʹೖΕΔʁ w બํΛݕ౼த w ݸ(FNpMFʹهࡌ ʢʣ HFNͷར༻
࣮ߦڥ w UBDIJLPNBΛར༻ͯ͠ʑͷ ΞοϓσʔτʹରԠ͍ͯ͠Δ w ͨ·ʹରԠͰ͖ͳ͍͕࣌͋Δɻ w ྫ͑3VCPDPQͷόʔδϣϯΞο ϓΛ͞΅Γ·ͨ͠ʢ݁Ռɺ ਏ͍͜ͱʹʣ
w େ͖ͳόʔδϣϯΞοϓͷ࣌ɺ ݕূ͔ͯ͠ΒϚʔδ͢Δ͕࣌͋ Δ CVOEMFV
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
ϑϩϯτΤϯυ w )BNMར༻͍ͯ͠Δ w ʢࠓ·ͰΑΓʣγϡοͱΞοϓσʔτ w &3#͡Όͳ͍ w ඪ४Ͱͳ͍͕બཧ༝͕͋Δ w
ϚʔΫΞοϓΛָʹ͠Α͏ͱࢥͬͯબʢด͡λάॻ͖ͨ͘ͳ͍ʣ 7JFXʢςϯϓϨʔτʣ
ϑϩϯτΤϯυ w ৽͘͠࡞Δͷɺ&4ʢ&$."4DSJQUʣͰ࡞Δ w &4MJOUΛͬͯνΣοΫ͍ͯ͠Δ w K2VFSZ͍ͬͯΔ w 41"ʢTJOHMFQBHFBQQMJDBUJPOʣ͕ͳ͍ w
ࠓޙ͋Γͦ͏ w 3FBDUʁ"OHVMBS+4ʁͳͲ͏͔͠Εͳ͍ +BWB4DSJQU
ϑϩϯτΤϯυ 4$44ɺσβΠϯΨΠυϥΠϯ͕͋Γ҆ఆ͖͍ͯͯ͠Δײ σβΠϯνΣοΫਓྗ͚ͩΕͲɺσβΠφʔͱڠྗͯ͠ରԠ 4$44
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
ςετ ςετͱ͍͑ʜ
ςετ w !U@XBEBͷલͰݴ͑ͳͯ͘ɺࣾͰʮॻ͍ͯͳ͍ʯͱݴ͑ͯ͠· ͏ w ٸ͗ͷࣄ͋Δ͚ΕͲʜ w ॻ͍ͯ͋Δͷ͕ʮ;ͭ͏ʯʹ͍ͯ͘͠ʢؾ࣋ͪʣ ςετͬͯ͘
ςετ w 34QFD 'BDUPSZ(JSMΛར༻ w NJOJUFTUͰͳ͍ w ࠓޙ34QFDͰ͍͍ͷ͔ʁͱ͍͏ٙ͋Δ w 34QFDͷ͍ํΛशಘ͢Δͷʹ͕͔͔࣌ؒͬͨ
34QFD 'BDUPSZ(JSM
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
σʔλϕʔε w چγεςϜͰ࡞ΒΕͨςʔϒϧઃܭΛͦͷ··ར༻͍ͯ͠Δ w ςʔϒϧઃܭୈࡾਖ਼نԽΛجຊͱͯ͠ߟ͑Δ w 3BJMTؔͳ͍ w ग़དྷ͍ͯΔ͔Ͳ͏͔ผͷ ςʔϒϧઃܭ
σʔλϕʔε w 3BJMTͷNJHSBUFΛ͍ͬͯͳ͍ w چγεςϜ͋ΔͷͰ3JEHFQPMFΛ͍ͬͯΔ w ςʔϒϧઃܭHJUIVCͰϨϏϡʔ͢Δର w TDIFNBͷϦϙδτϦ͕͋ΓɺϨϏϡʔΛ͏͚ͯϓϧϦΫΤετΛϚʔ δ͢Δͱ42-ϑΝΠϧ͕&YQPSU͞ΕɺΞϓϦέʔγϣϯͷϦϙδτ
ϦͷNBTUFSʹίϛοτ͞ΕΔ 4DIFNB%#
"HFOEB ΈΜͳͷΣσΟϯάʹ͍ͭͯ ʮ;ͭ͏ʯͷ3VCZPO3BJMTͱʁ ࣮ߦڥ ϑϩϯτΤϯυ ςετ σʔλϕʔε ·ͱΊ ͓͢͠Δ͜ͱ
·ͱΊ w ग़དྷ͍ͯΔͱ͜Ζ͋Δ͕ɺ·ͩग़དྷ͍ͯͳ͍ͱ͜Ζ͋Δ w ࣮ߦڥɺै͕ग़དྷ͖͍ͯͯΔ w ϑϩϯτΤϯυग़དྷͯΔʢࠓޙͷ՝͋Δʣ w ςετʜ͍͖ͬͯ·͢ w
σʔλϕʔεɺچγεςϜ͋ΓҰ֓ʹݴ͑ͳͦ͞͏ ʮ;ͭ͏ʯ͕ग़དྷ͍ͯΔͷ͔ʁ
·ͱΊ w ՁΛ͘ಧ͚ΔͷΛʮ;ͭ͏ʯʹ w രͷͨΊʹಠࣗϑϨʔϜϫʔΫ͔Β3BJMTʹҠߦͨ͠ w IUUQTTQFBLFSEFDLDPNNBUTVIJTBNPCBTJGUPSVCZPOSBJMT w ݁ࠗࣜଟ༷Խ͓ͯ͠Γɺ݁ࠗࣜΛ͢ΔมΘΒͳ͍ͷͰϢʔβͷ ೖΕସΘΓ͕͋ΔͷͰɺαʔϏε͕มΘΓଓ͚Δͷ͕ʮ;ͭ͏ʯͰ͋Δ
͜ͱΛՄೳʹ͢ΔγεςϜͰ͋Γ͍ͨ αʔϏε։ൃͷʮ;ͭ͏ʯͷͨΊͷ3VCZPO3BJMT
·ͱΊ w ΞϓϦέʔγϣϯ͕ɺ༷มߋΛड͚ೖΕΒΕΔࣄ͕ʮ;ͭ͏ʯͷঢ়ଶ Ͱ͋Γ͍ͨ w αʔϏεՁΛ্͛ଓ͚ΔͨΊʹɺมԽ͠ଓ͚ΒΕΔ͜ͱ͕ॏཁ w ʮ;ͭ͏ʯͷ3VCZPO3BJMTΞϓϦέʔγϣϯͰ͋ΕมԽΛड͚ೖ Ε͘͢ͳΔ ·ͱΊ