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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ahogappa
December 06, 2025
Technology
220
0
Share
Rubyで楽して タスクを書きたい!
ahogappa
December 06, 2025
More Decks by ahogappa
See All by ahogappa
The Ruby One-Binary Tool, Enhanced with Kompo
ahogappa
1
3.1k
RubyKaigi 2024 followup
ahogappa
0
96
It’s about time to pack Ruby and Ruby scripts in one binary
ahogappa
1
6.9k
Other Decks in Technology
See All in Technology
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
5
3.2k
推し活エージェント
yuntan_t
1
860
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
250
ログ基盤・プラグイン・ダッシュボード、全部整えた。でも最後は人だった。
makikub
4
820
OPENLOGI Company Profile for engineer
hr01
1
62k
サイボウズフロントエンドの活動から考える探究と発信
mugi_uno
0
110
ZOZOTOWNリプレイスでのSkills導入までの流れとこれから
zozotech
PRO
4
2.9k
プロダクトを育てるように生成AIによる開発プロセスを育てよう
kakehashi
PRO
1
810
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
320
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
310
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.9k
Claude Teamプランの選定と、できること/できないこと
rfdnxbro
1
1.4k
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
The Limits of Empathy - UXLibs8
cassininazir
1
290
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
99
Transcript
Rubyで楽して タスクを書きたい! ahogappa 北陸Ruby会議01
自己紹介 - 平野 晶(@ahogappa) - ワンバイナリRubyとかゲームエンジンとか作ってます - 最近はlinkerとかELFに興味があります - 新潟からきました
まとめ - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い
None
これをRubyで書き直す!
実装していくと... タスクの依存関係を 手で書くのがしんどい !!
実装していくと... - 長大な処理なので、分割したくなってくる - 処理全体をタスクという細かい単位で分割していく - 可読性、保守性 - タスクには依存関係が存在する(ようになる) -
その関係を依存関係として手動で書くと管理が大変になる - タスクとタスクの間にタスクを入れたくなる、消したくなる - 安定すればそこまでいじるものではないが... - この機能欲しくなってきたなあ...
なぜ作っているか 依存関係を自動で解決して欲しい !! とClaude Codeの実験したい!
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
- exportsで他のタスクで参照できる フィールドを公開 - 他のタスクからはクラスメソッドとして 参照できる - 依存関係は悩んだ末、静的解析で解 決で落ち着いた -
各タスクは他のタスクの結果を使いた い、を書くだけで良い
- interfacesで共通のフィールドを定義 - implでどのタスクが選択されるかを決定 - 具象タスククラスはいつも通りに実装 - 並列実行とトレードオフの関係
まとめ(再掲) - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い