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
A/Bテスト機構がもたらす 大胆な開発体制及び ゆるやかなアプリ体験の変化 / Archite...
Search
Seiji Takahashi
February 01, 2018
Programming
4
7.7k
A/Bテスト機構がもたらす 大胆な開発体制及び ゆるやかなアプリ体験の変化 / Architecture and benefits of AB-test allocation system.
presentation @yahoo, Bonfire API#1.
Seiji Takahashi
February 01, 2018
Tweet
Share
More Decks by Seiji Takahashi
See All by Seiji Takahashi
Go Backends for frontends with GraphQL and gRPC
timakin
6
3.9k
Design Pattern for Image and Text Composition in Go
timakin
5
6.6k
Golang API Testing the HARD way
timakin
13
6.5k
Head First Golang Image Package
timakin
2
10k
React Native Beyond Prototype
timakin
2
1.6k
Performance Optimization on Google AppEngine
timakin
5
6.2k
testcache.pdf
timakin
1
140
How Go cache
timakin
1
79
How Go cache tests
timakin
1
3k
Other Decks in Programming
See All in Programming
20250326_生成AIによる_レビュー承認システムの実現.pdf
takahiromatsui
17
5.6k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
830
PHPのガベージコレクションを深掘りしよう
rinchoku
0
240
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
180
JavaOne 2025: Advancing Java Profiling
jbachorik
1
320
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
340
Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)
petamoriken
1
1.3k
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.3k
SLI/SLOの設定を進めるその前に アラート品質の改善に取り組んだ話
tanden
2
730
読もう! Android build ドキュメント
andpad
1
240
ニックトレイン登壇資料
ryotakurokawa
0
140
Devin , 正しい付き合い方と使い方 / Living and Working with Devin
yukinagae
1
530
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Gamification - CAS2011
davidbonilla
81
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Ace a Technical Interview
jacobian
276
23k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Transcript
"#ςετػߏ͕ͨΒ͢ େͳ։ൃମ੍ٴͼ ΏΔ͔ͳΞϓϦମݧͷมԽ #POpSF"1* גࣜձࣾ(VOPTZ ৽نࣄۀ։ൃࣨΤϯδχΞ 4FJKJ5BLBIBTIJ !@@UJNBLJO@@
Seiji Takahashi ͪ·͖Μ @__timakin__ • Career • DeNA •
Platform Development • Serverside Engineering (Perl) • Translimit • Game Development: Craft Warrirors • Game Client Side (Cocos-2dx, C++) • Gunosy • Application Dev: LUCRA • Serverside Engineering (Go) • iOS Client Side (Swift) • Engieering • Language: Go (Contributed), Swift • Platform: GAE, AWS
None
ΞδΣϯμ w "#ςετͱ w ͲΜͳ"#Λ͢Δ͔ w "#ج൫ w "#͕։ൃମ੍ɾΞϓϦମݧʹͨΒ͢͜ͱ
ΞδΣϯμ w "#ςετͱ w ͲΜͳ"#Λ͢Δ͔ w "#ج൫ w "#͕։ൃମ੍ɾΞϓϦମݧʹͨΒ͢͜ͱ
"#ςετͱʁ ࢪࡦͷଥੑɺԾઆΛݕূ͢ΔͨΊʹɺ ϢʔβʔΛαϯϓϦϯάͯ͠ɺ 6*ͳ͍͠σʔλͷมߋͳͲͷ ӨڹΛςετ͢Δͭ
"#ςετͷҙ ݁Ռʹରͯ͠ɺ૬ޓ࡞༻Λ࣋ͬͯ͠·͏Α͏ ͳςετಉ࣌ฒߦͰΒͤͯμϝ FY νϡʔτϦΞϧͷϑϩʔΛՃ͢ΔςετΛ͢Δͱ͖ʜ ؾʹͳΔΧςΰϦͷબͱɺ ϑΥϩʔ͍ͨ͠ഔମͷબͳͲΛಉ࣌ʹߦΘͤΔͱɺ લͷೖྗʹҾ͖ͣΒΕͯޙͷબ͕มΘͬͯ͠·͏ɻ
"#ςετͷҙ ࢪࡦҎ֎ͷཁҼʹΑͬͯ,1*͕ ্Լ͍ͯ͠ͳ͍͔ ""ςετ Ϣʔβʔ͕গͳ͘ɺࣈ͕όϥ͖ͭқ͍࣌ɺ ςετҎ֎ͷཁҼʹΑͬͯ݁Ռ্͕Լ͢ΔՄೳੑ͕͋Δɻ ࣮ࡍʹػೳ͕ಋೖ͞ΕΔલʹɺରϢʔβʔͷߦಈܭଌΛ ͓͍ͯͯ͠ɺςετҎ֎ͷཁҼͷӨڹ͕΄΅ͳ͍͜ͱΛ֬ೝ͢Δɻ
ΞδΣϯμ w "#ςετͱ w ͲΜͳ"#Λ͢Δ͔ w "#ج൫ w "#͕։ൃମ੍ɾΞϓϦମݧʹͨΒ͢͜ͱ
࣮ࡍͷ"#ςετྫ w 1VTI৴ճௐςετ w σΠϦʔͷ1VTI৴ճͲΕ͘Β͍͕Ұ൪ܧଓʹޮ͍ ͯ͘Δͷ͔ w dճͷϨϯδͰଧ͚ͪ
࣮ࡍͷ"#ςετྫ w ΧςΰϦهࣄදࣔग़͠Θ͚ w ৽نϢʔβʔ͚Φεεϝهࣄ w هࣄͷߋ৽࣌ͷ w ಛఆΧςΰϦͷهࣄΛଟΊʹΦεεϝʹදࣔ
࣮ࡍͷ"#ςετྫ w ݕࡧ݁Ռιʔτػೳ w ٻΊΔใΛΑΓಘ͘͢͢ΔιʔτػೳΛ࣮͢Δ͜ͱͰɺ ݕࡧ69ͷ্ɺͻ͍ͯܧଓଞߦಈΛଅਐ͢Δ͔ w Φεεϝݹ͍৽͍͠ݕࡧϫʔυͱͷϚον߹͍ͳͲͰ ݕࡧ݁ՌΛιʔτՄೳʹ͢ΔόʔΛදࣔ w
֤બࢶͷબɺճ
ΞδΣϯμ w "#ςετͱ w ͲΜͳ"#Λ͢Δ͔ w "#ج൫ w "#͕։ൃମ੍ɾΞϓϦମݧʹͨΒ͢͜ͱ
"#ج൫ "#"1* NBJO "1* 6TFS%# "#%# ੳج൫ ࣮ࢪج൫
"#ׂΓͯ શମϢʔβʔ "MMPDBUJPO &YQFSJNFOU 7BSJBOU "MMPDBUJPO &YQFSJNFOU 7BSJBOU
"#ׂΓͯ "MMPDBUJPO &YQFSJNFOU 7BSJBOU "MMPDBUJPO શମϢʔβʔͷதͰͷׂɻ "#ςετΛॏෳͳ࣮͘ࢪ͢Δͨ Ίͷάϧʔϐϯάใɻ "MMPDBUJPO*%͕ಉҰͳΒɺ ͦΕʹॴଐ͢Δ"#ςετ
ಉ࣌ʹ࣮ࢪ͢Δ͜ͱ͕Ͱ͖ͳ͍ɻ
"#ׂΓͯ "MMPDBUJPO &YQFSJNFOU 7BSJBOU &YQFSJNFOU "#ςετͦͷͷɻ ྫ͑1VTI৴ճ"#Λ࣮ࢪ ͢ΔͳΒɺͦΕʹඥͮ͘Ұݸͷ &YQFSJNFOU͕࡞ΒΕΔɻ ଞͷ&YQFSJNFOUͱ
ޡೝ͞Εͳ͍Α͏ʹɺ ϥϯμϜͳLFZ͕ৼΒΕΔɻ
"#ׂΓͯ "MMPDBUJPO &YQFSJNFOU 7BSJBOU 7BSJBOU "#ςετέʔεɻ ྫ͑1VTI৴ճ"#Λ࣮ࢪ ͢ΔͳΒɺʮ̍ճʯʮ̎ճʯͳͲ ͷݸผέʔεΛද͢ɻ &YQFSJNFOU͕ϢχʔΫͰ͑͞
͋Εɺ໊લ͕ଞͷ7BSJBOUͱඃͬ ͯͳ͍ͷͰɺIVNBO SFBEBCMFͳLFZΛৼΔɻ
w "MMPDBUF w Ϣʔβʔ*%ΛݩʹIBTIΛੜ͠ɺಉ͡άϧʔϓͷத͔ΒͲ ͷ"#ςετɺςετέʔεΛ࣮ࢪ͢Δ͔ܾΊΔɻ "#ׂΓͯ
None
ΞδΣϯμ w "#ςετͱ w ͲΜͳ"#Λ͢Δ͔ w "#ج൫ w "#͕։ൃମ੍ɾΞϓϦମݧʹͨΒ͢͜ͱ
w ػೳಋೖΛେʹ͢Δ w ϢʔβʔӨڹ͕ඇৗʹେ͖͍ػೳΛϦϦʔε͢Δࡍɺ "#ج൫Λར༻͢Δ͜ͱͰɺ͘͝Ұ෦ͷݶఆ͞Εͨ Ϣʔβʔʹల։Ͱ͖Δ w ݁ՌɺϢʔβʔͷωΨςΟϒӨڹ͕খ͍͞ঢ়ଶͰ େ͖͍ػೳΛϦϦʔεͰ͖ɺϦϦʔεͷ৺ཧোน͕Լ͕Δɻ "#։ൃମ੍ΛͲ͏ม͑Δ͔
w ຊʹޮ͘ࢪࡦΛߟ͑ΔΑ͏ʹͳΔ w ҰݟPSҰฉ͢Δͱө͑ΔػೳɺϦϦʔεͯ͠ޮՌଌఆͨ͠ Βɺ݁Ռతʹ,1*ʹωΨςΟϒʹޮ͍ͯ͠·͏͜ͱɻ w ʹݟ͑ͳ͍ɺϓϩμΫτΛ͏Ϣʔβʔͷϖϧιφ͕ ঃʑʹ໌֬ʹͳ͍ͬͯ͘ͱಉ࣌ʹɺࢪࡦͱͯͨ͠Γқ͍ ͷ͕Կ͔Θ͔ΔΑ͏ʹͳͬͯ͘Δɻ "#։ൃମ੍ΛͲ͏ม͑Δ͔
w ʮյΕͳ͍ΞϓϦʯ͕͑Δ w "#ج൫Λར༻ͨ͠HSBDFGVMͳϦϦʔεϑϩʔʹΑͬͯɺ ΞϓϦ͕ಥΫϥογϡ͢ΔΑ͏ͳػೳଈ࣌"#ׂΓͯ Λఀࢭ͢Δ͜ͱͰඇެ։ʹͰ͖Δɻ w ݁ՌɺϢʔβʔͱͯ͠ͷલͷΞϓϦ͕ΫϦςΟΧϧͳ ʹΑͬͯ͑ͳ͘ͳΔɺͱ͍ͬͨࣄଶ͕গͳ͘ͳΓɺ ҆৺ͯ͠ར༻Ͱ͖Δɻ
"#ΞϓϦମݧΛͲ͏ม͑Δ͔
w ʢશମ࠷దతʹʣೲಘͷߴ͍ػೳ͕͑Δ w ͦͦ,1*ʹޮ͔ͳ͍ɺงғؾΛΑ͘͢Δͱ͍͏رత؍ ଌʹج͍ͮͯػೳΛϦϦʔε͢Δ͜ͱ͕ͳ͍ɻ w ݁ՌɺϢʔβʔͷߦಈ͕ຊʹվળ͞ΕͨػೳɺΞϓϦΛ ͘͏্Ͱେࣄʹͳͬͯ͘Δػೳ͚ͩΛར༻Ͱ͖Δɻ "#ΞϓϦମݧΛͲ͏ม͑Δ͔
·ͱΊ w แؚɾഉଞͷؔΛ໌֬ʹͨ͠ঢ়ଶͰ"#ςετΛ ߦ͏͜ͱɺ҆શͳϦϦʔεϑϩʔΛங্͘Ͱॏཁɻ w ͦͦϢʔβʔମݧ͕վળ͠ͳ͍ػೳΛϦϦʔε͠ͳͯ͘ ࡁΉɻ։ൃऀͱϢʔβʔํ͕ϋοϐʔʹͳΕΔɻ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ