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
1.1k
0
Share
AWSに関するOSS活動で得た貢献までの壁を越えるコツ
2023/05/26(金)
クラスメソッド x フォージビジョン x Fusic【AWS勉強会】 でお話しした資料となります。
bun
May 26, 2023
More Decks by bun
See All by bun
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
5
4.3k
メールやSlack通知をトリガーにした非同期APIテスト基盤を作ってみた / async-test-platform-for-automated-testing
bun913
0
280
はじめてのSDET / My first challenge as a SDET
bun913
1
690
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
2
640
そのbeforeEach本当に必要? TIPSをご紹介 / beforeEach TIPS
bun913
1
1.7k
あなたはどっち派?XSpec系テストフレームワークの構造化流派について / XSpec Title Naming
bun913
1
870
良いユニットテストの性質を整理してたら考えるべき設計も見えてきたの
bun913
11
7.3k
GitHub Copilotと快適なユニットテストコード作成生活
bun913
10
8.5k
気が付いたらJSTQB AL TAに合格していた。そんな旅がしたいの。
bun913
2
1.3k
Other Decks in Technology
See All in Technology
運用システムにおけるデータ活用とPlatform
sansantech
PRO
0
130
今年注目する!データ分析プラットフォームでのAIの活用
nayuts
0
160
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
210
AI バイブコーティングでキーボード不要?!
samakada
0
630
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
560
Do Vibe Coding ao LLM em Produção para Busca Agêntica - TDC 2026 - Summit IA - São Paulo
jpbonson
3
150
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
160
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
120
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
200
"おまじない"を卒業する ボイラープレート再入門
shunsuke_1b
1
110
CloudTrail を見つめ直してみる
kazzpapa3
1
120
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
150
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
170
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
250
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
330
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Statistics for Hackers
jakevdp
799
230k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
530
Evolving SEO for Evolving Search Engines
ryanjones
0
180
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
How to build a perfect <img>
jonoalderson
1
5.4k
Are puppies a ranking factor?
jonoalderson
1
3.3k
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 ご清聴ありがとうございました!!