Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
便利ライブラリを実運用で使うか迷った話
Search
mizzsugar
December 11, 2019
Programming
0
830
便利ライブラリを実運用で使うか迷った話
mizzsugar
December 11, 2019
Tweet
Share
More Decks by mizzsugar
See All by mizzsugar
フルリモート向いてないと思っていた私が、なんだかんだ健やかに 1年半フルリモート出来ている話
mizzsugar
0
86
Djangoでのプロジェクトだって型ヒントを運用出来る!
mizzsugar
3
7.1k
「動くものは作れる」の一歩先へ 〜「自走プログラマー」の紹介〜
mizzsugar
0
380
pytestの第一歩 〜「テスト駆動Python」の紹介〜
mizzsugar
3
210
データ分析ツール開発でpoetryを使う選択肢
mizzsugar
1
860
unittest.mockを使ってテストを書こう
mizzsugar
5
5.5k
変数に変数を代入したら?
mizzsugar
0
2.3k
Djangoのパスワードハッシュアルゴリズムで_PyramidのWebアプリケーション作った.pdf
mizzsugar
0
610
unittest.mockを使ってテストを書こう ~モックオブジェクトを使ってより単体テストの目的に沿ったテストに~
mizzsugar
4
1.6k
Other Decks in Programming
See All in Programming
SwiftUI, Jetpack Composeの導入で変化した「家族アルバム みてね」のアプリ開発体験
hicka04
6
390
Some Quick Ideas To Improve Your Tests ( #jassttokyo )
teyamagu
PRO
2
2.3k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
580
Building a Smaller App Binary
kateinoigakukun
2
200
WasmOS: Wasmを実行する自作Microkernel
riru
0
370
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
11
7.8k
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
4
870
Parallel Socket Communication in Swift
s_shimotori
0
220
マイ隙間家具OSSたちのご紹介
karupanerura
2
150
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
2
470
Laravel標準バリデーションでできること
hmb_ok
2
360
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
0
2.5k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Building Better People: How to give real-time feedback that sticks.
wjessup
350
18k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
Six Lessons from altMBA
skipperchong
19
2.9k
Build your cross-platform service in a week with App Engine
jlugia
223
17k
A better future with KSS
kneath
230
16k
Gamification - CAS2011
davidbonilla
76
4.5k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
950
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
Transcript
便利ライブラリを 実運用で使うか迷った話 @stapy 2019-12-11 mizzsugar0425
お前、誰よ • みずきと申します。 • やっていること↓ ◦ 昼:データ分析のデータ基盤のデータマネジメント (GCP: 特にBigQuery) ◦
夜:PythonでWebアプリ開発(Pyramid, PostgreSQL, Nuxt.js, TypeScript) ◦ つい最近まで仕事で Djagoいじってたので趣味で Django触ったりも ◦ Twitter -> @mizzsugar0425 • コーヒーと自転車が好き
前提 • これは、ある便利ライブラリを実運用で使うか迷い、こんな観点から判断し たよという話です。 • 意思決定の観点は組織やプロジェクトの内容によって異なると思います。 • これは、「こうすれば絶対に上手く行く!」という話ではありません。よっ て、このスライドの通りに意思決定したけど上手く行かなかったとしても責 任を負いません。
SNS連携の実装をしていた時のこと
著名なWEBサービスのPython SDKはあるか? WEBサービス・アプリ 公式 非公式 Google googleapis/google-auth-li brary-python - Line
- - Facebook - mobolic/facebook-sdk Twitter - - ※ユーザー認証ができるもの。違ったら教えてね。
著名なWEBサービスのPython SDKはあるか? WEBサービス・アプリ 公式 非公式 Google googleapis/google-auth-li brary-python - Line
- - Facebook - mobolic/facebook-sdk Twitter - - ※ユーザー認証ができるもの
どうする??
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出してほしい〜(どうしようもない)
ありがとうございました!