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
860
「ふつう」の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.1k
Rails 移行を支える コードレビュー #finc_mw /support_to_rails_from_code_review
matsuhisa
0
710
爆速のために 独自フレームワーク から Rails に移行した話/mobasif_to_ruby_on_rails
matsuhisa
3
2.7k
デザインレビューにエンジニアも参加してみよう/engineers-join-design-review
matsuhisa
0
280
1年間で起きたデザイナーとエンジニアの変化/1year-designer-engineer
matsuhisa
0
530
サービス改善のために エンジニアがすること、 しないこと
matsuhisa
0
1.7k
Other Decks in Programming
See All in Programming
Learning Kotlin with detekt
inouehi
1
210
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
170
Datadog Workflow Automation で圧倒的価値提供
showwin
1
320
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
300
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
21
4.4k
変化の激しい時代における、こだわりのないエンジニアの強さ
satoshi256kbyte
1
500
コードを読んで理解するko build
bells17
1
120
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
510
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
330
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
210
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
1.2k
Featured
See All Featured
It's Worth the Effort
3n
184
28k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Being A Developer After 40
akosma
89
590k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
A Modern Web Designer's Workflow
chriscoyier
693
190k
4 Signs Your Business is Dying
shpigford
183
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Designing for Performance
lara
605
68k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
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ΞϓϦέʔγϣϯͰ͋ΕมԽΛड͚ೖ Ε͘͢ͳΔ ·ͱΊ