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
はじめてのSDET / My first challenge as a SDET
bun913
1
480
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
2
540
そのbeforeEach本当に必要? TIPSをご紹介 / beforeEach TIPS
bun913
1
1.2k
あなたはどっち派?XSpec系テストフレームワークの構造化流派について / XSpec Title Naming
bun913
1
710
良いユニットテストの性質を整理してたら考えるべき設計も見えてきたの
bun913
11
7k
GitHub Copilotと快適なユニットテストコード作成生活
bun913
10
8.1k
気が付いたらJSTQB AL TAに合格していた。そんな旅がしたいの。
bun913
2
1k
ユーザーストーリーのレビューを自動化したみたの
bun913
1
1.1k
「XX試験の環境作ってよ」と言われた時によく使うAWSのソリューションについて
bun913
0
370
Other Decks in Technology
See All in Technology
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
270
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
670
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
490
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
メルカリIBISの紹介
0gm
0
430
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
6
750
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
160
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
使いやすいプラットフォームの作り方 ー LINEヤフーのKubernetes基盤に学ぶ理論と実践
lycorptech_jp
PRO
1
160
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Building Applications with DynamoDB
mza
96
6.6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
We Have a Design System, Now What?
morganepeng
53
7.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
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 ご清聴ありがとうございました!!