Personal tools
You are here: Home 清水川記 Expert Python Programming の目次の和訳
Document Actions

Expert Python Programming の目次の和訳

Expert Python Programming

Tarek Ziadé 著の Expert Python Programming の目次を和訳しました。Pythonの初心者向けではなく、何かの言語(Python, Ruby, Perl, ...)を理解している人がPythonを取り巻く開発環境、作法などを理解するのにとても良い本だと思います。

本は以下から購入できます。PACKTのサイトからは 10章: プロジェクトの文書化 が丸々1章分DL出来ます。

自分はPACKTで購入して、紙の本とPDFとセット購入で45$でした。PDFには注文者の住所と名前が全ページに印字されます。紙の本はシンガポールでオンデマンド印刷されて1ヶ月くらいで手元に届きました。

Tarek自身による紹介文

目次(英語) の内容を和訳しました。1時間ちょっとで訳したので間違い等あると思います。指摘歓迎。

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

1章: 始めよう

  • Pythonのインストール
    • Pythonの実装系
      • Jython
      • IronPython
      • PyPy
      • その他の実装
    • Linux へのインストール
      • パッケージインストール
      • ソースコンパイル
    • Windows へのインストール
      • Python のインストール
      • MinGW のインストール
      • MSYS のインストール
    • Mac OS X へのインストール
      • パッケージインストール
      • ソースコンパイル
  • Python プロンプト
    • インタラクティブプロンプトのカスタマイズ
      • iPython: より良いプロンプト
  • setuptools のインストール
    • 動作原理を理解する
    • EasyInstallを使ったsetuptoolsのインストール
    • distutilsにMinGWのフックを入れる
  • 作業環境
    • エディターと補助ツールを使う
      • コードエディター
      • Vimのインストールと設定
      • その他のエディタを使う
      • その他のバイナリ
    • 統合開発環境を使う
      • PyDev と Eclipse を使う
  • 要約

2章: 構文ベストプラクティス - クラスの世界

  • リスト内包表記

  • イテレータとジェネレータ
    • ジェネレータ

    • コルーチン

    • ジェネレータ表現

    • itertools モジュール
      • islice: The Window Iterator
      • tee: The Back and Forth Iterator
      • groupby: The uniq Iterator
      • その他の関数
  • デコレータ
    • デコレータの書き方
    • 引数チェック
    • キャッシュ
    • プロキシ
    • コンテキストプロバイダ
  • with と contextlib
    • contextlib モジュール
    • Context Example
  • 要約

3章: 構文ベストプラクティス - クラスを超えて

  • 組み込み型のサブクラス化

  • super クラスを使ってメソッドにアクセスする
    • Pythonのメソッド解決順序(MRO)を理解する

    • super の落とし穴
      • super と従来型の呼び出しを混在させる
      • 親クラスと異なる引数定義の混在
  • ベストプラクティス

  • Descriptors と Properties
    • Descriptors
      • イントロスペクション Descriptor
      • メタ descriptor
    • Properties

  • スロット

  • メタプログラミング
    • __new__ メソッド
    • __metaclass__ メソッド
  • 要約

4章: 良い名前の選択

  • PEP 8 と名前付けのベストプラクティス

  • 名前付けのスタイル
    • 変数
      • 定数
      • パブリックとプライベートの変数
    • 関数とメソッド
      • プライベートの論争
      • 特殊メソッド
      • 引数
    • プロパティー

    • クラス

    • モジュールとパッケージ

  • 名前付けガイド
    • "has" か "is" を二値型に前置する
    • シーケンス型は複数形にする
    • 辞書に明示的な名前を付ける
    • 一般的な名前を避ける
    • 既存の名前を避ける
  • 引数のベストプラクティス
    • イテレーティブなデザインのための引数構築
    • 引数とテストを信じる
    • *args 引数と **kw 引数は気をつけて使おう
  • クラスの名前

  • モジュールとパッケージの名前

  • Working on APIs
    • Tracking Verbosity
    • 名前空間木の構築
    • コードの分割
    • Eggを使う
    • Deprecation 手順を使う
  • 役に立つツール
    • Pylint
    • CloneDigger
  • 要約

5章: パッケージを作る

  • 全てのパッケージで共通のパターン
    • setup.py: 全てをコントロールするスクリプト
      • sdist
      • build と bdist
      • bdist_egg
      • install
      • パッケージのアンインストール
      • develop
      • test
      • register と upload
      • 新しいコマンドを作る
      • setup.py の役に立つ要約
      • その他の重要なメタデータ
  • テンプレートベースのアプローチ
    • Python Paste
    • テンプレートを作る
  • パッケージのテンプレートを作る

  • 開発サイクル

  • 要約

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

  • Atomisator: 導入

  • 全体像

  • 開発環境
    • テストランナーを追加する
    • パッケージ構造を追加する
  • パッケージを書く
    • atomisator.parser
      • 最初のパッケージを作る
      • 最初のdoctestを作る
      • テスト環境を構築する
      • コードを書く
    • atomisator.db
      • SQLAlchemy
      • APIを提供する
    • atomisator.feed

    • atomisator.main

  • Atomisator を配布する

  • パッケージの依存関係

  • 要約

7章: zc.buildoutを使う

  • zc.buildout の哲学
    • ファイル構造を調整する
      • 最小の設定ファイル
      • [buildout] セクションのオプション
    • buildout コマンド

    • レシピ
      • 重要なレシピ
      • レシピを作る
    • Atomisator buildout 環境
      • buildout フォルダ構造
    • さらに先へ

  • リリースとと配布
    • パッケージをリリースする
    • リリース設定ファイルを追加する
    • アプリケーションのビルドとリリース
  • 要約

8章: コードの管理

  • バージョン管理システム
    • 中央集中型システム

    • 分散システム
      • 分散の戦略
    • 中央集中か、分散か?

    • Mercurial

    • Mercurial でプロジェクトを管理する
      • 専用フォルダのセットアップ
      • hgwebdir の設定
      • Apache の設定
      • 認証の設定
      • クライアントの設定
  • 常時結合
    • Buildbot
      • Buildbotのインストール
      • Buildbot と Mercurial のフック
      • Apache と Buildbot のフック
  • 要約

9章: ライフサイクルの管理

  • 異なるアプローチ
    • ウォーターフォール開発モデル
    • スパイラル開発モデル
    • 漸進型開発モデル
  • ライフサイクルの定義
    • プランニング
    • 開発
    • 総合デバッグ
    • リリース
  • トラッキングシステム設定
    • Trac
      • インストール
      • Apache 設定
      • アクセス許可設定
    • Trac でのプロジェクトライフサイクル
      • プランニング
      • 開発
      • クリーニング
      • リリース
  • 要約

10章: プロジェクトの文書化

  • テクニカルライティングの7つのルール
    • 2ステップで書く
    • Target the Readership
    • シンプルなスタイルを使う
    • 情報の範囲を制限する
    • 現実的なコード例を使う
    • 必要十分なアプローチを使う
    • テンプレートを使う
  • reStructuredText 入門
    • セクション構造
    • リスト
    • インラインマークアップ
    • リテラルブロック
    • リンク
  • ドキュメントをビルドする
    • 書類をビルドする
      • デザイン
      • 使い方
      • 手順
  • 書類を作成する
    • Building the Landscape
      • プロデューサーのレイアウト
      • カスタマーのレイアウト
  • 要約

11章: テスト駆動開発

  • テストをしていない人へ
    • テスト駆動開発の原則
      • ソフトウェアの退行を防ぐ
      • コードの品質を上げる
      • 最良の開発者ドキュメントを提供する
      • 強健なコードを素早く生産する
    • どんなテストがありますか?
      • 受け入れテスト
      • ユニットテスト
      • Python の標準テストツール
  • テストをしている人へ
    • ユニットテストの落とし穴

    • ユニットテストの置き換え
      • nose
      • py.test
    • フェイクとモック
      • フェイクを構築する
      • モックを使う
    • ドキュメント駆動開発
      • ストーリーを書く
  • 要約

12章: 最適化: 一般原則とプロファイリングテクニック

  • 最適化の3つのルール
    • まず動くように作る
    • ユーザー視点で動くようにする
    • コードの可読性(とメンテナンス性)を維持する
  • 最適化戦略
    • 他の原因を見つける
    • ハードウェアをスケールする
    • 速度テストを書く
  • ボトルネックを見つける
    • CPU使用率のプロファイルを取る
      • Macro-Profiling
      • Micro-Profiling
      • Pystoneで計測する
    • メモリ使用率のプロファイルを取る
      • Pythonがメモリをどのように使うか
      • メモリのプロファイルを取る
    • ネットワーク使用率のプロファイルを取る

  • 要約

13章: 最適化: 解法

  • 複雑さを縮小する
    • Measuring Cyclomatic Complexity

    • Big-O 表記を計測する

    • シンプルにする
      • リストの探索
      • Listの代わりにSetを使う
      • 外部呼び出しをやめ、仕事量を減らす
      • コレクション型を使う
  • マルチスレッドを使う
    • マルチスレッディングとは?

    • Pythonはスレッドをどのように使うか

    • スレッドをいつ使うべきか?
      • Building Responsive Interfaces
      • Delegating Work
      • マルチユーザーアプリケーション
      • シンプルな例
  • マルチプロセスを使う
    • Pyprocessing
  • キャッシュを使う
    • Deterministic Caching
    • Non-Deterministic Caching
    • Pro-Active Caching
    • Memcached
  • 要約

14章: 有用なデザインパターン

  • 生成パターン
    • Singleton
  • 構造パターン
    • Adapter
      • Interfaces
    • Proxy

    • Facade

  • 振る舞いパターン
    • Observer
    • Visitor
    • Template
  • 要約

Category(s)
python python
pyspa
The URL to Trackback this entry is:
http://www.freia.jp/taka/blog/680/tbping

Re:Expert Python Programming の目次の和訳

Posted by methane at Oct 26, 2009 09:14 PM

「テストする、テストしない」は、「テストをしていない人へ、テストをしている人へ」が良いかなーと思いました。

Re:Expert Python Programming の目次の和訳

Posted by t2y at Oct 27, 2009 01:44 AM

Tarek さんに和訳したいと交渉していたのですが、出版社の編集者さんの同意が得られずに断念しました。残念です。

Re:Expert Python Programming の目次の和訳

Posted by しみずかわ at Oct 27, 2009 10:14 AM

> methane

ありがとうございます。修正しました。他にもいくつか和訳化しました(3章とか)。

> t2y

な、なんだってー!

Re:Expert Python Programming の目次の和訳

Posted by しみずかわ at Nov 05, 2009 12:45 PM

>> Tarek さんに和訳したいと交渉していたのですが、出版社の編集者さんの同意が得られずに断念しました。
>な、なんだってー!

上記の続報。
・t2yに聞いたところ、同意が得られないというか、返事がなかったそうです。
・別口で、日本の某編集者さんがPACKTの編集者さんと話をしていて、微妙に前進中。

現在翻訳中!

Posted by しみずかわ at Jan 23, 2010 11:37 AM

現在、「エキスパートPythonプログラミン(仮)」として出版に向けて数名で翻訳中です!

Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)

« March 2010 »
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
About this blog
Zope, Python, FreeBSD, その他色々について。つまり日記か。
Recent comments
現在翻訳中! しみずかわ Jan 23, 2010
パッチ使わせていただきます 檜山正幸 Dec 21, 2009
いまきづいた jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 とか★ちん Dec 19, 2009
Error
There was an error while rendering the portlet.