エキスパート Python プログラミング読了

エキスパート Python プログラミング読み終わりました。これは良本!

エキスパートPythonプログラミング

エキスパートPythonプログラミング

pythonは趣味のプログラミングで使っているだけで、業務で本格的に使ったことはありません。なので、ずっと適当に書いてました。それでも問題ないのがPythonの良いところなのですが、この本を読んでいろいろ勉強させてもらいました。

第二章 構文ベストプラクティス

実はリスト内包表記は使ったことがないんです。簡潔過ぎてわけが分からなくなるんです。でも、実行効率が上がると分かったのでこれからは積極的に使っていこうと思います。

デコレータは知っているけど自分で使ったことはありませんでした。こんなことができるのかー、とびっくり。

第四章 良い名前を選ぶ

名前付けは言語によって流儀が違うのが悩ましいですよね。最近はJavaC#を書いてるので、さらに混乱です。

PEP 8(http://oldriver.org/python/pep-0008j.html)に書いてあります。

定数
UPPER_CASE_WITH_UNDERSCORES
変数
lower_case_with_underscores
プライベート変数
最初に_をつけて、lower_case_with_underscores
関数
lower_case_with_underscores
引数
lowercaseか、lower_case_with_underscores
プロパティ
lower_case_with_underscores
クラス
CamelCase
モジュールとパッケージ
lowercase

第5章 パッケージを作る

自分だけで使うならば実行できればいいので、パッケージとか気にする必要はありませんでした。でも、やっぱり共通パターンに則っておいた方がいいのでしょうね。

基本的には

  • setup.py
  • MANIFEST.in

の二つを書けば標準に則った形になるようです。
実際には paster create basic_package で雛形を作るのが楽とのことです。
(pasterについてあんまり分かってない)

setup.pyにあるカテゴリは
http://pypi.python.org/pypi?:action=list_classifiers から探します。

第6章 アプリケーションを作る

ちょうどRSSを読み込んだりDBを扱ったりする小さなアプリケーションを作ってたところだったのでこの章を読んで、勉強になりました。というか、そうだったのか!と思うことが多々ありました…

第7章 zc.buildoutを使う

いまいちbuildoutとvirtualenvsetuptools(setup.py)とをどういう使い分けをすればいいのかが分かりませんでした。たぶん大規模になってくると必要になるんだと思いますが、ちょこちょこっと書いてるだけでは必要ないんじゃないかと思いました。

あとは

コード管理とかsphinxとかテストとかはだいたい知ってたので、自分の知識の確認ができてよかったです。

とかく

pythonは(英語の)ドキュメントが充実しているのがいいですよね。一方、日本語の資料はまとまったものや最新のものはほとんどないのが悲しいです。適当にぐぐって出てきた情報は、古い情報だったりしますしね。

というわけで、こういう本で最新情報がまとまった形で得られたというのはありがたいことです。感謝!