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
HaiTo
December 01, 2016
Programming
0
230
管理画面再考
表参道rb17の発表資料です
HaiTo
December 01, 2016
Tweet
Share
More Decks by HaiTo
See All by HaiTo
Form Object へ捧げる気持ち
haito
0
1.5k
ゾンビを倒してRuby.2.2に上げた話
haito
0
110
独自Worker管理が辛い
haito
0
100
色々なレビューの話
haito
0
150
おしゃれっぽくターミナルでストリーミング再生をしたかった話
haito
0
120
dendai_lt_1011
haito
0
56
Other Decks in Programming
See All in Programming
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
8
2.2k
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
3
390
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
350
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
Ruby GitHub Packages
bkuhlmann
0
620
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
180
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
Adopting Sorbet at Scale
ufuk
67
8.6k
Raft: Consensus for Rubyists
vanstee
132
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
A Tale of Four Properties
chriscoyier
150
22k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
38k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
13
1.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
11
4.6k
Done Done
chrislema
178
15k
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