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
full test also want to end within 50ms
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tatasuro Hisamori
September 21, 2013
Technology
7.7k
11
Share
full test also want to end within 50ms
Tatasuro Hisamori
September 21, 2013
More Decks by Tatasuro Hisamori
See All by Tatasuro Hisamori
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
11
4.8k
Perl and Riak
myfinder
2
3.5k
Other Decks in Technology
See All in Technology
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
300
No Types Needed, Just Callable Method Check
dak2
1
1.2k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
11
32k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
6
18k
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
120
昔はシンプルだった_AmazonS3
kawaji_scratch
0
330
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
210
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
AI와 협업하는 조직으로의 여정
arawn
0
420
Choose your own adventure in agentic design patterns
glaforge
0
140
EarthCopilotに学ぶマルチエージェントオーケストレーション
nakasho
0
300
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
260
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
HDC tutorial
michielstock
2
630
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Prompt Engineering for Job Search
mfonobong
0
270
How to Ace a Technical Interview
jacobian
281
24k
Transcript
ϑϧςετ NTͰऴΘΒ͍ͤͨ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ςετڥͱ$* 139݄22༵
U6UJMT full test also want to end within 50ms •
ςετΛḿΒͤΔϢʔςΟϦςΟ • ଓઌDBΛςετ༻ʹஔ͖͑Δ • ςετຖʹىಈ͢Δmemcachedͷport൪߸Λஔ͖͑ Δ • ͳͲɺPerlҎ֎ͷϛυϧΣΞ࿈ܞΛαϙʔτ͢Δ 139݄22༵
UVUJMT.BLF)FMQFS full test also want to end within 50ms •
ϔϧύϞδϡʔϧ • खݩͰmake testΛΒͤΔ࣌ʹTest::PrettyʹΓସ͑ͨ ͍ͳͲͷཁٻΛٵऩ͢Δ • runtests ʹςετҰཡΛ͢લʹγϟοϑϧ͢Δ • ͳͲͷॲཧΛߦ͏ 139݄22༵
UVUJMT.BLF)FMQFS full test also want to end within 50ms •
ςετ࣮ߦॱংͷγϟοϑϧ • ͓͢͢Ί • Βͳ͍ؒʹॱংʹґଘ͢ΔςετΛॻ͍ͯ͠·ͬͯ ؾ͚ͮΔ • DBͷcleanup࿙Ε͕ൃੜ͢Δͷʹؾ͔ͮͳ͍έʔε • ಉ͡ϑΝΠϧ໊Λҧ͏ςετ͔Βࢀর͢Δέʔε 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 6LJHVNPͱͷ͖͍ͭ͋ 139݄22༵
• ಛʹखೖΕͤͣͦͷ··ར༻ • ͦͷඞཁͳ͍ͷͰ 6LJHVNP4FSWFS full test also want to
end within 50ms 139݄22༵
• ར༻͍ͯ͠ͳ͍ • ಠࣗͷ࣮Λͯ͠·͢ 6LJHVNP$MJFOU full test also want to
end within 50ms 139݄22༵
• CIΛ։࢝͢ΔͨΊͷΈ • ςετະ࣮ߦͷϒϥϯνΛ୳࣮ͯ͠ߦ • SQLiteʹ࣮ߦͨ͠ϒϥϯν໊/ϦϏδϣϯΛه • ςετ݁ՌΛUkigumo::ServerҎ֎ʹpost͢Δ • ࠓͷͱ͜Ζϝʔϧ͘Β͍
'0VU5FTUFS full test also want to end within 50ms 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ૿͑ͨςετͷ࣮ߦߴԽ 139݄22༵
• ͔͔࣌ؒΓ͗͢ • ϒϥϯν͕͍ͭ͋͘Δͱ݁Ռ͕Θ͔Δ·Ͱͨ͞ΕΔ • ϝϯόʔ / ։ൃҊ͕݅૿͑Ε૿͑Δ΄Ͳͨ͞ΕΔ • ͨ͞Εͨʹ
fail ͱ͔ͯͨ͠ΒΔؾ͕ͳ͘ͳΔ • ࣄނϦεΫ͕ߴ·Δ • ʮ͍͔ΒखݩͰमਖ਼͚ͨͩ͠ςετͯ͠ϦϦʔεʯ • ͦͯ͠୭ϑϧςετΛ͠ͳ͘ͳͬͯ… full test also want to end within 50ms 139݄22༵
εέʔϧ͢Δ ΓํʹมΘΔඞཁ͕͋Δ full test also want to end within 50ms
139݄22༵
ߴԽʹ͋ͨͬͯ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
• طଘͷςετΛॻ͖͑ͳ͍ • ॻ͔Εͨςετ͕ͦͷ··ಈ͘͜ͱ • طଘͷCIαʔόͱੑ͕ߴ͍ • Ukigumo::Server ܧଓ͍͍ͯͨ͠ •
εέʔϧ͢Δ͜ͱ • ςετ͕10ഒʹͳͬͯػೳ͢ΔΈͰ͋Δ͜ͱ ߴԽͷલఏ full test also want to end within 50ms 139݄22༵
• ࢄ࣮ߦͤ͞Δ • ෳͷαʔόͰࢄ࣮ߦ͠ɺϊʔυՃͰεέʔϧ͢Δ Α͏ʹ͍ͨ͠ • αʔόͷՃ/ϝϯς͕༰қ • ؆୯ͳconfigͰཧͯ͠ΏΔ;ΘʹՃ/ϝϯς͍ͨ͠ •
࠶࣮ߦ؆୯ʹग़དྷΔΑ͏ʹ͍ͨ͠ • ෳͷαʔόʹ͛ΔͷͰɺ͕͋ͬͨ࣌ʹ࠶࣮ߦ Λ͙͢Ͱ͖ΔΑ͏ʹ͍ͨ͠ ࣮ํ full test also want to end within 50ms 139݄22༵
ࢄ࣮ߦͷΈ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
Ϛελϊʔυ Ϋϥελϊʔυ 'test1.t' 'test2.t' 'test3.t' 'test4.t' 'test5.t' 'test6.t' ࣮ߦରςετ 'test1.t',
'test6.t' 'test2.t', 'test4.t' 'test3.t', 'test5.t' ࢄ࣮ߦͷΈ full test also want to end within 50ms 139݄22༵
• ςετͷϐοΫΞοϓ/γϟοϑϧ/ׂ • File::Find, List::MoreUtils Ͱऔಘͯ͠Ϋϥελʹׂ • Ϋϥελϊʔυͷ࣮ߦ໋ྩ /݁Ռडऔ •
Parallel::ForkManager, Net::OpenSSH Ͱฒྻ࣮ߦ • ݁Ռͷύʔεͱ Ukigumo ͷ post • failͷΧϯτ, LWP Ͱ post • ࣮ߦ • ϊʔυଆͰ TAP::Harness::runtests ʹςετΛ࣮ͯ͠ߦ ࣮ full test also want to end within 50ms 139݄22༵
࠶࣮ߦ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
• ϚελϊʔυͰ࠶࣮ߦWebAppΛىಈ • ࣮ࢪঢ়گΛอଘ͍ͯ͠ΔSQLite͔Β֘ϒϥϯνใΛ ফ͚ͩ͢ • Chrome ֦ுͰ Ukigumo ʹϘλϯՃ
• Ukigumo ͦͷͷʹखΛೖΕͨ͘ͳ͍ ࣮ full test also want to end within 50ms 139݄22༵
݁Ռ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
ߴԽͷ݁Ռ full test also want to end within 50ms OPEF
TFDT ˣ OPEF TFD 139݄22༵
• ૉʹαʔόΛͤεέʔϧ͢Δ • αʔόΛηοτΞοϓͯ͠ɺ୯ಠͰmake test͕௨ΕΫ ϥελʹೖՄೳ -‐> PuppetͰOK • ࠶࣮ߦϘλϯ͕ؾܰʹԡͤΔ
• ͍͍ͩͨ180ඵͰ݁Ռ͕ฦͬͯ͘ΔͷͰɺԿΒ͔ͷࣦഊ ͕͙͋ͬͯ͢࠶࣮ߦͰ͖Δ • खݩͰΔΑΓpushͨ͠΄͏͕͍ • ଞͷਓͷ։ൃΞΫςΟϏςΟ͕ݟ͑͘͢ͳΔ ݁Ռ full test also want to end within 50ms 139݄22༵
• “खݩͰΔΑΓpushͨ͠΄͏͕͍” • ʮͱΓ͋͑ͣpush͢ΔʯΈ͍ͨͳจԽʹ͚Δ • νʔϜϝϯόʔʹର͢ΔποίϛϏϦςΟ্͕͕Δ • ݁Ռɺ࣭ͷ্͕ਤΕΔ خ͍͠ޡࢉ full
test also want to end within 50ms 139݄22༵
خ͍͠ޡࢉ full test also want to end within 50ms ߴͳςετ
։ൃจԽΛม͑Δ 139݄22༵
͓ΘΓʹ͏ͻͱͭ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
ςετ ͲΜͲΜॻ͜͏ ͓ΘΓʹ 139݄22༵
͓ΘΓʹ 139݄22༵
͏QVTIຖʹ ϑϧςετ͠Α͏ ͓ΘΓʹ 139݄22༵
͓ΘΓʹ full test also want to end within 50ms ߴͳςετ
։ൃจԽΛม͑·͢ 139݄22༵