Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
メドピアの輪読会
Search
motsat
January 23, 2018
Programming
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メドピアの輪読会
2018/1/18 メドピア株式会社 × 株式会社みんなのウェディング合同勉強会、「サービスを Ruby / Rails で成長させるためにやったこと」の発表資料です。
motsat
January 23, 2018
More Decks by motsat
See All by motsat
「SmartHR基本機能」の溜まっていく技術課題への取り組み
motsat
0
1.9k
Elasticsearchで多言語検索対応してみた話.pdf
motsat
2
1.5k
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
660
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2.8k
iOSDC2026登壇資料.pdf
riofujimon
0
170
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
450
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
420
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
300
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
180
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
App Intentsのビルドプロセスを支える技術
kntkymt
0
400
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Done Done
chrislema
186
16k
Un-Boring Meetings
codingconduct
0
420
The SEO Collaboration Effect
kristinabergwall1
1
570
WENDY [Excerpt]
tessaabrams
14
39k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Site-Speed That Sticks
csswizardry
13
1.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Ethics towards AI in product and experience design
skipperchong
2
380
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Transcript
αʔϏεΛ Ruby / Rails Ͱ ͤ͞ΔͨΊʹͬͨ͜ͱ
ࣗݾհ ɹɾ໊લ ɹɹࠤ౻ ݩل ɹɾϝυϐΞྺ ɹɹ 2017/9 ʙ WebΤϯδχΞɹɹ ɹɹʢ࠷ۙElasticsearchɺAWS
SNSͰPush௨पΓʣ ɹɾͦͷલ ɹɹ- Ruby on Rails/ C++ (ιʔγϟϧήʔϜ) ɹɹ- PHP Maple/ΦϨΦϨ (ձһ੍ಈըܥαʔϏε)
ϝυϐΞͷྠಡձ
લஔ͖ ϝυϐΞͷݱঢ়
ҩࢣઐ༻αΠτʮMedPeerʯ
Ruby on Rails (৽ڥ)ͱ PHP on ಠࣗϑϨʔϜϫʔΫ(چڥ) ͕ڞଘ
ฐࣾϒϩά: ɹϨΨγʔͳಠࣗϑϨʔϜϫʔΫ͔Β٫ͯ͠RailsঃʑʹҠߦ ͍ͯ͠Δ http://tech.medpeer.co.jp/entry/2017/01/31/004227
PHP͔ΒRuby on Railsͷ Ҡߦελʔτ1.5લ
RubyΤϯδχΞ : 10ਓத2ਓ
Ҡߦͷҝʹ ɾPHP͍ͬͯΔਓ͕RubyΛ࢝ΊͨΓ ɾRubyະܦݧऀ͕ೖͬͨΓʢܦݧऀೖͬͨΓʣ
Ruby/Railsͷܦݧগͳ͍ਓ͔Βଟ͍ਓ·Ͱ ෯͍ҝɺRuby/RailsΛϝΠϯʹͷҝ ͷऔΓΈΛߦ͍ͬͯ·͢ɻ
ԬRubyձٞ: ɹϝυϐΞͷશྗRailsԽͷऔΓΈࡽ͠·͢! ( by CTO fukumura ) https://speakerdeck.com/fukumura/metohiafalsequan-li- railshua-falsequ-rizu-mishai-simasu
ओͳऔΓΈ ɾίʔυϨϏϡʔʢRailsܦݧଟ͍ਓͷϨϏϡʔʣ ɹ2017ʹ࢝ΊͨϝυϐΞΤϯδχΞνʔϜͷ৽͍͠औΓΈʹ͍ͭͯ ɹhttp://tech.medpeer.co.jp/entry/2017/12/27/180000 ɾ։ൃ߹॓ ɹ։ൃ߹॓!?ͦΕͳΒϖϯγϣϯͰ͠ΐ!! ʙ܈അݝΈͳ͔ΈொͷϝυϐΞ։ൃ߹॓ࢽʙ ɹ http://tech.medpeer.co.jp/entry/2017/12/06/110000
ओͳऔΓΈ ɾKPTͰؾʹͳΔϨϏϡʔΛৼΓฦΔ ɾಡॻձʢྠಡձʣ
ྠಡձ ɾͲ͏͍ͬͯΔ͔ ɾྑ͔ͬͨ/ѱ͔ͬͨࣄ
ྠಡձͱ ਓʑ͕ू·ͬͯɺಉ͡ڭՊॻͳͲͷຊΛಡΈɺͦͷ ༰ʹ͍ͭͯҙݟΛަΘ͢͜ͱΛҙຯ͢Δޠ
Ұਓಡॻͷྑ͍ॴ ɾ͖ͳ࣌ʹಡΊΔ ɾ͖ͳॴͰಡΊΔ ɾ͖ͳϖʔεͰಡΊΔʢௐͨΓɺࢼ ͨ͠Γ ɾͬͯΔॴඈͤΔ
ྠಡձ > Ұਓͷಡॻ ͱ͍͏Θ͚Ͱͳ͍
ྠಡձͱ ਓʑ͕ू·ͬͯɺಉ͡ڭՊॻͳͲͷຊΛಡΈɺͦ ͷ༰ʹ͍ͭͯҙݟΛަΘ͢͜ͱΛҙຯ͢Δޠ (weblioΑΓ) →ྠಡձͷதͰɺಛʹ͜ͷதͰྑ͔ͬͨ෦ͷ
ϝυϐΞͰͷΓํ ຊ͝ͱʹΓํม͑ͨΓ͍ͯ͠Δ͕ɺ ɾ1ਓ1߲ɺԻಡ͢Δ ɾಡΜͩॴͷ࣭ٞʢແ͍࣌͋Δʣ ɾ൪੍Ͱൃදऀ͕ઌʹ༰·ͱΊͨΓ ɹˠΓํ·ͩࡧத
༷ࢠ
ϝυϐΞͷΑ͏ʹɺ ɾRuby/Railsͷܦݧ →·ͪ·ͪ ɾϝυϐΞྺ → ·ͪ·ͪ ɾಉ͡ιʔείʔυʢϦϙδτϦʣ৮Δࣄ͕ଟ͍ ͱ͍͏ঢ়گͰɺ ྠಡձܗ͕ࣜྑ͔ͬͨͳͱࢥ͏ࣄྫͷհ
ྫ1 RailsGuides https://railsguides.jp/ ʢຊͱݴ͏͔αΠτͰ͕͢ʣ
ͳΜͰ͜ͷຊʹ͔ͨ͠ ɾRailsͷػೳΛମܥతʹΘ͔Γ͘͢հ͍ͯͯ͠ɺ ܦݧ(গ)ͳ͍ਓʹͱ͖͍ͬͭ͢
͜ͷຊͷྠಡձͰ͋ͬͨٞ
Action Controller ͷ֓ཁ (8.ϑΟϧλ) ࣭ٞ ʮControllerͷfillterɺonly͘͠exceptͰࢦఆ͢Δ ߹ɺͲͪΒΛ͏ʁʯ ʮͱΓ͋͑ͣ҆શଆʹΕΔํ͕ྑͦ͞͏ʯ ɹ
ɾܦݧগͳ͍ਓ ɹػೳ + ͏ஈ֊ʹͳͬͯ໎͏෦ΛઌʹҙࣝͰ͖ ͨ ɾͦΕҎ֎ͷਓ ɹνʔϜͰͲ͏͢Δ͔ͷҙࣝΛ߹ΘͤΔ͜ͱ͕ Ͱ͖ͨ ɹ
ྫ2 Everyday Rails - RSpec ʹΑΔRailsςετೖ
ͳΜͰ͜ͷຊʹ͔ͨ͠ ςετΛRSpecͰॻ͍͍͕ͯͨɺ ɾςετͷཻ͕ҧͬͨΓ ɾਖ਼͍͠ॻ͖ํͰ͖ͯΔ͔ո͍͠ʢଞͷΛਅࣅ͍ͯΔ͚ͩʁʣ ͱ͍͏ͷղফͷҝ
͜ͷຊͷྠಡձͰ͋ͬͨٞ
7.ίϯτϩʔϥεϖοΫͷΫϦʔϯΞοϓ ࣭ٞ ʮShared Examples ɺॏෳഉআͰ͖ͯྑ͍ʯ ʮॲཧ͕ݟ͑ʹ͘͘ͳΔ໘͋ΔɻݟͮΒ͘ͳΒͳ͍͔ߟ͑ ͯͬͨํ͕ྑ͍ʯ
ɾܦݧগͳ͍ਓ ɹػೳ+ܦݧऀͷͭΒΈΛઌʹΕͨ ɾͦΕҎ֎ͷਓ ɹνʔϜͰͲ͏͢Δ͔ɺҙࣝ߹ΘͤͰ͖ͨ
?.??(Ͳͷষ͔ͩͬͨΕ·ͨ͠ʣ ࣭ٞ ʮRakeλεΫςετॻ͘ʁʯ ʮmodel()ʹϩδοΫҠৡͯͦ͠ΕΛݺͼग़͚ͩ͢ʹ ͍ͨ͠ʯ ʮͰtypoνΣοΫ͚ͩͷҝͰςετ͋ͬͨ΄͏͕҆ ৺ʯ
ܦݧଟ͍/গͳ͍ݶΒͣɺνʔϜͰ ͳΜͱͳ͘;Θͬͱ͍ͯͨ͠ॴ͕߹ ͑ͨɻ·ͨɺͦͷߟ͑Λڞ༗Ͱ͖ͨɻ
ྫ3ʣΦϒδΣΫτࢦઃܭ ࣮ફΨΠυͷ߹
ͳΜͰ͜ͷຊʹ͔ͨ͠ ɾRailsҠߦ͕গ͠ਐΈɺΦϒδΣΫτࢦ ઃܭతͳ෦Ͱ͕ݟ͖͑ͯͨͨΊ
͜ͷຊͷྠಡձͰ͋ͬͨٞ
ୈ̑ষɹμοΫλΠϐϯάͰίετΛݮ͢ Δ ࣭ٞ ʮμοΫλΠϐϯάා͍ɻJavaͳΒΠϯλʔϑΣʔεͱ͔͋Δͷʹʯ ɹɹɹɹɹ
ɾPHP/Ruby ܦݧऀ ɹ੩తܕ͚ݴޠͷܦݧऀͱײ֮ͷࠩΛײ͡Εͨ ɾJava ܦݧऀ ɹಉ͡ΦϒδΣΫτࢦͰɺ࣮ํ๏ʹ͔ͳΓࠩ ͕͋Δ͜ͱ͕Θ͔ͬͨ
4.5 σϝςϧͷ๏ଇ σϝςϧͷ๏ଇɺΦϒδΣΫτΛૄ݁߹ʹ͢Δ ͨΊͷنͷू·Γɻ͜ͷதͰҕৡग़ͯ͘Δɻ
4.5 σϝςϧͷ๏ଇ ࣭ٞ ʮҕৡɺActiveRecordͰΔͳΒdelegate͕͋Δʯ ʮdelegateɺϧʔϓͰN+1͕ൃੜ͢ΔՕॴΛݟམͱ͠ ͘͢ͳΔ͜ͱʯ
ຊRubyϝΠϯͳͷͰRailsActiveRecordʹ͍ͭͯ ৮Ε͍ͯͳ͍ ͕ɺ RailsΞϓϦ։ൃϝϯόʔͰͷಡॻձͩͬͨͷͰݱͰ ͏࣌ͷ͍ํؾΛ͚ͭΔϙΠϯτΛઌʹ͢͜ͱ͕Ͱ ͖ͨɻ
ୈ6ষ ܧঝʹΑͬͯৼΔ͍Λ֫ಘ͢Δ ࣭ٞ ʮܧঝͰඍົͳڞ௨Խ͕͞ΕͯͭΒ͍ॴ͕hogeॲཧʹ͋ Δʯ ʮڞ௨Խͨͩιʔείʔυ͕ಉ͔ͩ͡Βͬͯͬͯ͘ͱޙ ͰٯʹͭΒ͘ͳΔʯ
ಉ͡ιʔείʔυΛ৮Δϝϯόʔ͔Βɺ ۩ମతͳྫͷڞ༗ͱະདྷͷͭΒΈ͙͖͔͚͕ͬ Ͱ͖ͨɻ
͜Μͳײ͡ͰɺྠಡձΛ͢Δ ࣄͰຊͷ༰Ҏ֎ʹ͍Ζ͍Ζ ಘΔͷ͕͋Γ·ͨ͠
ྠಡձΛଓ͚ΒΕΔڥ
ɾ࣌ؒ ɹۀ࣌ؒɻਫ༵10:30ʙ11:30 ɹۀޙேૣ͗͢ΔͱɺͨͿΜࢀՃऀݮΔɻ ɹશһͷͨΊͷऔΓΈͰͳ͘ͳͬͯ͠·͏ɻ
ɾຊ ɹձࣾܦඅɻ1ਓ1ɺిࢠॻ੶Ͱ࣮ͰOKɻ ɹܦඅͰམͱͤͳ͍ͱΈΜͳͰಉ͡ຊΛݟΔͱ͍͏ ϋʔυϧ্͕Δɻ
ձࣾͷཧղ͕͋ͬͯͦ͜ ಛʹ ɾۀ࣌ؒʹΔ͜ͱ ຊಡΉͷ͕ۀͳͷʁͱɺΤϯδχΞҎ֎͕ී௨ʹٙΛײ͡Δؾ͕͢Δɻ ɹˠʮಡॻձ/ྠಡձʯ໊ͬͯલ͕ۀײग़ʹ͍͘ͷͰʮγεςϜ։ൃख๏ ʹ͍ͭͯͷhogeʯͷΑ͏ͳ໊લʹͨ͠Γۀײग़͢ͷ͋Γ͔ʁ
PRϖʔδ ϝυϐΞΤϯδχΞ׆ಈʹཧղ͋ΔձࣾͰ͢ɻ CTO fukumuraʮؤுͬͯܦӦਞઆಘͯͨ͠Ͷͬͯੲͷಉ྅͔ΒݴΘΕͨɻ ͦΜͳʹؤுͬͯͨͭΓແ͔ͬͨʯ ↓࠷ۙͷ࣮ ɹRuby25पه೦ΠϕϯτɺܦඅͰߦ͚·͢ʢϝυϐΞεϙϯαʔͬ ͯ·͢ʣ
ٞࣄ ɹ͋ͬͨํ͕ྑ͍ɻ ʢձͷதͰग़ͨࢀߟURLͳͲSlackʹషͬͨΓ͍ͯ͠·͢ʣ ɹɾܽ੮ऀ͕࣍ʹࢀՃ͍͢͠Α͏ʹ ɹɾΕͳ͍Α͏ʹ ɹɾະདྷͷϝϯόʔʹΘΔΑ͏ʹ ɹɾϒϩάωλ
ࢀՃϝϯόʔ ͓ʹରͯ͠ɺܦݧଟ͍ਓ͕͍ͨํ͕ྑ͍ ɾ࣭ɺٞΛͦͷͰղܾͰ͖Δ ɾຊ͚ͩͩͱແ͍ܦݧΛઌʹͤΔ ʢϝυϐΞɺٕज़ސwillnet͞ΜʹඞͣࢀՃͯ͠ Β͍ͬͯ·͢ʣ
ͲΜͳຊ͕ྑ͔͔ͬͨʢྑͦ͞͏͔ʣ 1.ͦͷͰ͋ΔఔཧղͰ͖Δ ɹ༧श͖͍ͯͯ͠ͳ͍લఏɻࢀՃϋʔυϧ্͛ͳ͍ɻ
ͲΜͳຊ͕ྑ͔͔ͬͨʢྑͦ͞͏͔ʣ 2.αϯϓϧίʔυ͕ϝΠϯͰͳ͍ ɹ͍αϯϓϧίʔυ͕͋Δͱɺͦ͜ͰཧղͰ͖Δਓ/Ͱ͖ͳ͍ਓ͕Ͱ͖ͯ ͍͢ɻ ɹࢀߟఔʹॻ͍ͯ͋ΔͷɺRails GuidesΈ͍ͨʹͯ͘ཧղ͍͢͠ ͷେৎɻ
ͲΜͳຊ͕ྑ͔͔ͬͨʢྑͦ͞͏͔ʣ 3.༰͕ຖճ݁͢Δͷ ɹܽ੮ɺهԱ͕ඈͿͳͲɺલͷ༰͕಄ʹͳ͍ͱ࣍ͷཧղ͕͍͠ɻ ɹʮ ΦϒδΣΫτࢦઃܭ࣮ફΨΠυʯɺ͖͍ͭ෦͋Δɻ
ͲΜͳຊ͕ྑ͔͔ͬͨʢྑͦ͞͏͔ʣ 4.ͦͷ࣌ඞཁͳͷ ɹRailsҠߦॳRailsΨΠυɺগ͠ܦͬͯઃܭʹվળ͕ݟ͖͑ͯͨΒ ɹʮΦϒδΣΫτࢦઃܭ࣮ફΨΠυʯͳͲɻ ɹཧղ͠ͳ͍ͱ·͍ͣ > ཧղ͍ͨ͠
՝ ɾਓ͕૿͑Δͱո͍͠ ɹࠓ10ਓఔ͕ͩɺਓ͕૿͑Δͱ͕ࣗಡΉ ॱ൪ճΓͮΒ͘ۓுײແ͘ͳΓձͮ͠Β ͘ͳΔؾ͕͢Δ ɹ
՝ ɾ໊લ͕ී௨͔ͩΒม͍͑ͨ ɹʮྠಡձʯΛΤοδ͕ޮ͍ͨײ͡ʹ
·ͱΊ ɾҰਓಡॻྑ͍͚Ͳྠಡձ͍͍ ɾຊʹॻ͍ͯ͋Δ͜ͱҎ֎͕ಘΒΕͨ ɹ- ܦݧʢऀͷʣ ɹ- ҧ͏ࢹ ɹ- ࣗͨͪͲ͏͍͔ͯ͘͠ ɾձࣾͷཧղʢۀ࣌ؒɺ͓ۚʣඞཁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠