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
ebisurb20180724.pdf
Search
Kazushige Tominaga
July 25, 2018
1
240
ebisurb20180724.pdf
ebisurb17 #ebisurb
https://ebisurb.connpass.com/event/93818/
Kazushige Tominaga
July 25, 2018
Tweet
Share
More Decks by Kazushige Tominaga
See All by Kazushige Tominaga
スタディサプリのInternal Platform開発
kazu9su
0
1.6k
[スタディサプリ] Railsアプリケーションのモジュールとして存在していた Darklaunch (Feature Toggles) を Goアプリケーションとしてフルスクラッチでマイクロサービス化した話
kazu9su
0
3.1k
ExplorTechToronto20191016.pdf
kazu9su
0
68
キャッシュ安心戦略 with Feature Toggles
kazu9su
0
560
ポイントで導入するRust
kazu9su
2
8.2k
How to contribute to OSS with test
kazu9su
0
380
プログラミング言語入門Vim編
kazu9su
1
360
プログラミング言語入門
kazu9su
1
2.7k
ebisurb15
kazu9su
0
53
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.7k
Why Our Code Smells
bkeepers
PRO
339
57k
Designing for Performance
lara
610
69k
Writing Fast Ruby
sferik
629
62k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Code Review Best Practice
trishagee
72
19k
Context Engineering - Making Every Token Count
addyosmani
5
220
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
Transcript
$JSDMF$*Ͱ࢝ΊΔςετฒྻԽ
2 ࣗ ݾ հ Fablic, inc. —> Rakuten, inc.
Software Engineer 5PNNZ @tooooooooomy
3 w $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ w .JOJUFTUϋοΫ w ςετґଘੑͷഉআ w ςετ݁Ռͷه w
ฒྻԽͷ݁Ռൺֱ w ൪֎ฤ ͳͥඞཁͳͷ͔Λ͑Δ w ·ͱΊ ࣍
4 લఏ @ਓਓਓਓਓਓਓਓਓਓਓਓ@ ɹ$JSDMF$*Ͱ͢ʂʂʂʂɹʻ ʉ̮̮̮̮̮̮̮̮̮̮̮̮ʉ
$JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ
6 $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ ɾฒྻΛࢦఆ
7 $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ ɾ(MPCCJOH5FTU'JMFT w DJSDMFDJUFTUTHMPCίϚϯυͰࢦఆͨ͠ϑΝΠϧΛग़ྗͯ͘͠ΕΔ w ϑΝΠϧຖʺσΟϨΫτϦຖ w σϑΥϧτͰࢦఆ͍ͯ͠ΔQBSBMMFMJTNͰׂͯ͘͠ΕΔ
8 $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ ɾ4QMJUUJOH5FTU'JMFT
9 ͜ͷग़ྗ݁ՌΛTQMJUUJOHίϚϯυʹ͢ $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ ɾ4QMJUUJOH5FTU'JMFT
10 $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ ɾ4QMJUUJOH5FTU'JMFT w σϑΥϧτͰࢦఆ͍ͯ͠ΔQBSBMMFMJTNͰׂͯ͘͠ΕΔ
11 ɾ(MPCCJOH4QMJUUJOH5FTU'JMFT $JSDMF$*ͷฒྻԽʹؔ͢Δઃఆɾػೳ
.JOJUFTUϋοΫ
13 .JOJUFTUϋοΫ .JOJUFTUʹϑΝΠϧΛෳࢦఆ࣮ͯ͠ߦͰ͖ΔΦϓγϣϯ͕ͳ͍ʜ
14 .JOJUFTUϋοΫ .JOJUFTUʹϑΝΠϧΛෳࢦఆ࣮ͯ͠ߦͰ͖ΔΦϓγϣϯ͕ͳ͍ʜ @ਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓ@ ɹෳࢦఆͰ͖ΔΑ͏ʹ֦ு͢Δɹʻ ʉ̮̮̮̮̮̮̮̮̮̮̮̮̮̮̮̮ʉ
15 .JOJUFTUϋοΫ w 3BLFGJMFΛ࡞UFTUJOHSBLFͱ͔ͷ໊લͰอଘ w ͜ΕͰSBLFUFTUDJSDMFIPHF@UFTUSCGVHB@UFTUSCͷΑ͏ͳࢦఆ͕Մೳ
ςετґଘੑͷআ
17 ςετґଘੑͷআ w 5JNFDPQSFUVSOΕ 5JNFDPQGSFF[Fͯ͠SFUVSO͠ΕͯΔ͚Ͳશମͱͯ͠Ͳ͔͜ͰSFUVSO͍ͯͯ͠ ཱ͍ͯ͠Δ
18 ςετґଘੑͷআ w ҙ֎ʹ͜Ε͚ͩͩͬͨʜ
19 ςετґଘੑͷআ w ൪֎ฤ w ͕࣌ؒϛϦඵͣΕΔΈ͍ͨͳςετ͕ͨ·ʹམͪͯ5JNFDPQؔ࿈ͩͱࢥͬͯ ͨΒݟͯΔΧϥϜҧͬͨͷ͋Γ·ͨ͠
20 ςετґଘੑͷআ w ͓·͚ σόοά w DJSDMFDJUFTUTHMPCUFTU @UFTUSC]DJSDMFDJUFTUTTQMJUͷ݁Ռ࣮ ߦ͢ΔςετҰཡͳͷͰɺ݁ՌΛDJSDMFDJ্ͰFDIPͯ͠ҰཡΛόΠφϦαʔ
ν͍ͯ͘͠ͱศར
ςετ݁Ռͷه
22 ςετ݁Ռͷه w ςετ݁ՌΛه͢Δͱʜ w ςετϑΝΠϧׂʹUJNJOHͱ͍͏Φϓγϣϯ͕͑Δ w ࣮ߦ࣌ؒͰ͍͍ײ͡ʹׂͯ͘͠ΕΔ w $JSDMF$*ͷJOTJHIUTͰ͍ςετɺΑࣦ͘ഊ͢ΔςετΛදࣔ͢ΔΑ͏ʹͳΔ
23 ςετ݁Ռͷه w +6OJUGPSNBUUFSTΛಋೖ
24 ςετ݁Ռͷه w UFTU@IFMQFSSC w ඞਢϥΠϒϥϦͷSFRVJSF w SFQPSU@EJS ςετ͕อଘ͞ΕΔσΟϨΫτϦ Λࢦఆ
25 ςετ݁Ռͷه w 3TQFDͷ߹ɺίϚϯυͷҾʹΦϓγϣϯΛࢦఆ w ͨͩ͠ɺSBLFλεΫͷςετΛߦ͍ͬͯΔ߹Φϓγϣϯ͕ڝ߹ͯ͠ςετࣦഊ͢ Δ߹͕͋Δ w ͦͷ߹ɺSTQFDϑΝΠϧʹઃఆΛॻ͖ग़ͯ͠ಡΈࠐ·ͤΔ
26 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNMͰTUPSF@UFTU@SFTVMUTΛઃఆ w QBUIҎԼͷςετ݁Ռ͕อଘ͞Εɺ࣍ճҎ߱ͷςετ࣮ߦ࣌ʹ༻͞ΕΔ w TUPSF@UFTU@SFTVMUT
27 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNMͰTUPSF@UFTU@SFTVMUTΛઃఆ w QBUIҎԼͷςετ݁Ռ͕อଘ͞Εɺ࣍ճҎ߱ͷςετ࣮ߦ࣌ʹ༻͞ΕΔ w TUPSF@UFTU@SFTVMUT ҙ ͜͜ʹڥม͑ͳ͍Α͏Ͱ͢
28 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNM
29 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNM
30 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNM
31 ςετ݁Ռͷه w DJSDMFDJDPOGJHZNM
32 ςετ݁Ռͷه
33 ςετ݁Ռͷه
34 ςετ݁Ռͷه ศར
ฒྻԽͷ݁Ռൺֱ
36 ฒྻԽͷ݁Ռൺֱ • ճ ݱঢ়ҡ࣋ • ճ
վળݟΒΕͳ͔ͬͨ • ճ ͷվળ͕ݟΒΕͨ • ճ ࣦഊ͢Δͱ͜ΖʹͳΜΒ͔ͷґଘ͕͋Δ͔͠Εͳ͍ͷͱɺ͕શ͘վળ͞Ε͍ͯͳ ͍ • ճ ճͱൺͯݦஶͳ݁ՌಘΒΕͳ͔ͬͨɻ
37 ฒྻԽͷ݁Ռൺֱ w ߟ w ฒྻͰ̑΄Ͳͷվળ͕ݟΒΕͨͷͰͬͨҙຯ͕͋ͬͨ w ҰํͰ·ͰฒྻΛ૿ͯ͠ɺʹݟ͑ΔվળݟΒΕͳ͔ͬͨ w ϫʔετέʔεʹҾͬுΒΕΔͷͰɺҰఆҎ্ͷՌΛٻΊΔ߹ฒྻ
Λϫʔετέʔε͕࠷খͱͳΔ·Ͱ૿͢ඞཁ͕͋Δ w حճͷฒྻԽͰςετ͕ࣦഊ͢Δ͜ͱ͕ଟ͔ͬͨ ݪҼະٻ
ͳͥඞཁͳͷ͔Λ͑Δ
39 ൪֎ฤ ͳͥඞཁͳͷ͔Λ͑Δ ͕Μͬͯઆ໌ͯ͠ΈΔ w $JSDMF$*ίϯςφͷίετ͕͔͔Δ w ฒྻԽ͢Δͱ༻ίϯςφ্͕ΔͷͰɺ͓͕͔͔ۚΔ w ༧ࢉΛ͍࣋ͬͯΔͷΤϯδχΞͰͳ͍͜ͱଟ͍ͷ
w ͱ͍͏͔ΤϯδχΞͰԿ͕Ͳ͏ͳͬͯΔ͔Γ͍ͨ
40 ൪֎ฤ ͳͥඞཁͳͷ͔Λ͑Δ w લఏ w $*ͱ $*ίʔυΛຊ൪ʹσϓϩΠ͢Δલʹɺҙਤͨ͠ڍಈ͢Δ͔ΛࣗಈͰςετ͢ΔΈ w $JSDMF$*ͱ
IUUQTDJSDMFDJDPN $*Λ࣮ߦͯ͘͠ΕΔαʔϏεɻಉ࣌ʹ࣮ߦͰ͖Δςετ ίϯςφ Λ૿͢ͱ͓͕͔͔ۚΔ ݱঢ়ίϯςφͰӡ༻͍ͯ͠Δ ίϯςφΛ͑Δςετ࣮ߦཁٻ͕͋Δͱɺͪঢ়ଶʹͳΔɻ લͷςετ͕ऴΘΔ·Ͱͭ w ςετͷฒྻ࣮ߦͱ ݱࡏɺϥΫϚͷςετ࠷ॳ͔Β࠷ޙ·ͰΖ͏ͱ͢Δͱ࠷Ͱڧ͔͔Γ·͢ɻ ͦΕͰ͕͔͔࣌ؒΓ͗͢ΔͷͰɺׂͯ͠ςετΛ࣮ߦ͢Δ ฒྻ࣮ߦ ͜ͱͰςετ࣌ؒΛॖ͍ͯ͠·͢ w ίϯςφΛ૿͢ͱΑ͘ͳͳΔ͜ͱ ಉ࣌ʹ࣮ߦͰ͖Δςετ͕૿͑ͯɺΤϯδχΞ͕༡ΜͰ͍Δ ςετͷྃΛ͍ͬͯΔ ͕࣌ؒগͳ͘ͳΔɻ
41 ൪֎ฤ ͳͥඞཁͳͷ͔Λ͑Δ w Δ͜ͱݟੵΓ w ࣌ؒͷ͔͔͍ͬͯΔςετͷฒྻΛ্͛Δ ݱࡏɺฒྻͰ࣮ߦ͍ͯ͠ΔςετΛฒྻͰ࣮ߦ͢Δ͜ͱͰɺ ˠͰͷվળ͕ظ͞Ε·͢ɻ Ұฏۉ_ճ࣮ߦ͞Ε͍ͯΔͷͰɺ
ͷ ༡ΜͰ͍Δ࣌ؒ ͕ݮ͞Ε·͢ɻ w ݄͕NJOʷͳͷͰ)݄ݮͰ͖·͢ w ʢ૿Ճֹʣʸ) w ͭ·Γԁ࣌ w ͓ಘ w ͞Βʹ͕͍ͪ࣌ؒͷͰίϯςΩετεΠονͷίετ͕͍ʂ
42 ·ͱΊ w ςετͷӅΕͨґଘੑΛऔΓআ͘ w .JOJUFTUͰෳϑΝΠϧΛࢦఆ࣮ߦͰ͖ΔΑ͏ʹ͢Δ w ςετ݁ՌΛอଘͯ͠վળ࣮ߦʹ׆͔͢ w ޮՌΛ͑ͯ༧ࢉΛؾ࣋ͪΑ͘ग़ͯ͠Β͏
43 ͓ؾ࣋ͪ
44 ࢀߟ w IUUQTDJSDMFDJDPNEPDTQBSBMMFMJTNGBTUFSKPCT w IUUQTDJSDMFDJDPNEPDTDPMMFDUUFTUEBUB w IUUQTDJSDMFDJDPNEPDTJOTJHIUT w IUUQTTUBDLPWFSGMPXDPNRVFTUJPOTIPXUPSVONVMUJQMFSBJMTVOJUUFTUT
BUPODF w IUUQTHJUIVCDPNTKSTQFD@KVOJU@GPSNBUUFS w IUUQTHJUIVCDPNDJSDMFDJNJOJUFTUDJ
એ
46 3BLVUFOͰΤϯδχΞΛੵۃ࠾༻தʂ
47 એ w BTBLVTBWJN IUUQTBTBLVTBWJNDPOOQBTTDPNFWFOU
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠