Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

どうする??

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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