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
Product Management Tips for In-house tools
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
LINE Developers
January 07, 2021
Technology
8.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Product Management Tips for In-house tools
LINE Developers
January 07, 2021
More Decks by LINE Developers
See All by LINE Developers
LINEスタンプのSREing事例集:大きなスパイクアクセスを捌くためのSREing
line_developers
3
2.6k
Java 21 Overview
line_developers
6
1.3k
Code Review Challenge: An example of a solution
line_developers
1
1.7k
KARTEのAPIサーバ化
line_developers
1
640
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.4k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.5k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
4k
A/B Testing at LINE NEWS
line_developers
3
1.2k
LINEのサポートバージョンの考え方
line_developers
2
1.6k
Other Decks in Technology
See All in Technology
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
20k
SmartHR Engineering Team Deck
smarthr
1
2.1k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
LanceDB入門
mocobeta
7
500
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
300
TypeScript入門 2026
recruitengineers
PRO
3
580
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
110
ブラウザ研修 2026
recruitengineers
PRO
6
990
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
4k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Odyssey Design
rkendrick25
PRO
2
750
Exploring anti-patterns in Rails
aemeredith
3
460
ラッコキーワード サービス紹介資料
rakko
1
4.3M
Measuring & Analyzing Core Web Vitals
bluesmoon
9
960
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
460
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
ҏ౻ -*/&גࣜձࣾ ࣾπʔϧʹ͓͚Δ ϓϩμΫτ Ϛωδϝϯτͷצॴ
ηογϣϯͰ͓͍ͨ͜͠ͱ ։ൃऀ͕։ൃऀ͚ʹ πʔϧɾαʔϏεɾ ϓϥοτϑΥʔϜΛ ఏڙ͢Δ͜ͱͰ ؕΓ͕ͪͳ՝ͱղܾࡦ
ηογϣϯͰ͓͍ͨ͜͠ͱ ։ൃऀ͕։ൃऀ͚ʹ πʔϧɾαʔϏεɾ ϓϥοτϑΥʔϜΛ ఏڙ͢Δ͜ͱͰ ؕΓ͕ͪͳ՝ͱղܾࡦ ϓϩμΫτϚωδϝϯτͷ ؍͔Β զʑͷݱͰͷ
ܦݧɾࣦഊஊΛͱʹ
ࢲͨͪͷνʔϜͱϓϩμΫτ -*/&ͷ4&5ͱͯ͠ ࣾ։ൃऀ͚ʹ πʔϧΛఏҊɾ։ൃɾӡ༻
4FCBT ϚΠΫϩαʔϏεͷোݪҼಛఆπʔϧ &&ςετΛ࣮ߦ͠ɺ ͕͋ΔՕॴΛ ;JQLJOͰݟ͑ΔԽ
ύϑΥʔϚϯεςετ༻ϓϥοτϑΥʔϜ "ZBQFSG @Test public void xxx() { final
long startTime = System.currentTimeMillis(); try { get("http://localhost:8080/index.html") .then() .statusCode(200); Report.recordSuccess( System.currentTimeMillis() - startTime, 1); } catch (Exception e) { Report.recordFailure( System.currentTimeMillis() - startTime,"error"); } } (SBGBOBͳͲͰ ݁ՌΛදࣔ
5FTUBCMF*OGSB ΦϯσϚϯυͰ ςετڥΛෳͰ͖ΔαʔϏε
ࢲͷׂɾ Ϧʔμʔͱͯ͠ҎԼΛܾఆ • ୭ͷԿΛղܾ͢Δ͔ • Ͳͷॱ൪Ͱ͍ͭ·Ͱʹ࣮ݱ͢Δ͔ • ͦͷ݁Ռͱͯ͠ શࣾతʹͲͷΑ͏ͳՁΛఏڙ͢Δ͔
ˠ1E.࣮࣭݉
ͳͥࣾπʔϧͷ1E.ʁ ʰ5FDIOPMPHZ3BEBSʱ • ϓϩμΫτϚωδϝϯτͷ ݟɾํ๏Λࣾπʔϧ܈ʹ ద༻͢ΔτϨϯυ͕ੈքతʹ֦େ • ҰํͰɺࣾπʔϧ܈ͳΒͰͷ ݟɾํ๏·ͩ·ͩෆ
5IPVHIU8PSLTࣾͷ ͓͖ͷ ۀքτϨϯυϨϙʔτ
ݟΛཧ͠ ൃ৴͢Δ άϩʔόϧͳ νϟϯεͰʂʁ
ه ʮϢʔβʯͱʮεςʔΫϗϧμʔʯ ԼهͷΑ͏ʹ۠ผͯ͠ѻ͍·͢ Ϣʔβ ։ൃऀͳͲ ϓϩμΫτΛ ࣮ࡍʹͬͯ͘ΕΔਓ εςʔΫϗϧμʔ һ্ͳͲ
ϓϩμΫτ։ൃΛ ࢧԉͯ͘͠ΕΔਓ
ΞδΣϯμ ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
͜ͷষͷϙΠϯτ <՝ઃఆ> ࢲ͕ͨͪ ࣮ࡍʹؕͬͨ՝ͱ ؍ଌͨ͠ʮෆ٢ͳ͍ʯ
ࣾπʔϧͷલఏ • ։ൃऀͷΈͰνʔϜฤ • ϓϩμΫτϚωʔδϟʔ ʮ·ͣʯ͍ͳ͍ • ϓϩμΫτϚωδϝϯτ Λ͍ͬͯΔਓগͳ͍
։ൃʂ։ൃʂ։ൃʂ ؾ͕ͭ͘ͱ։ൃʹूத • Ϣʔβχʔζ͕໌֬Ͱͳ͍ͷʹ ։ൃλεΫͰຒ·ΔλεΫϘʔυ • ϦϦʔεΑΓϦϑΝΫλϦϯά •
ंྠͷ࠶ൃ໌ΛΓ͕ͪ
։ൃʂ։ൃʂ։ൃʂ ։ൃʹڧ͍ؔ৺ͷ͋Δϝϯόʔ͚ͩͰ ϓϩμΫτ։ൃΛ͢Δͱʜ 7BMVBCMF 6TBCMF 'FBTJCMF ࣗͨͪͷٕज़తʹ ࣗͨͪʹͱͬͯ
ࣗͨͪͷٕज़తʹ
͕ࣗͨͪϢʔβʂ Ϣʔβχʔζશͯط ͱ͍͏ࢥ͍ࠐΈ • ʮࣗͨͪʹϢʔβʯͱ͍͏ʮޡೝʯ • ϢʔβχʔζͷݕূΛ͠ͳ͍ •
৽ػೳͳͲͷσϞ͠ͳ͍
͕ࣗͨͪϢʔβʂ ຊɾຊདྷͷϢʔβ͕ ·ͳ͍ɾΘͳ͍ͷΛ࡞Γ͕ͪ 7BMVBCMF 6TBCMF 'FBTJCMF ࣗͨͪʹͱͬͯ ࣗͨͪʹͱͬͯ
ࣗͨͪʹͱͬͯ
ʮ'JYʯͷޡṩ ҙࢥܾఆɾ߹ҙ ෴Βͳ͍ͱ͍͏ࢥ͍ࠐΈ • ࠷ॳʹ߹ҙͰ͖ͨͷͷ ʮ࡞ΓࠐΈʯʹूத͢Δ • σϞใࠂΛޙճ͠ʹ͕ͪ͠
• εςʔΫϗϧμʔมΘΒͣ ࢧԉ͠ଓ͚ͯ͘ΕΔͱࢥ͍ࠐΉ
ͭΒ͍Ͱ͢ɻ
ϙΠϯτ ٕज़తʹ༏Ε͍ͯΔ㱠ϢʔβՁ ϢʔβͱεςʔΫϗϧμʔʹ ΞϯςφΛுΔ͜ͱඞਢ ϓϩμΫτϚωδϝϯτͷߟ͑ํ ඞཁ͔ͭ༗ޮ
思い込みから 一歩離れてみよう
ղܾํ ։ൃʂ։ൃʂ։ൃʂ ͕ࣗͨͪϢʔβʂ ʮ'JYʯͷޡṩ ࣾπʔϧͰ Ϣʔβத৺ εςʔΫϗϧμʔΛ ૄ͔ʹ͠ͳ͍ ϓϩϞʔγϣϯ
ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
͜ͷষͷϙΠϯτ • ຊͷϢʔβΛΔ • Ϣʔβχʔζͱ͖߹͏ • ͦΕͰ͕ࣗࢼ͍ͨ͠ ͜ͱ͕͋Δ߹ͷৼ͍
ຊͷϢʔβΛΔ ࣗͨͪ ϢʔβදͰͳ͍ • ͕ࣗͨͪΓ͍ͨ͜ͱΛΰϦԡ͢ ཧ༝ʹ͍͚ͯ͠ͳ͍ʢռΊʣ • ໘͕ΒͣɺϢʔβʹΛฉ͘ •
͜ΕΒΛҙࣝ͢Δ͚ͩͰ݁ߏมΘΔ
Ϣʔβχʔζͱ͖߹͏ Λ͢Δͷ͕Ұ൪ • ΠϯλϏϡʔɾςετɾσϞΛ ఆظԽɾԽ͢Δ • ৽ػೳͷσϞͰϢʔβͷؔ৺ΛߴΊΔ • ݴΘΕͨͷ͚ͩΛ࡞Δଶආ͚Δ
8IZT ͳͥ࡞Γ͍ͨͷ͔ʁ • Ϣʔβͷ՝Λղܾ͍ͨ͠ͷ͔ʁ • ͕ࣗࢼͯ͠Έ͍ͨ͜ͱ͕͋Δͷ͔ʁ • ྆ऀΛͭͳ͛ΒΕͳ͍͔ʁ ˠ8JOXJOʹͰ͖ΔͳΒͭͳ͛Α͏
ʢࣄྫʣϏϧυ݁Ռͷ௨ํ๏
ʢࣄྫʣϏϧυ݁Ռͷ௨ํ๏ 4&5νʔϜͰɺ 4MBDLͰͷ௨͕ Ұൠత
ʢࣄྫʣϏϧυ݁Ռͷ௨ํ๏ Ϣʔβ͔Β͋Δɺ (JU)VCͷ13ը໘Ͱ ௨ͯ͠ͱཁ͕
ʢࣄྫʣϏϧυ݁Ռͷ௨ํ๏ ҰՕॴͰશ෦ݟ͍ͨ τϨϯυ͕ શࣾతʹग़͖͍ͯͯͨ
·ͱΊ • ਅ伨ʹϢʔβϑΝʔετ • ݴ͍ͳΓආ͚Δ • ͕ࣗΓ͍ͨ͜ͱͱ Ϣʔβͷ՝ղܾͱΛ ϦϯΫͤ͞Δ͜ͱΞϦ
ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
͜ͷষͷϙΠϯτ εςʔΫϗϧμʔͷ ࢧ࣋ɾڠྗͷऔΓ͚ͷ ඞཁੑͱͦͷํ๏
ڵຯɾؔ৺ࣦΘΕಘΔ ཁ༷݅ෆมͰ͔͢ʁ • Ұͷ߹ҙͰຬͯ͠ʢΞΧϯʣ • ڵຯɾؔ৺ৗʹมΘΔ • ۀͷ༏ઌͱಉ͡ ˠৗʹڵຯɾؔ৺ΛҾ͘Έ͕ඞཁ
ఆظతͳσϞ ಈ͘ͷͷΠϯύΫτΛϑϧ׆༻͢Δ ։ൃऀ͔ͩΒͦ͜ͷ ڧΈΛ׆͔ͦ͏ʂ
ʮਤʯͷఆظతͳڞ༗ɾߋ৽ ݱ࣌ͷΰʔϧͱͦͷಓےΛݟͤΔ
શͯͷཁٻʹԠ͑ͯμϝ /PDPEFNPOLFZ • Ϧιʔε༗ݶ • ݱঢ়࣮ݱՄೳͳ͜ͱΛઆ໌͢Δ͜ͱ ϓϩͷৼΔ͍ • ༏ઌॱҐΛ͚࣋ͬͯͭΔ
• ͋͘·Ͱύʔτφʔͱͯ͠ৼΔ͏
ࣾπʔϧͷσϞಈըΛ ϥϯνͷͰһʹհ ˣ ͦͷһ͕ଞͷһʹσϞಈըΛڞ༗ ˣ ࢲͨͪͷΒͳ͍͏ͪʹ ࣾπʔϧͷར༻ऀ͕૿͍͑ͯͨʢʂʣ ʢࣄྫʣσϞಈըΛ࡞ͬͯΈͨ
·ͱΊ • ڵຯɾؔ৺ΛҾ͘͜ͱ ཱͳࣄ • ܾఆΛෆมͱ ࢥ͍ࠐ·ͳ͍ • ݴ͍ͳΓආ͚Δ
ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
͜ͷষͷϙΠϯτ 1SPEVDU.BSLFUJOH • ఆϢʔβ͕ࣾ։ൃऀ Ͱ͋ͬͯඞཁ • ͨͩ͠ඞཁ
ใΦʔϓϯ͔ͭͭ͘͜͠ • ڵຯɾؔ৺Λשى͠ଓ͚Δ • ఆظతͳσϞ • ʮਤʯͷఆظతͳڞ༗ɾߋ৽ • ใৗʹΞΫηεͰ͖ΔΑ͏ʹ͢Δ
• ςϨϏ$.͘Β͍ͭ͘͜͠ • ࣗવͱݴ༿Λ͍ͭͯग़Δ·Ͱ
ςΩετͱσϞͷ྆࣠Ͱ ͲͪΒΔʂ
νϟϯωϧΛ૿͢ • ͚ͭͩͰʹ͔ͭͳ͍ • ࢹքʹೖΓࠐΜͰ ೝ·Ͱ͍࣋ͬͯ͘ • λʔήοτ͕Ή νϟϯωϧΛૂ͓͏
ࢲͷൃ৴ͷ͕ΞδϟΠϧܥʹภΓ͕ͪ ˣ ,VCFSOFUFTɾ2"ܥίϛϡχςΟʹ ൃ৴ॴΛ֦େ ˣ 5XJUUFSܦ༝Ͱ ࣾһ͔ΒίϯλΫτΛड͚ͨʢʂʣ ʢࣄྫʣൃ৴ॴͷݟ͠
·ͱΊ • ࣾπʔϧͰ ϓϩϞʔγϣϯඞਢ • Ϛϧννϟϯωϧ • ೝͤ͞Δ·Ͱଓ͚Δ
ࣾπʔϧΏ͑ʹؕΓ͕ͪͳ՝ ݟɿࣾπʔϧͰϢʔβத৺ ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ݟɿϓϩϞʔγϣϯ ·ͱΊ
ߦಈࢦͷTXJUDI ։ൃऀઢ͔Β ϓϩμΫτϚωδϝϯτ • ผͷࢹΛ୯७ʹΒͳ͍͚͔ͩ • ڭ͑ΕɺΩνϯͱ׆༻ͯ͘͠ΕΔ • ίʔνɺ͍ͨํ͕ྑ͍
։ൃऀͷϝϦοτΛ׆͔͢ • ࣮ࡍʹ࡞ͬͯࢼͤΔ • ΑΓݱ࣮తͳϞϊͰ σϞͰ͖Δ • ϝϦοτʹྗͯ͠ ؾ࣋ͪΑ͘ͳΓ͗͢ͳ͍
%FW0QTͰଉਧΛਧ͖ࠐΉ ΈΛ࠷ॳʹ࡞Ζ͏ • ϢʔβςετΛ͘͢͠ͳΔ • ݕূΛܧଓతʹߦ͍͘͢ͳΔ • 1JWPUΛؾ݉Ͷͳ͘Ͱ͖Δ 1E.º
%FW0QT808
ʮࣗݾ࣮ݱʯՄೳ ͕ࣗΓ͍ͨ͜ͱͱ Ϣʔβͷ՝ղܾͱΛ ϦϯΫͤ͞Δࢹͱߦಈ ͋ͬͯྑ͍
1E.ʹର͢Δ։ൃऀͷٙ೦ ίʔυͷ͍͕ ͠ͳ͍ ʢ৴༻Ͱ͖ͳ͍ʣ
྆ํͱඞཁ ϓϩμΫτ Ϛωδϝϯτ º ΤϯδχΞϦϯά
Ѫ͞ΕΔ %FW&YΛ ࢦ͠ଓ͚Α͏