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

    今泉大樹


    View Slide

  2. 2
    早速ですが今日のメッセージです
    OSS貢献に壁なんてなかった

    View Slide

  3. 3
    自己紹介
    今泉大樹(Taiki Imaizumi) (bun913)
    • クラスメソッド株式会社
    • 2023 Japan AWS Top Engineer (Services)
    • 2023 Japan AWS All Certifications Engineer
    • 好きな技術領域
    • アプリとインフラの中間あたり
    • ダイの大冒険ガチ勢
    @bun76235104

    View Slide

  4. 4
    タイトルのとおり
    OSS活動(AWS関連も含む)お話をします

    View Slide

  5. 5
    OSSとは
    • 詳細な定義には触れません
    • 今回は以下のように、ふわっとした意味で話させていただきま

    • ソースコードが公開されている
    • (規定されているライセンスに則って)利用、改変、再配布ができる
    • これらOSSコードやドキュメントに寄与することを「貢献」とか「コ
    ントリビュート」などと表現します

    View Slide

  6. 6
    そもそも・・・
    OSSに貢献すると何が嬉しいのか

    View Slide

  7. 7
    OSS貢献は何が嬉しいのか(後でも紹介します)
    • GitHubが強く見える
    • 仕事ほどプレッシャーを感じずに、世界中で使われ得るプロダク
    トに携われる
    • 有名なOSSだと特に以下のようなメリットも
    • 世界中のすごい人からレビューをもらえる・コードを見れる
    • プロダクト特性に応じたCI/CDの流れなどを学習できる
    • (おまけ)エンジニアスキル可視化サービスのスコアアップなど

    View Slide

  8. 8
    でも・・・
    やり方がよく分からないんです
    (半年前くらいの私)

    View Slide

  9. 9
    基本的にはこれだけ(ほぼ一般的な開発と同じ)

    View Slide

  10. 10
    でもやっぱり
    OSSって強い人しかできないんでしょう?
    ソンナコトナイヨ

    View Slide

  11. 11
    ここからは
    実際に私がしていた勘違いを見ていきます

    View Slide

  12. 12
    • よくある(?)勘違い
    • OSSのコードはツヨツヨエンジニアが作っているので、凡庸なエンジニ
    アでは理解できないのでは?
    • クリーンアーキテクチャーが〜
    • ドメイン駆動設計が〜
    • 片方向の依存性が〜
    • 手を加える何てもってのほか
    • 美しい作品に手を加えられるのか・・・!?
    幻想1: OSSのプログラマーはツヨツヨしかいない

    View Slide

  13. 13
    ここでAWS CDKのコードを見てください

    View Slide

  14. 14
    コードが何をしているかは分からないけど
    • パッと見てわかるイケてなさそうな箇所
    • if文のネストが深い
    • if文にダラダラ複数の条件が書かれている
    • 本当のことを言っているのか分からないコメント
    • そもそもコメントでコードを取り繕おうとしている?
    • etc
    • リファクタリングしたくてムズムズしませんか?

    View Slide

  15. 15
    リファクタリングするだけでも貢献です!

    View Slide

  16. 16
    幻想2: 深く理解しているサービスじゃないとダメ?
    「良く分からんけど貢献したい」
    でも大丈夫です!

    View Slide

  17. 17
    貢献するOSSの探し方
    • 自分が仕事で関わっている領域で探す
    • GItHubのOrganizationを眺めてみるだけでも楽しい
    • 例 「Amazon Web Services GitHub」 「HashiCorp GitHub」
    • 自分の好きな言語・初心者向けのIssueを探す
    • Good First Issueというサービスでも探せます
    • 自分が好きなツールで探す
    • 私の場合、Raycastというツールが大好きです
    • 既存で便利ツールないから作っちゃえパターンも
    • 新しく作る必要なし。既存のサービスを組み合わせてもOK

    View Slide

  18. 18
    とはいえ・・・
    • 「詳しくなくても良い」ので自分の好きなツール・触ったことのあ
    るツールがおすすめです
    • 感情面の理由
    • 単純にモチベーションが湧く
    • Pull Requestがマージされた時の充実感がすごい
    • 技術面の理由
    • ディレクトリを眺めてコードの場所にあたりをつけられる
    • 変数名や関数名にもアイディアが湧く(ドメイン知識がある)

    View Slide

  19. 19
    幻想3: 英語ができないとやり取りも大変
    私もできないけど大丈夫です!!(断言)

    View Slide

  20. 20
    今は無料で使える翻訳ツールがすごいですし
    • Google翻訳のChrome拡張
    • DeepLのChrome拡張
    • 最近だとAIサービスも非常に良いです!
    • ChatGPTに英語のお知らせタイトルを書いてもらったら一瞬でネイ
    ティブっぽいのができた
    • ChatGPTを使って英語学習をしてみました
    • 私「”あなたのアイディアは最高です!改善してみます!”という言葉
    を英語ネイティブの友達に伝える感じに翻訳して」

    View Slide

  21. 21
    細かいニュアンスが分からなくても大丈夫です
    • レビュワー「My eyeballs thank you for this refactor.」
    • 私「いえーす!!OKぇぇぇ!!」
    眼球がありがとうって言うの?

    View Slide

  22. 22
    なんか大丈夫な気がしてきませんか?
    実際なんとかなるんですよ

    View Slide

  23. 23
    これらを乗り越えてPull Requestがマージされると

    View Slide

  24. 24
    コントリビュートへのご褒美は知識だけではない

    View Slide

  25. 25
    (おまけ)AWS CDKの場合

    View Slide

  26. 26
    最後に・・・AWS CDKへの貢献のTIPS 1/2
    • AWS CDKとは
    • よく知ったプログラミング言語で書けるIaCツール
    • TypeScript / Python / Go / Java / C#
    • 型がある言語であれば当然型の補完も有効
    • 短い記述でAWSのベストプラクティスを意識した構築ができる

    View Slide

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

    View Slide

  28. 28
    ということで(再掲)
    OSS貢献に壁なんてなかった

    View Slide

  29. 29
    ご清聴ありがとうございました!!

    View Slide