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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tatasuro Hisamori
September 21, 2013
Technology
11
7.6k
full test also want to end within 50ms
Tatasuro Hisamori
September 21, 2013
Tweet
Share
More Decks by Tatasuro Hisamori
See All by Tatasuro Hisamori
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
11
4.7k
Perl and Riak
myfinder
2
3.5k
Other Decks in Technology
See All in Technology
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
120
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
520
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
110
AWS DevOps Agent x ECS on Fargate検証 / AWS DevOps Agent x ECS on Fargate
kinunori
2
210
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.7k
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
140
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.3k
20260204_Midosuji_Tech
takuyay0ne
1
160
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Designing Experiences People Love
moore
144
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
How to Talk to Developers About Accessibility
jct
2
140
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
100
Being A Developer After 40
akosma
91
590k
Producing Creativity
orderedlist
PRO
348
40k
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༵