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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
HaiTo
December 01, 2016
Programming
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
管理画面再考
表参道rb17の発表資料です
HaiTo
December 01, 2016
More Decks by HaiTo
See All by HaiTo
Form Object へ捧げる気持ち
haito
0
1.7k
ゾンビを倒してRuby.2.2に上げた話
haito
0
130
独自Worker管理が辛い
haito
0
210
色々なレビューの話
haito
0
160
おしゃれっぽくターミナルでストリーミング再生をしたかった話
haito
0
140
dendai_lt_1011
haito
0
69
Other Decks in Programming
See All in Programming
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
54
36k
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
Deep dive into the select statement (GopherCon UK)
jespino
0
170
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
150
自分的「カンファレンスの楽しみ方」
syumai
0
190
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
3
1k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
370
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Designing for humans not robots
tammielis
254
26k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Joys of Absence: A Defence of Solitary Play
codingconduct
1
480
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.7k
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