便利ライブラリを実運用で使うか迷った話

C98d379da6e5517afff697a6c5615e68?s=47 mizzsugar
December 11, 2019

 便利ライブラリを実運用で使うか迷った話

C98d379da6e5517afff697a6c5615e68?s=128

mizzsugar

December 11, 2019
Tweet

Transcript

  1. 便利ライブラリを 実運用で使うか迷った話 @stapy 2019-12-11 mizzsugar0425

  2. お前、誰よ • みずきと申します。 • やっていること↓ ◦ 昼:データ分析のデータ基盤のデータマネジメント (GCP: 特にBigQuery) ◦

    夜:PythonでWebアプリ開発(Pyramid, PostgreSQL, Nuxt.js, TypeScript) ◦ つい最近まで仕事で Djagoいじってたので趣味で Django触ったりも ◦ Twitter -> @mizzsugar0425 • コーヒーと自転車が好き
  3. 前提 • これは、ある便利ライブラリを実運用で使うか迷い、こんな観点から判断し たよという話です。 • 意思決定の観点は組織やプロジェクトの内容によって異なると思います。 • これは、「こうすれば絶対に上手く行く!」という話ではありません。よっ て、このスライドの通りに意思決定したけど上手く行かなかったとしても責 任を負いません。

  4. SNS連携の実装をしていた時のこと

  5. 著名なWEBサービスのPython SDKはあるか? WEBサービス・アプリ 公式 非公式 Google googleapis/google-auth-li brary-python - Line

    - - Facebook - mobolic/facebook-sdk Twitter - - ※ユーザー認証ができるもの。違ったら教えてね。
  6. 著名なWEBサービスのPython SDKはあるか? WEBサービス・アプリ 公式 非公式 Google googleapis/google-auth-li brary-python - Line

    - - Facebook - mobolic/facebook-sdk Twitter - - ※ユーザー認証ができるもの
  7. どうする??

  8. PyPIの嬉しい反面困るところ • 極端に言えば、誰でもライブラリを登録できる • 逆にいうと、きちんとメンテナンスされなかったり、ちゃんとした組織が作 成していないライブラリも混じっている。玉石混交。 • 実運用で使う場合、「お、便利ライブラリだ! pip install

    ~!」と早ま らず吟味する必要がある。
  9. 気にしたところ • ライセンス • IssueやPRに対応しているか • 継続的にメンテナンスされているか • ソースコード

  10. ライセンス • GPLライセンスだとライブラリを使用したらソースコードを公開しないとい けないので、秘密にしたかったら使えない • MITやBSDだと公開義務はない →facebook-sdkはApache-2.0。公開義務はない

  11. IssueやPRがほったらかされていないか • バグ見つけてもMaintainerから返信がなかったら今後の保守が大変そう

  12. PRやIssueに今でも対応していることがわかった

  13. 継続的にメンテナンスされているか • 便利ライブラリに足引っ張られたら本末転倒

  14. (できたら)ソースコードを読む • 今まで見たものでも判断に迷ったら • できたらでいいです。私もWebフレームワークやハッシュライブラリは読ん でないです。

  15. 結論: facebook-sdk(非公式)を使う GOOD • Apache License 2.0なのでソースコード公開義務がない • IssueやPRが無視されていない •

    最新の更新は1ヶ月以内されていた (2019年12月時点) • 「ライブラリ使わないで自分で実装したら大体こん な感じだろうな」というソースコードだった Improvements • ドキュメントが更新されていない -> 気になるのでIssue投げて必要に応じて PRあげようと思う • そもそもFacebook公式がSDK出してほしい〜(どうしようもない)
  16. ありがとうございました!