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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
LINE Developers
January 07, 2021
Technology
8.4k
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.5k
Java 21 Overview
line_developers
6
1.3k
Code Review Challenge: An example of a solution
line_developers
1
1.6k
KARTEのAPIサーバ化
line_developers
1
630
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.3k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.5k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.9k
A/B Testing at LINE NEWS
line_developers
3
1.1k
LINEのサポートバージョンの考え方
line_developers
2
1.5k
Other Decks in Technology
See All in Technology
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
140
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
4
1.2k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
120
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
2
1.6k
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
830
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
230
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
130
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
2.2k
LLMにもCAP定理があるという話
harukasakihara
0
280
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
710
protovalidate-es を導入してみた
bengo4com
0
170
Featured
See All Featured
Scaling GitHub
holman
464
140k
First, design no harm
axbom
PRO
2
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How GitHub (no longer) Works
holman
316
150k
30 Presentation Tips
portentint
PRO
1
320
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
450
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What's in a price? How to price your products and services
michaelherold
247
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
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Λ ࢦ͠ଓ͚Α͏