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
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
0
120
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
190
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
110
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
180
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
460
plamo-3-translateの開発
pfn
PRO
0
280
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
150
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
2
830
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
220
SnowflakeCoCoでデータエンジニアリング!
foursue
0
180
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.7k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
The Invisible Side of Design
smashingmag
301
52k
The Limits of Empathy - UXLibs8
cassininazir
1
590
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
Bash Introduction
62gerente
615
220k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
350
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Visualization
eitanlees
152
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Transcript
Rubyで楽して タスクを書きたい! ahogappa 北陸Ruby会議01
自己紹介 - 平野 晶(@ahogappa) - ワンバイナリRubyとかゲームエンジンとか作ってます - 最近はlinkerとかELFに興味があります - 新潟からきました
まとめ - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い
None
これをRubyで書き直す!
実装していくと... タスクの依存関係を 手で書くのがしんどい !!
実装していくと... - 長大な処理なので、分割したくなってくる - 処理全体をタスクという細かい単位で分割していく - 可読性、保守性 - タスクには依存関係が存在する(ようになる) -
その関係を依存関係として手動で書くと管理が大変になる - タスクとタスクの間にタスクを入れたくなる、消したくなる - 安定すればそこまでいじるものではないが... - この機能欲しくなってきたなあ...
なぜ作っているか 依存関係を自動で解決して欲しい !! とClaude Codeの実験したい!
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
理想のタスクランナー - 依存関係が自動で解決される - 逆順に実行できる - 単一実行が保障される - 並列実行ができる -
エラーハンドリングできる - Graceful Shutdownできる - タスクが動的に決定できる - 実行時に実行すべきタスクが決定できる - 実行前にエラーを検知できる - タスクの循環参照 - 存在しないタスクへの依存 - その他 - タスクのツリー表示 - プログレス表示
- exportsで他のタスクで参照できる フィールドを公開 - 他のタスクからはクラスメソッドとして 参照できる - 依存関係は悩んだ末、静的解析で解 決で落ち着いた -
各タスクは他のタスクの結果を使いた い、を書くだけで良い
- interfacesで共通のフィールドを定義 - implでどのタスクが選択されるかを決定 - 具象タスククラスはいつも通りに実装 - 並列実行とトレードオフの関係
まとめ(再掲) - とあるgemのためにtaskiというタスクランナーを作ってます - タスク同士の依存関係を記述するのは面倒 - 自動で解決できるようにしたい - 実用的なタスクランナーにするには意外と奥深い