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

こんにちは、この4月から新卒としてグリーのプラットフォーム開発部で働いている sotarok (そうたろう、と読んでください!)と申します。よろしくお願いします!

今日は、ブログの更新ラインから外れる形となりますが、KLab株式会社の稲田直樹さんから、5/28に発売され爆発的に売れていると言う「エキスパートPythonプログラミング」をご献本いただきましたので、ご紹介させていただきます。この本は「Expert Python Programming」の訳書で、 稲田直哉さん, 渋川よしきさん, 清水川貴之さん, 森本哲也さんの4名のPythonistaによって翻訳されています。巷ではすでに「エキPy」などと愛称がつけられているようですw

グリーでは開発にPHPを用いることがほとんどですが、インフラチームは割と好き勝手自分の好きな言語(最近はPerlやRubyが多いようです)で便利スクリプトを書いています。私もPHPはよく使うものの、言語としてはPythonはかなり好きなので(学生時代は、研究などでよく使っていました)、社内でPython派閥を広げて行きたいと画策しています :)

さて、こんな前置きですが、早速エキスパートPythonプログラミングの紹介をします。

目次

(ASCII INDEXサイトより引用)

  • 第1章 さあ、はじめよう
  • 第2章 構文ベストプラクティス —— クラス以外
  • 第3章 構文ベストプラクティス —— クラスの世界
  • 第4章 良い名前を選ぶ
  • 第5章 パッケージを作る
  • 第6章 アプリケーションを作る
  • 第7章 zc.buildoutを使う
  • 第8章 コードの管理
  • 第9章 ライフサイクルの管理
  • 第10章 プロジェクトのドキュメント作成
  • 第11章 テスト駆動開発
  • 第12章 最適化:一般原則とプロファイリングテクニック
  • 第13章 最適化:解法
  • 第14章 Pythonのためのデザインパターン

http://ascii.asciimw.jp/books/books/detail/978-4-04-868629-7.shtml

Python初心者から次の一歩へ

どんなプログラミング言語にも言えることですが、わかる・書けるようになる、には2段階あると思います。私にとってのPythonがそうですが、たいていの場合、プログラミング言語の仕様をしり、自分のやりたい事をそれなりに実現できるようになっても、「これよりもっとカッコイイやりかたないのかな」とか「(Pythonをマスターしている人って)普通どういうふうにかくの?」みたいな疑問は常に感じます。周りにそういうことをよく知ってる人がいれば聞いたり、メジャーでモダンなオープンソースプロジェクトをウォッチするとか、いろいろな方法でそういういわゆる現場の知識というのを手に入れられるわけですが、体系的にそういう情報がまとまっていると非常に嬉しいなーと思います。この本はまさにそういうすべての迷えるPythonistaのためにあるのではないでしょうか。

特に自分にとって魅力的だったトピックは、 ジェネレータ・デコレータ、メタクラス(メタプログラミング)、O/Rマッパー(SQLAlchemy)パッケージの基礎からビルドシステム(zc.buildout)、ドキュメント(Sphinx・reStructuredText)、テストツール(unittest)、デザインパターンなどですが、どれも、「他の言語だとこうやるけど、Pythonだとどうやるんだろう?」に応えてくれる内容でした。

また、内容的に、Pythonだけの話ではなく、広く一般的に読まれるべき内容も多く(バージョン管理、テスト、ドキュメントなど・・・本書で紹介されるツールがPythonで書かれているというだけで)、本文中の「はじめに」から言葉を借りれば「方法ではなく、なぜそうするかという理由のほうを重視した内容になっているため、本書の内容がすぐに時代遅れになるということはないでしょう」。

(こういうのもなんですが)日本ではなぜかPythonがそこまでメジャーではなかったと思いますが、Google App EngineがきっかけでPythonに入門してみたり、といった人も増えてきたのではないでしょうか。
PHPにも言えることですが、Pythonも入門書寄りの書籍が充実していて実践的でテクニカルなトピックを扱った本が少ないように思います。そんな中で、一通り文法がわかったけど、次どうしようといったときに、「とりあえずこれ読めばOK」と言える本になるのでないか、と思います。

ということで

入門書レベルを卒業して次のレベルへ、と言うすべてのPythonistaに読んでもらいたいと思うすばらしい本だと思います。私も勉強させていただきます!現在はAmazonなどでは在庫が切れている状況のようですが、是非書店などで手にとってみると良いのではないでしょうか :)

  • タイトル: エキスパートPythonプログラミング
  • Tarek Ziade (著), 稲田 直哉 (翻訳), 渋川 よしき (翻訳), 清水川 貴之 (翻訳), 森本 哲也 (翻訳)
  • 出版社: アスキー・メディアワークス (2010/5/28)

http://www.amazon.co.jp/dp/4048686291

今週はまたブログの更新があると思いますので、そちらもお楽しみに!