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
900
「ふつう」の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.6k
Railsでつくる 画像アップロード 2017 #railsdm /rails_developers_meetup6_image_upload
matsuhisa
0
1.2k
デザインレビューにエンジニアも参加してみよう/engineers-join-design-review-2017
matsuhisa
0
1.2k
Rails 移行を支える コードレビュー #finc_mw /support_to_rails_from_code_review
matsuhisa
0
740
爆速のために 独自フレームワーク から Rails に移行した話/mobasif_to_ruby_on_rails
matsuhisa
3
2.8k
デザインレビューにエンジニアも参加してみよう/engineers-join-design-review
matsuhisa
0
310
1年間で起きたデザイナーとエンジニアの変化/1year-designer-engineer
matsuhisa
0
550
サービス改善のために エンジニアがすること、 しないこと
matsuhisa
0
1.8k
Other Decks in Programming
See All in Programming
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
5
1.5k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
200
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
140
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
37k
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
130
開発に寄りそう自動テストの実現
goyoki
2
1.7k
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
570
Deno Tunnel を使ってみた話
kamekyame
0
290
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
170
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
440
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Design in an AI World
tapps
0
100
How to train your dragon (web standard)
notwaldorf
97
6.5k
Paper Plane
katiecoart
PRO
0
45k
Deep Space Network (abreviated)
tonyrice
0
32
How to Ace a Technical Interview
jacobian
281
24k
Navigating Weather and Climate Data
rabernat
0
60
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
74
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLとの向き合い方2022年版
quramy
50
14k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Mind Mapping
helmedeiros
PRO
0
44
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ΞϓϦέʔγϣϯͰ͋ΕมԽΛड͚ೖ Ε͘͢ͳΔ ·ͱΊ