Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
runn is a package/tool for running operations f...
Search
Ken’ichiro Oyama
May 19, 2022
Technology
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
runn is a package/tool for running operations following a scenario. / golang.tokyo #32
https://golangtokyo.connpass.com/event/246982/
Ken’ichiro Oyama
May 19, 2022
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
5.8k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
1.2k
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
920
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
210
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.5k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
11k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
480
Cleanup handling in Go / Go Conference 2024
k1low
7
4.2k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Other Decks in Technology
See All in Technology
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
3
300
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.8k
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
790
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
3
1.1k
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
200
Claude Code をローカルとサーバー上で利用した際の Bedrock 利用料をユーザー単位で一本化してみる
ohorig
0
160
[FECONF-2026] 신대륙을 향한 카카오페이증권 프론트엔드 항해기 (이주승)
l1ghthouse
0
220
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
280
VLA-JEPA: Enhancing Vision-Language-Action Models with Latent World Models
takmin
0
330
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
170
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
570
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
300
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
A Soul's Torment
seathinner
8
3.8k
The Invisible Side of Design
smashingmag
301
52k
Site-Speed That Sticks
csswizardry
13
1.6k
How STYLIGHT went responsive
nonsquared
100
6.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Transcript
runn is a package/tool for running operations following a scenario.
খࢁ݈Ұ / GMO PEPABO inc. 2022.5.19 golang.tokyo #32 1
2
• GoͰAPIαʔόΛ։ൃ͍ͯ͠Δ • ୯ҰͷAPIΤϯυϙΠϯτͷςετͰͳͯ͘ෳͷAPIΤϯυϙΠϯτΛ·͍ͨͩ ςετΛॻ͖͍ͨ • ྫ: ϝʔϧೝূΛؚΜͩαΠϯΞοϓ • ྫ:
γϣοϐϯάΧʔτʢબ͔Βߪೖྃ·Ͱʣ • APIΤϯυϙΠϯτͰσʔλϕʔεૢ࡞͕͋ΔͷͰ͋ΕςετσʔλϕʔεΛ༻ҙ ࣮ͯ͠ࡍʹಡΈॻ͖ൃੜ͢ΔςετΛॻ͖͍ͨ 3 https://github.com/k1LoW/runn ։ൃͷϞνϕʔγϣϯ
• runn ( means "Run N" ) is a package/tool
for running operations following a scenario. • γφϦΦΛYAMLʹॻ͍ͯͦΕΛͬͨςετΛ࣮ߦͰ͖Δύοέʔδ/πʔϧ • ࣮ͷ͋ΔΑ͘ΒΕ͍ͯΔπʔϧͱͯ͠ https://github.com/zoncoen/scenarigo ͕͋Δ • ಛͱͯ͠ҎԼͷ௨Γ • γφϦΦ࣮ߦͷCLIίϚϯυʢπʔϧʣͱͯ͠༻Ͱ͖Δ • GoͷTest Helperʢύοέʔδʣͱͯ͠༻Ͱ͖Δ • γφϦΦϑΝΠϧͷϑΥʔϚοτ͕OpenAPI SpecϥΠΫ • γφϦΦͷεςοϓؒͷͷ࿈ܞ͕ߟྀ͞Ε͍ͯΔ 4 https://github.com/k1LoW/runn runn
• runn࠷ऴతʹ1ͭҎ্ͷγφϦΦΛ࣮ߦͯ͠ɺͦΕͧΕͷޭ/ࣦഊΛΈΔ • γφϦΦ1ͭҎ্ͷεςοϓ͔Βߏ͞Ε͍ͯΔ • 1γφϦΦ1YAMLϑΝΠϧʹͳ͍ͬͯΔʢRunbookͱݺΜͰ͍Δʣ • γφϦΦ͝ͱʹRunnerͱݺΜͰ͍Δεςοϓ࣮ߦίϯϙʔωϯτΛఆٛ͠ɺͦͷRunnerΛ֤ͬͯ εςοϓΛ࣮ߦ͍ͯ͘͠ •
RunnerʹγφϦΦʹఆ͕ٛඞཁͳ௨ৗͷRunnerͱɺطʹrunnͰ༻ҙ͍ͯ͠ΔBuilt-in runnerͷ2 छྨ͕͋Δ • Runner: HTTP Runner, DB Runner • Built-in runner: Exec runner, Test runner, Dump runner, Include runner, Bind runner 5 https://github.com/k1LoW/runn ΞʔΩςΫνϟ
6 γφϦΦʢRunbookʣΛॻ͘
7 https://github.com/k1LoW/runn
8 https://github.com/k1LoW/runn
9 https://github.com/k1LoW/runn
10 https://github.com/k1LoW/runn
11 https://github.com/k1LoW/runn
12 https://github.com/k1LoW/runn
13 https://github.com/k1LoW/runn
14 https://github.com/k1LoW/runn
15 https://github.com/k1LoW/runn
• runnTest helperͱͯ͠༻͢Δͱ͖ɺγφϦΦʹఆٛͯ͠ΔRunnerΛࠩ͠ସ͑Δ͜ͱ͕Ͱ͖Δ • HTTP RunnerͷϦΫΤετઌΛ httptest.Server ͷURLʹͨ͠Γ • http.HandlerΛͯ͠
http.Handler ʹϦΫΤετΛ͢Α͏ʹͨ͠Γ • DB RunnerͷΫΤϦ࣮ߦઌΛผͷςετσʔλϕʔεʹͨ͠Γ 16 https://github.com/k1LoW/runn Test helperͱͯ͠ͷརศੑΛ্ͤ͞Δ (1/2)
17 https://github.com/k1LoW/runn As a test helper using httptest.Server
18 https://github.com/k1LoW/runn As a test helper with http.Handler
• γφϦΦࣗମ͕ؒҧ͍ͬͯͳ͍Α͏ʹ͢Δͱͯ͠HTTP Runnerͷ߹ɺεΩʔϚʹԊͬͨόϦ σʔγϣϯΛಉ࣌ʹΒͤΔΈΛఏڙ͍ͯ͠Δʢݱࡏ OpenAPI Spec v3ͷΈରԠʣ • ʮͦͦͦͷγφϦΦͷϦΫΤετ͕ؒҧ͍ͬͯΔʯΛ͙ •
͍ͭͰʹʮϨεϙϯε͕ؒҧ͍ͬͯΔʯݟ͚ͭΔ 19 https://github.com/k1LoW/runn Test helperͱͯ͠ͷརศੑΛ্ͤ͞Δ (2/2)
͓ΘΓʹ 20
• ·͍ͩ࢝Ί͔ͨΓ͕ͩɺݸਓతʹେ͖Ίͷςετ͕ΧδϡΞϧʹॻ͖͘͢ ͳͬͨͱײ͍ͯ͡Δ • σʔλϕʔεͷΛ༻ͨ͠ςετ͕ॻ͚Δͷ͕Τά͍͕ศར • ࠓճհ͍ͯ͠ͳ͍Include runnerBind runnerͳͲʹڵຯ͕͋Δํ README
Λ ͝ཡ͍ͩ͘͞ • ࠓޙͷలͱͯ͠ɺgRPCରԠΛͯ͠Έ͍ͨ 21 https://github.com/k1LoW/runn ͓ΘΓʹ
ࣗݾհ ٕज़෦ɹٕज़ج൫νʔϜ 2018 த్ೖࣾ খࢁ ݈Ұ Ken’ichiro Oyama গ࣮͠༻తͰখ͞ͳOSSΛॻ͘ͷ͕झຯɻ •
GitHub : k1LoW • Twitter : @k1LoW 22 We are hiring!! @pb_recruit
Thank You! Thank You! 23
24 ͓·͚
• github.com/k1LoW/duration • “3 days 4 hours” Έ͍ͨͳจࣈྻ͔Β time.Duration Λੜ͢Δ
• github.com/k1LoW/expand • YAMLϑΝΠϧʹҰׅͰ os.ExpandEnv Λద༻ͨ͠Γ͢Δͷʹ༻͍ͯ͠Δ 25 ͓·͚ runnͷgo.modʹ͍ΔΦϨΦϨϥΠϒϥϦ2બ