LoginSignup
5
1

More than 5 years have passed since last update.

OSSを読む - flask編-

Posted at
1 / 16

目次

  1. OSS読めば幸せになれるか
  2. flaskってなんだろう
  3. どこを見よう
  4. なんでこういう実装なんだろう
  5. 結局僕たちはどうすればいいんだろう

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/
alt


5. 結局僕たちはどうすればいいんだろう


分からない、俺達は雰囲気でコードを書いている


俺はpythonの標準機能使えてるだろうか

  • except, raise, finally
  • *args, **kwargs
  • ENV
  • itertools, functools
  • decorator

  • ドキュメントを読もう
    • 細かい仕様分からなくなったらコードを見よう
    • ドキュメント無い、間違ってることはよくある、コードは嘘つかない
  • outputすると無知度合いに気づく
    • 発表する -> 分からない -> 調べる -> チョットワカル
    • 質問される -> 死 -> 調べる -> チョットワカル
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1