$30 off During Our Annual Pro Sale. View Details »

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

mizzsugar
December 11, 2019

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

mizzsugar

December 11, 2019
Tweet

More Decks by mizzsugar

Other Decks in Programming

Transcript

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

    View Slide

  2. お前、誰よ
    ● みずきと申します。
    ● やっていること↓
    ○ 昼:データ分析のデータ基盤のデータマネジメント (GCP: 特にBigQuery)
    ○ 夜:PythonでWebアプリ開発(Pyramid, PostgreSQL, Nuxt.js, TypeScript)
    ○ つい最近まで仕事で Djagoいじってたので趣味で Django触ったりも
    ○ Twitter -> @mizzsugar0425
    ● コーヒーと自転車が好き

    View Slide

  3. 前提
    ● これは、ある便利ライブラリを実運用で使うか迷い、こんな観点から判断し
    たよという話です。
    ● 意思決定の観点は組織やプロジェクトの内容によって異なると思います。
    ● これは、「こうすれば絶対に上手く行く!」という話ではありません。よっ
    て、このスライドの通りに意思決定したけど上手く行かなかったとしても責
    任を負いません。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. どうする??

    View Slide

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

    View Slide

  9. 気にしたところ
    ● ライセンス
    ● IssueやPRに対応しているか
    ● 継続的にメンテナンスされているか
    ● ソースコード

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. 結論: facebook-sdk(非公式)を使う
    GOOD
    ● Apache License 2.0なのでソースコード公開義務がない
    ● IssueやPRが無視されていない
    ● 最新の更新は1ヶ月以内されていた (2019年12月時点)
    ● 「ライブラリ使わないで自分で実装したら大体こん な感じだろうな」というソースコードだった
    Improvements
    ● ドキュメントが更新されていない -> 気になるのでIssue投げて必要に応じて PRあげようと思う
    ● そもそもFacebook公式がSDK出してほしい〜(どうしようもない)

    View Slide

  16. ありがとうございました!

    View Slide