Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSに関するOSS活動で得た貢献までの壁を越えるコツ

bun
May 26, 2023

 AWSに関するOSS活動で得た貢献までの壁を越えるコツ

2023/05/26(金)
クラスメソッド x フォージビジョン x Fusic【AWS勉強会】 でお話しした資料となります。

bun

May 26, 2023
Tweet

More Decks by bun

Other Decks in Technology

Transcript

  1. クラスメソッド x フォージビジョン x Fusic 
 
 
 AWS事業本部 コンサルティング部
 1

    AWSに関するOSS活動で得た貢献までの壁を越えるコツ
 2023 5/26
 今泉大樹

  2. 3 自己紹介 今泉大樹(Taiki Imaizumi) (bun913) • クラスメソッド株式会社 • 2023 Japan

    AWS Top Engineer (Services) • 2023 Japan AWS All Certifications Engineer • 好きな技術領域 • アプリとインフラの中間あたり • ダイの大冒険ガチ勢 @bun76235104
  3. 5 OSSとは • 詳細な定義には触れません • 今回は以下のように、ふわっとした意味で話させていただきま す • ソースコードが公開されている •

    (規定されているライセンスに則って)利用、改変、再配布ができる • これらOSSコードやドキュメントに寄与することを「貢献」とか「コ ントリビュート」などと表現します
  4. 7 OSS貢献は何が嬉しいのか(後でも紹介します) • GitHubが強く見える • 仕事ほどプレッシャーを感じずに、世界中で使われ得るプロダク トに携われる • 有名なOSSだと特に以下のようなメリットも •

    世界中のすごい人からレビューをもらえる・コードを見れる • プロダクト特性に応じたCI/CDの流れなどを学習できる • (おまけ)エンジニアスキル可視化サービスのスコアアップなど
  5. 12 • よくある(?)勘違い • OSSのコードはツヨツヨエンジニアが作っているので、凡庸なエンジニ アでは理解できないのでは? • クリーンアーキテクチャーが〜 • ドメイン駆動設計が〜

    • 片方向の依存性が〜 • 手を加える何てもってのほか • 美しい作品に手を加えられるのか・・・!? 幻想1: OSSのプログラマーはツヨツヨしかいない
  6. 17 貢献するOSSの探し方 • 自分が仕事で関わっている領域で探す • GItHubのOrganizationを眺めてみるだけでも楽しい • 例 「Amazon Web

    Services GitHub」 「HashiCorp GitHub」 • 自分の好きな言語・初心者向けのIssueを探す • Good First Issueというサービスでも探せます • 自分が好きなツールで探す • 私の場合、Raycastというツールが大好きです • 既存で便利ツールないから作っちゃえパターンも • 新しく作る必要なし。既存のサービスを組み合わせてもOK
  7. 18 とはいえ・・・ • 「詳しくなくても良い」ので自分の好きなツール・触ったことのあ るツールがおすすめです • 感情面の理由 • 単純にモチベーションが湧く •

    Pull Requestがマージされた時の充実感がすごい • 技術面の理由 • ディレクトリを眺めてコードの場所にあたりをつけられる • 変数名や関数名にもアイディアが湧く(ドメイン知識がある)
  8. 20 今は無料で使える翻訳ツールがすごいですし • Google翻訳のChrome拡張 • DeepLのChrome拡張 • 最近だとAIサービスも非常に良いです! • ChatGPTに英語のお知らせタイトルを書いてもらったら一瞬でネイ

    ティブっぽいのができた • ChatGPTを使って英語学習をしてみました • 私「”あなたのアイディアは最高です!改善してみます!”という言葉 を英語ネイティブの友達に伝える感じに翻訳して」
  9. 21 細かいニュアンスが分からなくても大丈夫です • レビュワー「My eyeballs thank you for this refactor.」

    • 私「いえーす!!OKぇぇぇ!!」 眼球がありがとうって言うの?
  10. 26 最後に・・・AWS CDKへの貢献のTIPS 1/2 • AWS CDKとは • よく知ったプログラミング言語で書けるIaCツール •

    TypeScript / Python / Go / Java / C# • 型がある言語であれば当然型の補完も有効 • 短い記述でAWSのベストプラクティスを意識した構築ができる
  11. 27 AWS CDKへの貢献のTIPS 2/2 • コントリビュートへの流れ • CONTRIBUTING.mdに流れがよくまとまっています • 重要な点を抜粋

    • jsiiという仕組みでTypeScriptから他の言語へと変換 • コントリビュートする際はTypeScriptのリポジトリだけでOK • ※ 生成された各言語のコードは「らしくない」コードになっているかも しれませんが、怒らない • リファクタリングも結構歓迎されます • Issue立ててさっさとPull Requestを作ってしまえば案外