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
870
便利ライブラリを実運用で使うか迷った話
mizzsugar
December 11, 2019
Tweet
Share
More Decks by mizzsugar
See All by mizzsugar
フルリモート向いてないと思っていた私が、なんだかんだ健やかに 1年半フルリモート出来ている話
mizzsugar
0
93
Djangoでのプロジェクトだって型ヒントを運用出来る!
mizzsugar
4
7.6k
「動くものは作れる」の一歩先へ 〜「自走プログラマー」の紹介〜
mizzsugar
0
430
pytestの第一歩 〜「テスト駆動Python」の紹介〜
mizzsugar
3
240
データ分析ツール開発でpoetryを使う選択肢
mizzsugar
1
960
unittest.mockを使ってテストを書こう
mizzsugar
5
5.7k
変数に変数を代入したら?
mizzsugar
0
2.3k
Djangoのパスワードハッシュアルゴリズムで_PyramidのWebアプリケーション作った.pdf
mizzsugar
0
720
unittest.mockを使ってテストを書こう ~モックオブジェクトを使ってより単体テストの目的に沿ったテストに~
mizzsugar
4
1.8k
Other Decks in Programming
See All in Programming
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
CSC307 Lecture 13
javiergs
PRO
0
150
20240706_CDKConf
takuyay0ne
0
1.2k
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
81k
CSC307 Lecture 12
javiergs
PRO
0
220
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
Ruby メモリ管理 プログラミング
megmogmog1965
0
130
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
13
430
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.6k
Designing for Performance
lara
604
67k
Building Your Own Lightsaber
phodgson
101
5.9k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Code Review Best Practice
trishagee
58
16k
The Mythical Team-Month
searls
217
43k
Side Projects
sachag
451
42k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
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出してほしい〜(どうしようもない)
ありがとうございました!