便利ライブラリを実運用で使うか迷った話@stapy 2019-12-11mizzsugar0425
View Slide
お前、誰よ● みずきと申します。● やっていること↓○ 昼:データ分析のデータ基盤のデータマネジメント (GCP: 特にBigQuery)○ 夜:PythonでWebアプリ開発(Pyramid, PostgreSQL, Nuxt.js, TypeScript)○ つい最近まで仕事で Djagoいじってたので趣味で Django触ったりも○ Twitter -> @mizzsugar0425● コーヒーと自転車が好き
前提● これは、ある便利ライブラリを実運用で使うか迷い、こんな観点から判断したよという話です。● 意思決定の観点は組織やプロジェクトの内容によって異なると思います。● これは、「こうすれば絶対に上手く行く!」という話ではありません。よって、このスライドの通りに意思決定したけど上手く行かなかったとしても責任を負いません。
SNS連携の実装をしていた時のこと
著名なWEBサービスのPython SDKはあるか?WEBサービス・アプリ 公式 非公式Googlegoogleapis/google-auth-library-python -Line - -Facebook - mobolic/facebook-sdkTwitter - -※ユーザー認証ができるもの。違ったら教えてね。
著名なWEBサービスのPython SDKはあるか?WEBサービス・アプリ 公式 非公式Googlegoogleapis/google-auth-library-python -Line - -Facebook - mobolic/facebook-sdkTwitter - -※ユーザー認証ができるもの
どうする??
PyPIの嬉しい反面困るところ● 極端に言えば、誰でもライブラリを登録できる● 逆にいうと、きちんとメンテナンスされなかったり、ちゃんとした組織が作成していないライブラリも混じっている。玉石混交。● 実運用で使う場合、「お、便利ライブラリだ! pip install ~!」と早まらず吟味する必要がある。
気にしたところ● ライセンス● IssueやPRに対応しているか● 継続的にメンテナンスされているか● ソースコード
ライセンス● GPLライセンスだとライブラリを使用したらソースコードを公開しないといけないので、秘密にしたかったら使えない● MITやBSDだと公開義務はない→facebook-sdkはApache-2.0。公開義務はない
IssueやPRがほったらかされていないか● バグ見つけてもMaintainerから返信がなかったら今後の保守が大変そう
PRやIssueに今でも対応していることがわかった
継続的にメンテナンスされているか● 便利ライブラリに足引っ張られたら本末転倒
(できたら)ソースコードを読む● 今まで見たものでも判断に迷ったら● できたらでいいです。私もWebフレームワークやハッシュライブラリは読んでないです。
結論: facebook-sdk(非公式)を使うGOOD● Apache License 2.0なのでソースコード公開義務がない● IssueやPRが無視されていない● 最新の更新は1ヶ月以内されていた (2019年12月時点)● 「ライブラリ使わないで自分で実装したら大体こん な感じだろうな」というソースコードだったImprovements● ドキュメントが更新されていない -> 気になるのでIssue投げて必要に応じて PRあげようと思う● そもそもFacebook公式がSDK出してほしい〜(どうしようもない)
ありがとうございました!