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
Rubyで楽して タスクを書きたい!
Search
ahogappa
December 06, 2025
Technology
0
180
Rubyで楽して タスクを書きたい!
ahogappa
December 06, 2025
Tweet
Share
More Decks by ahogappa
See All by ahogappa
The Ruby One-Binary Tool, Enhanced with Kompo
ahogappa
1
3k
RubyKaigi 2024 followup
ahogappa
0
89
It’s about time to pack Ruby and Ruby scripts in one binary
ahogappa
1
6.6k
Other Decks in Technology
See All in Technology
エンジニアとマネジメントの距離/Engineering and Management
ikuodanaka
3
690
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Databricks Free Edition講座 データサイエンス編
taka_aki
0
260
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
1
300
今日から始めるAmazon Bedrock AgentCore
har1101
4
280
Tebiki Engineering Team Deck
tebiki
0
23k
Azure SRE Agent x PagerDutyによる近未来インシデント対応への期待 / The Future of Incident Response: Azure SRE Agent x PagerDuty
aeonpeople
0
250
最速で価値を出すための プロダクトエンジニアのツッコミ術
kaacun
1
450
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
370
メルカリのAI活用を支えるAIセキュリティ
s3h
8
5.6k
新規事業における「一部だけどコア」な AI精度改善の優先順位づけ
zerebom
0
440
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
3
2k
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
90
Between Models and Reality
mayunak
1
180
Making Projects Easy
brettharned
120
6.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
61
Become a Pro
speakerdeck
PRO
31
5.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Site-Speed That Sticks
csswizardry
13
1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
For a Future-Friendly Web
brad_frost
182
10k
Transcript
Rubyで楽して タスクを書きたい! ahogappa 北陸Ruby会議01
自己紹介 - 平野 晶(@ahogappa) - ワンバイナリRubyとかゲームエンジンとか作ってます - 最近はlinkerとかELFに興味があります - 新潟からきました
まとめ - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い
None
これをRubyで書き直す!
実装していくと... タスクの依存関係を 手で書くのがしんどい !!
実装していくと... - 長大な処理なので、分割したくなってくる - 処理全体をタスクという細かい単位で分割していく - 可読性、保守性 - タスクには依存関係が存在する(ようになる) -
その関係を依存関係として手動で書くと管理が大変になる - タスクとタスクの間にタスクを入れたくなる、消したくなる - 安定すればそこまでいじるものではないが... - この機能欲しくなってきたなあ...
なぜ作っているか 依存関係を自動で解決して欲しい !! とClaude Codeの実験したい!
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
- exportsで他のタスクで参照できる フィールドを公開 - 他のタスクからはクラスメソッドとして 参照できる - 依存関係は悩んだ末、静的解析で解 決で落ち着いた -
各タスクは他のタスクの結果を使いた い、を書くだけで良い
- interfacesで共通のフィールドを定義 - implでどのタスクが選択されるかを決定 - 具象タスククラスはいつも通りに実装 - 並列実行とトレードオフの関係
まとめ(再掲) - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い