Python Bottleのコードを読んだ
なんか最近は何にもやる気が起きない。なので最近は雑務のような作業ばかりしているのだけど、今日はその延長としてPythonのBottleマクロフレームワークのコードを読んでみた。
「今日は」といっても実際に読んだのは1時間半ほど。そのほかは今現在まで結局何もしていない。なにか作ってほしいものなどあればお気軽にリクエストを。
作るものすらも思いつかないほどの重症だ。
Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)
- 作者: 鈴木たかのり,清原弘貴,嶋田健志,池内孝啓,関根裕紀,若山史郎
- 出版社/メーカー: 技術評論社
- 発売日: 2015/04/17
- メディア: 大型本
- この商品を含むブログ (1件) を見る
====
Bottleは本日現在最新の開発版を読んだ。
WSGIについては理解していないので読み飛ばし、その他のサーバアダプターもエンジン側を読んでいないので飛ばし、テンプレートエンジンもJinja2以外は飛ばした。まぁそれらは飛ばしてもBottleのコネクタなので関係ない。
Bottleは全体で4000行ほどなので概要を掴むようにして読んだが、まぁ非常にシンプルな設計だ。かなり冗長な部分があるように見えるが、なぜそこが冗長なのかまでは読んでいない。
だが全体的には構造化されており、RouterやRoute周りはプログラミングの勉強をしている人間は読んで損はないだろう。4000行やそこらでWSGI、アダプタ、テンプレートエンジン、URLディスパッチャを含んでいるマイクロフレームワークとしてもシンプルな部類であろう。
Bottleのドキュメンは全体的にざっと読んだがどうも複雑に感じてしまっていた。URLディスパッチャにしても記述ルールの全体を理解できているのかがわからなかった。
だがソースを読むことでまさにそのルールの全体像がわかった。そしてその他にもドキュメントを読む以上の理解が出来た。
やはり小さなコードはドキュメントよりも本体を読むべきだ。
Python2.5からPython3.xに対応させるために色々な工夫がされており、その点についても勉強になる。
HTCPCPなんかのジョークも組み込まれていたり良いコードだ。
最新版のコードはGitHubに上がっている。
https://github.com/bottlepy/bottle.git
と、することもないので読んだことを日記に書いた。