内容紹介
2014年米国Joltアワード受賞書、待望の邦訳!
仕事や研究で役立つ実践的な側面を重視し、一般的なプログラミングのベストプラクティスをPythonに適用する方法について解説します。主なテーマは、エレガントなコーディングのためのデザインパターン、処理速度向上のための並列処理とCython、ハイレベルなネットワーク処理、そしてグラフィックスです。読者対象は中級以上のPythonプログラマー。実践的なベストプラクティスを示し、巷で囁かれてきた「デザインパターンはPythonには不向き」「Pythonはマルチコアの恩恵を受けられない」といった認識が間違いであり、迷信にすぎなかったことを明らかにします。2014年米国Joltアワード受賞書、待望の邦訳。
このような方におすすめ
中級以上のPythonプログラマー、プログラミング経験者、教職員、大学生、ハッカー
目次
詳細目次
訳者まえがき
まえがき
1章 生成に関するデザインパターン
1.1 Abstract Factoryパターン
1.1.1 古典的なAbstract Factory
1.1.2 パイソニックなAbstract Factory
1.2 Builderパターン
1.3 Factory Methodパターン
1.4 Prototypeパターン
1.5 Singletonパターン
2章 構造に関するデザインパターン
2.1 Adapterパターン
2.2 Bridgeパターン
2.3 Compositeパターン
2.3.1 古典的なコンポジット/非コンポジットによる階層
2.3.2 単一クラスによるコンポジット/非コンポジット
2.4 Decoratorパターン
2.4.1 関数デコレータとメソッドデコレータ
2.4.2 クラスデコレータ
2.5 Facadeパターン
2.6 Flyweightパターン
2.7 Proxyパターン
3章 ふるまいに関するデザインパターン
3.1 Chain of Responsibilityパターン
3.1.1 古典的な鎖
3.1.2 コルーチンベースの鎖
3.2 Commandパターン
3.3 Interpreterパターン
3.3.1 eval()を用いた式評価
3.3.2 exec()を用いたコード評価
3.3.3 サブプロセスを用いたコード評価
3.4 Iteratorパターン
3.4.1 シーケンス型プロトコルのイテレータ
3.4.2 iter()関数によるイテレータ
3.4.3 イテレータプロトコルによるイテレータ
3.5 Mediatorパターン
3.5.1 古典的なMediator
3.5.2 コルーチンベースのMediator
3.6 Mementoパターン
3.7 Observerパターン
3.8 Stateパターン
3.8.1 状態に適応するメソッド
3.8.2 状態ごとのメソッド
3.9 Strategyパターン
3.10 Template Methodパターン
3.11 Visitorパターン
3.12 ケーススタディ:Imageパッケージ
3.12.1 Imageモジュール
3.12.2 Xpmモジュールの概要
3.12.3 PNGラッパーモジュール
4章 高レベルな並行処理
4.1 CPUバウンドな並行処理
4.1.1 キューとマルチプロセッシングの使用
4.1.2 フューチャーとマルチプロセッシングの使用
4.2 I/Oバウンドな並行処理
4.2.1 キューとマルチスレッドの使用
4.2.2 フューチャーとマルチスレッドの使用
4.3 ケーススタディ:並行処理によるGUIアプリケーション
4.3.1 GUIの作成
4.3.2 ImageScaleのワーカーモジュール
4.3.3 GUI上での進捗表示
4.3.4 終了時の処理
5章 Pythonの拡張
5.1 ctypesによるCライブラリへのアクセス
5.2 Cythonの使用
5.2.1 Cythonを使ったCライブラリへのアクセス
5.2.2 Cythonモジュールによるさらなる高速化
5.3 ケーススタディ:Imageパッケージの高速化
6章 高レベルなネットワーク処理
6.1 XML-RPCアプリケーション
6.1.1 データラッパー
6.1.2 XML-RPCサーバー
6.1.3 XML-RPCクライアント
6.2 RPyCアプリケーション
6.2.1 スレッドセーフなデータラッパー
6.2.2 RPyCサーバー
6.2.3 RPyCクライアント
7章 PythonとTkinterによるGUIアプリケーション
7.1 Tkinter入門
7.2 Tkinterによるダイアログの作成
7.2.1 ダイアログスタイルのアプリケーション
7.2.2 アプリケーションのダイアログ
7.3 Tkinterによるメインウィンドウアプリケーションの作成
7.3.1 メインウィンドウの作成
7.3.2 メニューの作成
7.3.3 インジケータ付きステータスバーの作成
8章 OpenGLによる3Dグラフィックス
8.1 パースペクティブなシーン
8.1.1 PyOpenGLを用いたシリンダーの作成
8.1.2 pygletによるシリンダーの作成
8.2 平行投影によるゲーム
8.2.1 ボードのシーン作成
8.2.2 シーンオブジェクトの選択
8.2.3 ユーザーインタラクション
あとがき
参考文献
サンプルコードについて
索引
コラム目次
シーケンスのアンパック/ディクショナリのアンパック
バウンドメソッドとアンバウンドメソッド
OS XやWindowsでの
Pythonの拡張
Gravitate
続きを見る