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
270
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.3k
RubyKaigi 2024 followup
ahogappa
0
110
It’s about time to pack Ruby and Ruby scripts in one binary
ahogappa
1
7.3k
Other Decks in Technology
See All in Technology
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
790
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
190
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.6k
ラジオの科学
frievea
0
300
関東Kaggler会発表資料
takoi
1
220
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.7k
PLATEAU で バーチャル花火大会
tatsuya1970
0
150
サイバー捜査員研修(後半)
nomizone
1
860
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
260
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
200
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
The Language of Interfaces
destraynor
162
27k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Agile that works and the tools we love
rasmusluckow
331
22k
Producing Creativity
orderedlist
PRO
348
40k
Bash Introduction
62gerente
615
220k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Mobile First: as difficult as doing things right
swwweet
225
10k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Site-Speed That Sticks
csswizardry
13
1.4k
Transcript
Rubyで楽して タスクを書きたい! ahogappa 北陸Ruby会議01
自己紹介 - 平野 晶(@ahogappa) - ワンバイナリRubyとかゲームエンジンとか作ってます - 最近はlinkerとかELFに興味があります - 新潟からきました
まとめ - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い
None
これをRubyで書き直す!
実装していくと... タスクの依存関係を 手で書くのがしんどい !!
実装していくと... - 長大な処理なので、分割したくなってくる - 処理全体をタスクという細かい単位で分割していく - 可読性、保守性 - タスクには依存関係が存在する(ようになる) -
その関係を依存関係として手動で書くと管理が大変になる - タスクとタスクの間にタスクを入れたくなる、消したくなる - 安定すればそこまでいじるものではないが... - この機能欲しくなってきたなあ...
なぜ作っているか 依存関係を自動で解決して欲しい !! とClaude Codeの実験したい!
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
- exportsで他のタスクで参照できる フィールドを公開 - 他のタスクからはクラスメソッドとして 参照できる - 依存関係は悩んだ末、静的解析で解 決で落ち着いた -
各タスクは他のタスクの結果を使いた い、を書くだけで良い
- interfacesで共通のフィールドを定義 - implでどのタスクが選択されるかを決定 - 具象タスククラスはいつも通りに実装 - 並列実行とトレードオフの関係
まとめ(再掲) - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い