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
860
AWSに関するOSS活動で得た貢献までの壁を越えるコツ
2023/05/26(金)
クラスメソッド x フォージビジョン x Fusic【AWS勉強会】 でお話しした資料となります。
bun
May 26, 2023
Tweet
Share
More Decks by bun
See All by bun
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
2
330
そのbeforeEach本当に必要? TIPSをご紹介 / beforeEach TIPS
bun913
1
310
あなたはどっち派?XSpec系テストフレームワークの構造化流派について / XSpec Title Naming
bun913
1
420
良いユニットテストの性質を整理してたら考えるべき設計も見えてきたの
bun913
11
6.4k
GitHub Copilotと快適なユニットテストコード作成生活
bun913
10
6.4k
気が付いたらJSTQB AL TAに合格していた。そんな旅がしたいの。
bun913
2
620
ユーザーストーリーのレビューを自動化したみたの
bun913
1
810
「XX試験の環境作ってよ」と言われた時によく使うAWSのソリューションについて
bun913
0
290
出社っていいものなの。開発者のテストに対する疑問や思いが聞けたの
bun913
0
720
Other Decks in Technology
See All in Technology
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
160
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
420
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
130
Featured
See All Featured
Site-Speed That Sticks
csswizardry
0
27
Become a Pro
speakerdeck
PRO
25
5k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
KATA
mclloyd
29
14k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
GitHub's CSS Performance
jonrohan
1030
460k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
97
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Code Review Best Practice
trishagee
64
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
YesSQL, Process and Tooling at Scale
rocio
169
14k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
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 ご清聴ありがとうございました!!