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
AWSに関するOSS活動で得た貢献までの壁を越えるコツ
Search
bun
May 26, 2023
Technology
0
1.1k
AWSに関するOSS活動で得た貢献までの壁を越えるコツ
2023/05/26(金)
クラスメソッド x フォージビジョン x Fusic【AWS勉強会】 でお話しした資料となります。
bun
May 26, 2023
Tweet
Share
More Decks by bun
See All by bun
メールやSlack通知をトリガーにした非同期APIテスト基盤を作ってみた / async-test-platform-for-automated-testing
bun913
0
96
はじめてのSDET / My first challenge as a SDET
bun913
1
530
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
2
550
そのbeforeEach本当に必要? TIPSをご紹介 / beforeEach TIPS
bun913
1
1.3k
あなたはどっち派?XSpec系テストフレームワークの構造化流派について / XSpec Title Naming
bun913
1
740
良いユニットテストの性質を整理してたら考えるべき設計も見えてきたの
bun913
11
7.1k
GitHub Copilotと快適なユニットテストコード作成生活
bun913
10
8.2k
気が付いたらJSTQB AL TAに合格していた。そんな旅がしたいの。
bun913
2
1.1k
ユーザーストーリーのレビューを自動化したみたの
bun913
1
1.1k
Other Decks in Technology
See All in Technology
Linux カーネルが支えるコンテナの仕組み / LF Japan Community Days 2025 Osaka
tenforward
1
130
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
2
490
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
180
OCIjp_Oracle AI World_Recap
shinpy
1
180
Implementing and Evaluating a High-Level Language with WasmGC and the Wasm Component Model: Scala’s Case
tanishiking
0
190
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
370
20251027_マルチエージェントとは
almondo_event
1
440
DSPy入門
tomehirata
0
110
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
340
OSSで50の競合と戦うためにやったこと
yamadashy
3
990
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
2
300
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
150
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Music & Morning Musume
bryan
46
6.9k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Navigating Team Friction
lara
190
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Embracing the Ebb and Flow
colly
88
4.9k
Building an army of robots
kneath
305
46k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
Transcript
クラスメソッド x フォージビジョン x Fusic AWS事業本部 コンサルティング部 1
AWSに関するOSS活動で得た貢献までの壁を越えるコツ 2023 5/26 今泉大樹
2 早速ですが今日のメッセージです OSS貢献に壁なんてなかった
3 自己紹介 今泉大樹(Taiki Imaizumi) (bun913) • クラスメソッド株式会社 • 2023 Japan
AWS Top Engineer (Services) • 2023 Japan AWS All Certifications Engineer • 好きな技術領域 • アプリとインフラの中間あたり • ダイの大冒険ガチ勢 @bun76235104
4 タイトルのとおり OSS活動(AWS関連も含む)お話をします
5 OSSとは • 詳細な定義には触れません • 今回は以下のように、ふわっとした意味で話させていただきま す • ソースコードが公開されている •
(規定されているライセンスに則って)利用、改変、再配布ができる • これらOSSコードやドキュメントに寄与することを「貢献」とか「コ ントリビュート」などと表現します
6 そもそも・・・ OSSに貢献すると何が嬉しいのか
7 OSS貢献は何が嬉しいのか(後でも紹介します) • GitHubが強く見える • 仕事ほどプレッシャーを感じずに、世界中で使われ得るプロダク トに携われる • 有名なOSSだと特に以下のようなメリットも •
世界中のすごい人からレビューをもらえる・コードを見れる • プロダクト特性に応じたCI/CDの流れなどを学習できる • (おまけ)エンジニアスキル可視化サービスのスコアアップなど
8 でも・・・ やり方がよく分からないんです (半年前くらいの私)
9 基本的にはこれだけ(ほぼ一般的な開発と同じ)
10 でもやっぱり OSSって強い人しかできないんでしょう? ソンナコトナイヨ
11 ここからは 実際に私がしていた勘違いを見ていきます
12 • よくある(?)勘違い • OSSのコードはツヨツヨエンジニアが作っているので、凡庸なエンジニ アでは理解できないのでは? • クリーンアーキテクチャーが〜 • ドメイン駆動設計が〜
• 片方向の依存性が〜 • 手を加える何てもってのほか • 美しい作品に手を加えられるのか・・・!? 幻想1: OSSのプログラマーはツヨツヨしかいない
13 ここでAWS CDKのコードを見てください
14 コードが何をしているかは分からないけど • パッと見てわかるイケてなさそうな箇所 • if文のネストが深い • if文にダラダラ複数の条件が書かれている • 本当のことを言っているのか分からないコメント
• そもそもコメントでコードを取り繕おうとしている? • etc • リファクタリングしたくてムズムズしませんか?
15 リファクタリングするだけでも貢献です!
16 幻想2: 深く理解しているサービスじゃないとダメ? 「良く分からんけど貢献したい」 でも大丈夫です!
17 貢献するOSSの探し方 • 自分が仕事で関わっている領域で探す • GItHubのOrganizationを眺めてみるだけでも楽しい • 例 「Amazon Web
Services GitHub」 「HashiCorp GitHub」 • 自分の好きな言語・初心者向けのIssueを探す • Good First Issueというサービスでも探せます • 自分が好きなツールで探す • 私の場合、Raycastというツールが大好きです • 既存で便利ツールないから作っちゃえパターンも • 新しく作る必要なし。既存のサービスを組み合わせてもOK
18 とはいえ・・・ • 「詳しくなくても良い」ので自分の好きなツール・触ったことのあ るツールがおすすめです • 感情面の理由 • 単純にモチベーションが湧く •
Pull Requestがマージされた時の充実感がすごい • 技術面の理由 • ディレクトリを眺めてコードの場所にあたりをつけられる • 変数名や関数名にもアイディアが湧く(ドメイン知識がある)
19 幻想3: 英語ができないとやり取りも大変 私もできないけど大丈夫です!!(断言)
20 今は無料で使える翻訳ツールがすごいですし • Google翻訳のChrome拡張 • DeepLのChrome拡張 • 最近だとAIサービスも非常に良いです! • ChatGPTに英語のお知らせタイトルを書いてもらったら一瞬でネイ
ティブっぽいのができた • ChatGPTを使って英語学習をしてみました • 私「”あなたのアイディアは最高です!改善してみます!”という言葉 を英語ネイティブの友達に伝える感じに翻訳して」
21 細かいニュアンスが分からなくても大丈夫です • レビュワー「My eyeballs thank you for this refactor.」
• 私「いえーす!!OKぇぇぇ!!」 眼球がありがとうって言うの?
22 なんか大丈夫な気がしてきませんか? 実際なんとかなるんですよ
23 これらを乗り越えてPull Requestがマージされると
24 コントリビュートへのご褒美は知識だけではない
25 (おまけ)AWS CDKの場合
26 最後に・・・AWS CDKへの貢献のTIPS 1/2 • AWS CDKとは • よく知ったプログラミング言語で書けるIaCツール •
TypeScript / Python / Go / Java / C# • 型がある言語であれば当然型の補完も有効 • 短い記述でAWSのベストプラクティスを意識した構築ができる
27 AWS CDKへの貢献のTIPS 2/2 • コントリビュートへの流れ • CONTRIBUTING.mdに流れがよくまとまっています • 重要な点を抜粋
• jsiiという仕組みでTypeScriptから他の言語へと変換 • コントリビュートする際はTypeScriptのリポジトリだけでOK • ※ 生成された各言語のコードは「らしくない」コードになっているかも しれませんが、怒らない • リファクタリングも結構歓迎されます • Issue立ててさっさとPull Requestを作ってしまえば案外
28 ということで(再掲) OSS貢献に壁なんてなかった
29 ご清聴ありがとうございました!!