目次
- OSS読めば幸せになれるか
- flaskってなんだろう
- どこを見よう
- なんでこういう実装なんだろう
- 結局僕たちはどうすればいいんだろう
1. OSS読めば幸せになれるか
- 世界中の人が利用、開発するソフトのコード = たぶん良いコード
- 個人開発 -> 自由にかけちゃう -> 発散、そして崩壊
- 「愚者は経験に学び、賢者は歴史に学ぶ」
- 歴史 = 他者の経験
2. flaskってなんだろう
- pythonの軽量webフレームワーク
- OSSの中では比較的シンプルな構成
- 比較的に読みやすいはず
3. どこを見よう
- OSSとして公開するために必要なものはチラッと見る
- ドキュメント、メタデータなど
- 主要なのは"flask"ディレクトリだけ
- それでもガッツリ見るのは大変
- よく使うものは注視する
4. なんでこういう実装なんだろう
-
__init__.py, __main__.py
- どのスクリプトでも使うとこはここでまとめてやる
-
_compat.py
- 2,3系、どちらでも使えるようにしてる
app.py
- アプリクラスを作るとこ(一番重要)
- 各関数にコメント -> sphinxでドキュメントに
- デコレータ利用
- 標準 (property, staticmethod)
- 作成 (setupmethod)
- ドキュメント部が多いがコード量は少ない
- 結局werkzeugのrun_simpleでサーバ起動
cli.py
- コマンドライン用
- やっぱclick便利なんすね
templateing.py
- 似た処理の関数は共通部分を切り出す
- 外部参照しない抽象化した関数を使う
wrapper.py
- Response, Requestクラス
- Mixinクラスを継承
- 必要最小限のpropertyだけ
- かなりコード量は少ない
- 標準、外部パッケージを有効利用
- WSGI : Web Server Gateway Interface
- python公式
- Werkzeug : WSGIのutilityライブラリ
- Jinja : テンプレートエンジン
- HTMLにpythonの結果埋め込むやつ
pallets projectsはすごい
https://palletsprojects.com/
5. 結局僕たちはどうすればいいんだろう
分からない、俺達は雰囲気でコードを書いている
俺はpythonの標準機能使えてるだろうか
- except, raise, finally
-
*args
,**kwargs
- ENV
- itertools, functools
- decorator
- ドキュメントを読もう
- 細かい仕様分からなくなったらコードを見よう
- ドキュメント無い、間違ってることはよくある、コードは嘘つかない
- outputすると無知度合いに気づく
- 発表する -> 分からない -> 調べる -> チョットワカル
- 質問される -> 死 -> 調べる -> チョットワカル