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
普通のエンジニアがOSSで世界と繋がるまで.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yota Hamada
June 26, 2025
Programming
200
0
Share
普通のエンジニアがOSSで世界と繋がるまで.pdf
Yota Hamada
June 26, 2025
More Decks by Yota Hamada
See All by Yota Hamada
Go × 軽量ワークフロー言語で実装する LLM ワークフロー
yohamta
2
340
IP電話自動応答システムの実現
yohamta
1
86
Other Decks in Programming
See All in Programming
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
740
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
540
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
330
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
180
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
150
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
140
The Less-Told Story of Socket Timeouts
coe401_
3
980
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
220
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
490
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
450
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
340
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
100
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Embracing the Ebb and Flow
colly
88
5k
GitHub's CSS Performance
jonrohan
1032
470k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
So, you think you're a good person
axbom
PRO
2
2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Practical Orchestrator
shlominoach
191
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
普通のエンジニアがOSSで 世界と繋がるまで Yota Hamada GitHub / X: @yottahmd
オープンソースのワークフローエンジン
Cron Airflow
Daguとは? - CronとAirflowの「中間」 • Cronの手軽さと、高機能ワークフローエンジンの「中間」を埋める選択肢 • 実行ファイル一つで動作 • DB不要でシンプル •
組み込みWeb UI
YAML 定義 可視化
GitHub が荒野だった日
「OSS活動は何かされていますか?」
はじめてのOSS - 貢献の形はコードだけじゃない • 当時流行り始めていた TypeScript を学習 • 質の高いオンライン書籍 TypeScript
Deep Dive を発見(ただし英語版のみ) • 💡「これを翻訳すれば、自分の勉強にもなるし、誰かの役にも立つかもしれな い!」
None
⼀つの活動が、新たな機会を運んでくる 翻訳活動 Udemy 講座作成 記事執筆依頼
【世界で7万人が受講】Understanding TypeScript 日本語版
ゲーム開発にはまる
ライブラリ開発で学んだ「上位互換に殺される感覚」 ゲームの設計パターン ECS に魅了さ れ、ライブラリ donburi を開発・公開 出典: Unity manual
- ECS concepts
海外技術者のチュートリアルで利⽤される • 海外の有名ブログで紹介され、多く のスターを獲得! • …しかし、ある日、圧倒的に高性能 な競合ライブラリが登場 m110氏により開発された airplanes mlange-42氏によるベンチマーク
強者が次々現れる、 OSS の現実
Dagu開発へ - 原動⼒は「Cron地獄」への課題感 • 当時勤務していた大手企業での深刻な問題 ◦ 数百のCronジョブが複数のサーバーに散在 ◦ 全体を把握しているのは、勤続10年のベテランエンジニアただ一人 ◦
障害が起きると、彼の「頭の中の設計図」だけが頼り… • Airflow等は導入が重すぎ、商用製品は高価で手が出せない
シンプルで⼿軽な選択肢がない 釘
Dagu 開発へ 高機能 手軽さ Cron Airflow
Go ならわかるシステムプログラミング ラムダノート
なぜ Go ⾔語を選択したのか • 依存関係の少なさ (標準ライブラリの充実) • シングルバイナリ(embed機能) • 優れた並行処理
(goroutine + channel) Go gopher 画像: Renée French 作
⼤きなソフトウェアを作り続ける技術 1. 小粒なイテレーションで達成感を得る • 壮大な計画は立てない。毎週「動くもの」を積み重ねる。 ◦ 1 週目: CLI で最低限
DAG を実行できるように ◦ 2 週目: Web UI で DAG が表示されるように ◦ 3 週目: 途中でキャンセル、再開できるように 2. 「Deep Module」の思想で変化に強く • I/F はシンプルに、複雑さは内部に隠す。 • シンプルな I/F を組み重ねて複雑なものを作る。
「Deep Module」の思想 出典: ソフトウェア設計について twada技術顧問と話してみた 〜 A Philosophy of Software
Design をベースに 〜
参考: Unix OS における Deep Module の例 • ファイル入出力は、5個の関数(システムコール)で成り立っている open
read write lseek close ファイルを開く ファイルから 読み込む ファイルへ 書き込む 読み書きする位置を 移動する ファイルを閉じる OS アプリケーション 物理デバイス(HDD / SDD)
OSSを「育てる」上で最も重要だと気づいたこと 「すべての貢献に、貢献者の名前を明記して感謝を伝えなさい」 (元 Firefox コミュニティマネージャーの友人からの助言) • リリースノートでのクレジット表記を徹底 ◦ バグ報告、機能提案、ドキュメント修正 …関わってくれた全ての人に感謝を
• 結果:リピート貢献率が明らかに向上! 自分の貢献が正当に評価されることが、次の貢献へのモチベーションに繋がる。
OSS 開発の原動⼒ 1. 「Cron地獄」のような課題への「怒り」 2. 利用者の声 3. 作品を育てる楽しさ
⾃分の作品を育てる
AI エージェントの活⽤ • Issue の要約と修正案の検討 • 要求事項のまとめ、Issue のドラフト作成 • Pull
Request の作成
⾃分⼀⼈が感じている課題は 実は世界の誰かも同じように感じている 海外 Dagu ユーザーとの情報交換ミーティング
ご清聴ありがとうございました まとめ • 課題発見: 日々の業務で感じる「不便」や「怒り」は、開発の最高の原動力になる。 • 継続のコツ : 小さく始め、目に見える達成感を毎週積み重ねて、モチベーションを維持 する。
• 設計思想: 「Deep Module」の思想で複雑性の増大を抑えるコードを書く。 • コミュニティ : 小さな貢献も見逃さず、すべてのコントリビューターに感謝と敬意を伝え る。