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
管理画面再考
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
HaiTo
December 01, 2016
Programming
260
0
Share
管理画面再考
表参道rb17の発表資料です
HaiTo
December 01, 2016
More Decks by HaiTo
See All by HaiTo
Form Object へ捧げる気持ち
haito
0
1.7k
ゾンビを倒してRuby.2.2に上げた話
haito
0
120
独自Worker管理が辛い
haito
0
200
色々なレビューの話
haito
0
160
おしゃれっぽくターミナルでストリーミング再生をしたかった話
haito
0
130
dendai_lt_1011
haito
0
65
Other Decks in Programming
See All in Programming
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
270
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
400
Vibe NLP for Applied NLP
inesmontani
PRO
0
530
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
1
110
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2k
JOAI2026 1st solution - heron0519 -
heron0519
0
160
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
160
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
150
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
1.1k
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.6k
感情を設計する
ichimichi
5
1.6k
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
120
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.6k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
How GitHub (no longer) Works
holman
316
150k
Designing Experiences People Love
moore
143
24k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
380
Navigating Team Friction
lara
192
16k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
The Curse of the Amulet
leimatthew05
1
12k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Side Projects
sachag
455
43k
The SEO identity crisis: Don't let AI make you average
varn
0
450
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
270
Transcript
Omotesandorb#17 ཧը໘࠶ߟ HaiTo
࣍ ❖ ࣗݾհ ❖ ཧը໘ʹ͍ͭͯվΊͯߟ͑Δ ❖ ໊σʔλԽͷཧը໘νϥݟͤ ❖ ͜Ε͔Βͷཧը໘ͷཉ
࣍ ❖ ࣗݾհ ❖ ཧը໘ʹ͍ͭͯվΊͯߟ͑Δ ❖ ໊σʔλԽͷཧը໘νϥݟͤ ❖ ͜Ε͔Βͷཧը໘ͷཉ
·ͣࣗݾհ HaiTo Sansanגࣜձࣾॴଐ Ruby on Rails Ͱ͝൧Λ৯ͩͯ͠ೋ ͘Β͍ ࠷ۙͷؔ৺ϞσϦϯάͱ͔ઃܭͱ͔ͦ ͏͍͏ॴ
࣍ ❖ ࣗݾհ ❖ ཧը໘ʹ͍ͭͯվΊͯߟ͑Δ ❖ ໊σʔλԽͷཧը໘νϥݟͤ ❖ ͜Ε͔Βͷཧը໘ͷཉ
ཧը໘ͱ ❖ ΣϒαʔϏεγεςϜΛ࡞ͬ ͨͱ͖ʹɺӡ༻Λ͍͢͠Α͏ ʹ࡞ΔͰ͋Ζ͏ɺҰൠͷϢʔ βʔݟ͑ͳ͍தͷਓ͚ͷ ը໘ ❖ தͷਓ͕ͦͷγεςϜΛ͏ͱ ͖ʹ͏ศརͳԿ͔ͳࣄ͕ଟ
͍
ཧը໘ͱ ❖ ӡ༻͚ͩͰͳ͘ɺઓུΛཱͯ ΔͨΊͷσʔλΛͱͬͨΓɺͦ ΕΛੳ͢Δࣄཧը໘Ͱ Γͦ͏ͳ͜ͱͱͯ͋͠Γ·͢ Ͷɻ ❖ ͋ΔҙຯɺԿͰ͔ΜͰ٧Ί ࠐΊͦ͏ͳ༻ޠ
Ϣʔβʔʹର͢Δཧը໘ ❖ Ϣʔβʔ͕ৼΕΔʮཧը ໘ʯͱݺΕΔϞϊ͋Γ· ͢Ͷ
RailsͰཧը໘ͱݴ͑ ❖ RailsAdmin, ActiveAdmin, typus, Administrate …… ❖ ৭ʑ༗Γ·͢Ͷ ❖
͜ΕΒຆͲCRUDΛίϯιʔ ϧ֎͔Βग़དྷΔͱ͜Ζ·Ͱ ͬ͘͞ͱग़དྷΔπʔϧʹͳͬ ͯ·͢Ͷɻ
RailsͰཧը໘ͱݴ͑ ❖ Ϧιʔεʹରͯ͠ͷΞΫγϣϯ ͕ͪΌΜͱઃܭͰ͖͍ͯΕɺ ׂΓͱ͜Ε͚ͩͰͳΜͱ͔ͳ Δɻͣɻ ❖ CRUDҎ্ͷ͜ͱΛΖ͏ͱ͢ Δͱۃʹ͘͠ͳΔҹ
ͪΐͬͱ·ͬͯ
ཧը໘ͱ ❖ ӡ༻͚ͩͰͳ͘ɺઓུΛཱͯ ΔͨΊͷσʔλΛͱͬͨΓɺͦ ΕΛੳ͢Δࣄཧը໘Ͱ Γͦ͏ͳ͜ͱͱͯ͋͠Γ·͢ Ͷɻ ❖ ͋ΔҙຯɺԿͰ͔ΜͰ٧Ί ࠐΊͦ͏ͳ༻ޠ
ઓུΛཱͯΔͨΊͷσʔ λੳͲ͏͢Δͷʁ
ཧը໘ͱ ❖ ӡ༻͚ͩͰͳ͘ɺઓུΛཱͯ ΔͨΊͷσʔλΛͱͬͨΓɺͦ ΕΛੳ͢Δࣄཧը໘Ͱ Γͦ͏ͳ͜ͱͱͯ͋͠Γ·͢ Ͷɻ ❖ ͋ΔҙຯɺԿͰ͔ΜͰ٧Ί ࠐΊͦ͏ͳ༻ޠ
ϦιʔεͷCRUDʹཧ Ͱ͖ͳ͔ͬͨϞϊͷՄࢹ Խͱ͔Ͳ͏͢Δͷʁ
αʔϏεׂઓࠃ࣌ ❖ SOAMicroservicesʹද͞ ΕΔɺαʔϏεׂઓࠃ࣌ ʹɺཧը໘·ͨʹΑͬ ͯ(͋Δ͍ಘҙͳࣄʹΑͬͯ) ׂ࣌ͳͷͩ……ʂ
֤छOSSͷൃల ❖ σʔλͷՄࢹԽɺఆظ࣮ߦͰͷ KPIԽɺJobͷཧͷΓग़ ͠ɺίϯςφͷՄࢹԽͱ ཧ…… ❖ ࣗͨͪͰ࡞Βͳͯ͘ ͍͍ײ͡ʹγεςϜΛಈ͔͠ଓ ͚Δࣄͷඞཁͳ֎෦πʔϧ͕
૿͖͑ͯͨʂ
֤छOSSͷൃల ❖ ཧը໘͔ΒׂΛҾ͖ണ͕ ͠ɺCRUDҎ֎ͷࣄͲΜͲΜ ͍ͭ͜Βʹ͍ͤͯ͜͏ʂ ❖ Ͱ࣍πʔϧ͕૿͑͗ͯ͢ਏ ͍͕ൃੜ͢Δ……
͍·࠶ͼͷChatops ❖ ͯ͢SlackͰ݁Ͱ͖Εɺ ׂΓͱ࣮ղܾ͢ΔͷͰͳ ͍͔ɻ ❖ Sql ΛSlack͔Β͛ͯSlackͰ άϥϑԽ͢ΔΈ͍ͨͳιϦϡʔ γϣϯ͢Βരͩ࣌͢͠͝ੈ
https://codeiq.jp/magazine/2014/11/17130/chatops/
ཧը໘࠶ߟ ❖ ͦͦʮԿΛཧ͍ͨ͠ͷ͔ʯΛ໌֬ʹ͢Δ ❖ ʮԿΛԿނ͍ͨ͠ͷ͔ʯΛ໌֬ʹ͠ɺదͳιϦϡʔγϣ ϯ(or OSS)Λಋೖͨ͠΄͏͕ϋοϐʔʹͳΕΔ ❖ ͱ͍͑ɺ·ͣActiveAdmin͋ͨΓ͔Β͕ͱ͖ͬͭ ͘͢ɺྑͦ͞͏ɻ
࣍ ❖ ࣗݾհ ❖ ཧը໘ʹ͍ͭͯվΊͯߟ͑Δ ❖ ໊σʔλԽͷཧը໘νϥݟͤ ❖ ͜Ε͔Βͷཧը໘ͷཉ
໊σʔλԽγεςϜ ❖ ໊ͷσʔλԽΛࡉ͔͘ఔͱ ͯ͠දݱ͠ɺఔ͝ͱʹαʔϏ ε͕͋ΔࣅඇMicroservicesͬ Ά͍Կ͔ ❖ ͜ΕͰҰͭͷʮ໊σʔλԽαʔ Ϗεʯͱͯ͠ৼΔ͏ ❖
͜ΕΛཧ͢ΔαʔϏε͕͋ Δ
໊σʔλԽγεςϜཧը໘ ❖ Bootstrap2Ͱ࡞ΒΕͨ୭ݟͯ ͳ͍Ͱ͋Ζ͏τοϓϖʔδ ❖ ͜Ε͔Β͓ݟͤ͢Δը໘͢ ͯ։ൃը໘ʹͳΓ·͢(ΞλϦ ϚΤͰ͕͢……)
શαʔϏεͷσʔλԽঢ়گ ❖ ࠓ֤αʔϏε͕Ͳ͜ʹͲΕͩ ͚͍Δͷ͔Λूܭ͢Δ ❖ ͿͬͪΌ͚΄ͱΜͲ୭ݟ͍ͯ ͳ͍ɻ ❖ ࠓMackerelͰՄࢹԽ͍ͯ͠ Δ
શαʔϏεͷσʔλԽঢ়گ ࣌ܥྻͰมԽ͢ΔσʔλͳͷͰɺ MackerelʹΛఆظతʹPostͯ͠ ՄࢹԽ
Ϣʔβʔཧ1 ❖ ໊Λೖྗͯ͘͠ΕΔϢʔβʔ ͷ࣮ΛݟͨΓɺͬͱͪΌ ΜͱΕʂ ͬͯग़དྷΔΑ͏ͳ ը໘
Ϣʔβʔཧ2 ❖ ࣮ࡍͷೖྗͷϢʔβʔΛొ͠ ͨΓɺআͨ͠ΓɺใΛฤ ूͨ͠Γ͢Δը໘ ❖ ͜ΕϢʔβʔϨίʔυ͕ଘࡏ ͢ΔαʔϏεʹͬͯΔ
ͳΜͰಉ͡ϢʔβʔΛݟͯΔ ͷʹը໘͕2ͭ͋Δͷʁ
Microservices࣌ͷཧը໘ ❖ αʔϏε͕ࡉׂ͔͘͞Ε͍ͯ Δੈքʹ͓͍ͯɺDB͕ڞ௨Խ ͞Ε͓ͯΒͣɺ୯७ͳ MoutableRailsEngineͷཧը ໘Ͱʹཱͨͳ͍ࣄ͕ଟ͍ ❖ ͯ͢ͷαʔϏεʹ ActiveAdminΛೖΕΔ……ʁ
࣍ ❖ ࣗݾհ ❖ ཧը໘ʹ͍ͭͯվΊͯߟ͑Δ ❖ ໊σʔλԽͷཧը໘νϥݟͤ ❖ Microservices࣌ͷཧը໘ʹ͍ͭͯߟ͑Δ
Microservicesʹ͓͚Δཧը໘ ❖ ࠷ۙྲྀߦΓͷMicroservicesͰͷཧը໘Ͳ͏ͳΔͷ ͔ ❖ 1RailsαʔϏεຖʹཧը໘Λ࡞Δͷ͔ʁ ͋·Γʹݱ ࣮తͰͳ͍…… ❖ ͱ͍͑ɺ࣮υϝΠϯ͕ҟͳΔͳΒɺ৮Δਓҧ͏Մ
ೳੑߴ͘ɺͦ͏ͳΔͱผͷཧը໘Ͱྑ͍͔
Microservicesʹ͓͚Δཧը໘ ❖ ୡΈ͍ͨͳɺҰͭͷαʔϏεͱͯ͠ৼΔ͏Կ͔͕ࡉ ׂ͔͘͞Ε͍ͯͨ߹ྫ͑ɺ ❖ ڧҾʹผͷDBΛݟͨΓ͢Δ࠷ڧͷཧαʔϏε͔ ❖ ApiGatewayͱAPIAggregationΛ༻͍ͨཧઐ༻ͷΤϯ υϙΠϯτΛ։͖ɺͦ͜Ͱ͍͍ײ͡ʹΓͱΓ͢Δαʔ Ϗε͔
BestPracticeΛ୳࣌͢
·ͱΊ ❖ ཧը໘ܥׂಘҙͳ͜ͱʹԠͯ͡αʔϏεΛ ׂͨ͠ΓผαʔϏεΛͬͨΓ͠Α͏ʂ ❖ Microservices࣌ͷཧը໘·ͩະ։ͱ͍͏͔ɺ ͑ΛΈΜͳख୳Γͳঢ়ଶͳ͖͕͢Δ(Gunosy͞Μ͕Ͳ ͏ͬͯΔͷ͔ؾʹͳΔ) ❖ Microservices࣌ͷཧը໘ͷBestPracticeʹ͍ͭͯࢥ
͏ͱ͜Ζ͕͋Δਓɺੋඇ͓͠·͠ΐ͏ʂ
None