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
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyで楽して タスクを書きたい!
ahogappa
December 06, 2025
More Decks by ahogappa
See All by ahogappa
The Ruby One-Binary Tool, Enhanced with Kompo
ahogappa
1
3.2k
RubyKaigi 2024 followup
ahogappa
0
110
It’s about time to pack Ruby and Ruby scripts in one binary
ahogappa
1
7.2k
Other Decks in Technology
See All in Technology
自作お家AIエージェントスタックチャンFWで困っている所紹介
74th
0
130
Why is RC4 still being used?
tamaiyutaro
0
130
【FinOps】データドリブンな意思決定を目指して
z63d
2
490
4人目のSREはAgent
tanimuyk
0
280
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
120
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.1k
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
150
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1.1k
UIパーツの設計を「型」から読み解く 〜TSKaigiのセッションから得た学び〜
yud0uhu
0
110
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
130
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
380
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
430
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Writing Fast Ruby
sferik
630
63k
30 Presentation Tips
portentint
PRO
1
330
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Speed Design
sergeychernyshev
33
1.9k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
How STYLIGHT went responsive
nonsquared
100
6.2k
Mobile First: as difficult as doing things right
swwweet
225
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というタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い