Pythonプロフェッショナルプログラミング 第2版 (単行本)
- フォーマット:
- 単行本 電子書籍
著者 | 株式会社ビープラウド 著 |
---|---|
ジャンル | IT系書籍 > プログラミング言語 |
書店発売日 | 2015/02/27 |
ISBN | 9784798043159 |
判型・ページ数 | B5変・472ページ |
定価 | 3080円 (本体2800円+税10%) |
在庫 | 品切れ・重版未定 |
その他 | 10xEngで読むことができます |
Pythonの実践的ノウハウを知りたいが周囲に聞ける人がいない。チームで開発する方法も知りたい。そんなプログラマーの皆さま、ご安心ください。本書は、Pythonをメインに手がけるビープラウドが社内で蓄積したWeb開発の最新手法を惜しみなく公開します。作業環境の構築から、Webアプリケーションの作り方、課題管理、レビュー、テスト、デプロイの効率化、サーバーのチューニングなどPython開発のプロセスとノウハウが身につきます。
【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4315.html
【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4315.html
Part1 Pythonで開発しよう
Chapter 01 Pythonをはじめよう
01-01 Pythonのセットアップ
01-01-01 debパッケージのインストール
01-01-02 サードパーティ製パッケージのインストール
01-01-03 virtualenvの使い方
01-01-04 複数バージョンのPythonの使用
01-02 Mercurialのセットアップ
01-02-01 Mercurialの概要
01-02-02 Mercurialのインストール
01-02-03 リポジトリの作成
01-02-04 ファイルの操作
01-03 エディタと開発に便利なツール
01-03-01 エディタ
01-03-02 開発に便利なツール
01-04 まとめ
Chapter 02 Webアプリケーションを作る
02-01 Webアプリケーションを知る
02-01-01 Webアプリケーションとはどういうものか
02-01-02 Webアプリケーションとデスクトップアプリケーションの違い
02-01-03 Webアプリケーションの仕組み
02-02 事前準備
02-02-01 Flaskについて
02-02-02 Flaskのインストール
02-03 Webアプリケーション開発の流れ
02-04 作るものを明らかにしよう
02-04-01 ゲストブックアプリケーションの要件
02-04-02 必要な機能を明らかにする
02-04-03 必要な画面を明らかにする
02-05 画面を作る
02-05-01 作成する画面をイメージする
02-05-02 HTMLとCSSを作成する
02-06 機能を作る
02-06-01 コメントデータを保存する
02-06-02 保存しておいたコメントの一覧を取得する
02-06-03 テンプレートエンジンを使って画面表示を行う
02-06-04 投稿先のURLを用意する
02-06-05 テンプレートの出力を調整する
02-07 動作確認
02-08 まとめ
Chapter 03 Pythonプロジェクトの構成とパッケージ作成
03-01 Pythonプロジェクト
03-02 環境とツール
03-02-01 virtualenvで独立した環境を作る
03-02-02 pipでパッケージをインストールする
03-02-03 まとめ
03-03 ファイル構成とパッケージリリース
03-03-01 setup.pyを書く
03-03-02 ゲストブックのプロジェクト構成
03-03-03 setup.pyとMANIFEST.in: パッケージ情報と同梱するファイルの設定
03-03-04 setup.py: 実行コマンドの作成
03-03-05 python setup.py sdist: ソース配布パッケージを作る
03-03-06 リポジトリにコミットする
03-03-07 README.rst: 開発環境セットアップ手順
03-03-08 依存パッケージを変更する
03-03-09 requirements.txtで開発バージョンを固定する
03-03-10 python setup.py bdist_wheel:wheel配布パッケージを作る
03-03-11 PyPIにアップロードして公開する
03-03-12 まとめ
03-04 まとめ
Part2 チーム開発のサイクル
Chapter 04 チーム開発のためのツール
04-01 課題管理システム
04-01-01 Redmine
04-01-02 Redmineのインストール
04-01-03 Redmineの設定
04-01-04 プラグイン
04-02 バージョン管理システム
04-02-01 MercurialとRedmineの連携
04-02-02 リポジトリ作成プラグイン
04-03 チャットシステム
04-03-01 Slack
04-03-02 Slackの特徴
04-03-03 Slackではできないこと
04-03-04 Slackの登録
04-04 チーム開発に有用なツール
04-04-01 Dropbox
04-04-02 Google Drive
04-05 まとめ
Chapter 05 課題管理とレビュー
05-01 課題管理とチケットの使い分け
05-01-01 課題管理を始める前に
05-01-02 チケットを作成しよう
05-01-03 チケットを整理しよう
05-01-04 チケットを分割しよう
05-02 チケットテンプレート
05-02-01 プラグインのインストール
05-02-02 チケットテンプレートの使い方
05-02-03 グローバルチケットテンプレート
05-02-04 チケットテンプレートの例
05-03 チケット駆動開発
05-03-01 コーディング開始……でもその前にチケットを起票しよう
05-03-02 チケットの番号と同じ名前のブランチを作ろう
05-03-03 リリースとブランチを対応させよう
05-03-04 ブランチのマージ
05-04 レビュー
05-04-01 なぜレビューをするのか
05-04-02 レビュー依頼: コードレビュー編
05-04-03 レビュー依頼: 作業レビュー編
05-04-04 レビュー実施: コードレビュー編
05-04-05 レビュー実施: 作業レビュー編
05-05 まとめ
Chapter 06 Mercurialによるソースコード管理
06-01 Mercurialリポジトリの管理と設定
06-01-01 サーバー上のUNIXユーザーのグループ設定
06-01-02 リポジトリの作成
06-01-03 hgrcの設定
06-01-04 設定したリポジトリを使う
06-01-05 hgwebを使った簡易中央リポジトリ
06-02 フックを活用しよう
06-02-01 フックの指定方法
06-02-02 フックスクリプトを使ってみる
06-02-03 フックイベント
06-02-04 フックの実行タイミング
06-02-05 フックスクリプトを作る
06-03 ブランチの操作
06-04 マージについて
06-04-01 コンフリクトが発生しない場合のマージ
06-04-02 マージの際のコンフリクト発生とテキストエディタでの解消方法
06-04-03 マージのパターンとコンフリクト
06-04-04 GUIのマージツールでのマージ方法
06-05 GUIクライアント
06-05-01 GUIクライアントの紹介
06-05-02 GUIクライアントの利点
06-05-03 GUIクライアントの欠点
06-06 現実的な運用を考える BeProud Mercurial Workflow
06-06-01 概要
06-06-02 背景
06-06-03 リポジトリの構成
06-06-04 ソースコードをコミットする
06-06-05 デザインをコミットする
06-06-06 ブランチのマージ
06-06-07 集約ブランチ
06-07 まとめ
Chapter 07 ドキュメントの基盤を整える
07-01 プロジェクトのドキュメントを書こう
07-01-01 ドキュメントを作成する上で、何をしたくないのか
07-01-02 どのような状態ならドキュメントを書きたいのか
07-02 Sphinxの基本とインストール
07-02-01 Sphinxのインストール
07-02-02 reStructuredText入門
07-02-03 Sphinxによる構造化ドキュメント作成の流れ
07-02-04 Sphinx拡張
07-03 Sphinxの導入で解決する課題と新しい課題
07-03-01 プレーンテキストなので、ドキュメントを普段利用しているエディタで書ける
07-03-02 情報と表示を分離し、装飾などの見た目にとらわれずに文面に集中して書ける
07-03-03 提出用PDF出力など、一つのソースから複数のフォーマットに出力できる
07-03-04 構造化により、ドキュメントを複数のファイルに分割して書ける
07-03-05 Mercurialなどで簡単にバージョン管理できる
07-03-06 APIリファレンスとプログラムを一体管理する仕組み(docstring、doctest、autodoc)
07-03-07 Webブラウザを利用して共有する
07-03-08 Sphinxの導入に伴う課題
07-04 ドキュメントポートフォリオの作成と利用
07-04-01 ドキュメントポートフォリオとは?
07-04-02 プロジェクトで必要となるドキュメントの一覧
07-04-03 リーダー、マネージャー向け
07-04-04 設計者向け
07-04-05 開発者向け
07-04-06 顧客向け
07-05 まとめ
Chapter 08 モジュール分割設計と単体テスト
08-01 モジュール分割設計
08-01-01 機能設計
08-01-02 Webアプリケーションを構成するコンポーネント
08-01-03 コンポーネント設計
08-01-04 モジュールとパッケージ
08-02 テスト
08-02-01 テストの種類
08-02-02 ユニットテストを書く
08-02-03 ユニットテストから環境依存を排除する
08-02-04 WebTestを使った機能テスト
08-03 テストから設計を改善する
08-03-01 テストしやすい設計
08-04 テスト実行の自動化に向けて
08-04-01 toxでテスト実行環境を自動作成する
08-04-02 繰り返し可能なテスト環境
08-05 まとめ
Chapter 09 Pythonパッケージングと運用への活用
09-01 パッケージを使う
09-01-01 パッケージのバージョン指定
09-01-02 PyPI以外のサーバーからのインストール
09-01-03 パッケージの配布形式
09-01-04 wheelhouseの作り方
09-01-05 wheelhouseからインストール
09-02 パッケージを活用する
09-02-01 プライベートリリース
09-02-02 requirements.txtを活用する
09-02-03 requirements.txt の階層化
09-02-04 デプロイや CI + tox のためのrequirements
09-02-05 requirements.txt でライブラリのバージョンを指定する
09-03 まとめ
Chapter 10 Jenkinsで継続的インテグレーション
10-01 継続的インテグレーション(CI)とは
10-01-01 継続的インテグレーション(CI)について
10-01-02 Jenkinsについて
10-02 Jenkinsのインストール
10-02-01 Jenkins本体のインストール
10-02-02 本章で利用するJenkinsプラグイン
10-03 テストコードを実行する
10-03-01 簡単なテストコードを使った例
10-03-02 ジョブを登録する
10-03-03 ジョブの成功・失敗
10-04 テストの結果をレポートに出力する
10-04-01 pytestをインストールする
10-04-02 pytestコマンドを呼ぶ
10-04-03 Jenkinsの設定をpytest用に変える
10-05 カバレッジレポートを表示する
10-05-01 pytest-covのインストール
10-05-02 pytestからカバレッジを取得する
10-05-03 カバレッジレポートを取り込む
10-06 Djangoのテストを実行する
10-06-01 Pythonモジュールのインストール
10-06-02 Djangoのセットアップ
10-06-03 サンプルコード
10-06-04 Jenkinsのセットアップ
10-06-05 「ビルド後の処理」セクションの設定
10-07 ドキュメントのビルドをJenkinsから実行する
10-07-01 Sphinxのインストール
10-07-02 Jenkinsジョブの登録内容
10-07-03 Sphinxのビルドで警告が出たらジョブを失敗させる
10-07-04 成果物の参照
10-07-05 Task Scanner PluginでTODO管理
10-07-06 Task Scanner Pluginの設定例
10-08 Jenkinsをさらに活用する
10-08-01 便利な機能
10-08-02 さらに改善する
10-09 まとめ
Part3 サービス公開
Chapter 11 環境構築とデプロイの自動化
11-01 環境構築内容の検討
11-01-01 ネットワーク構成
11-01-02 サーバー構築内容の構造化
11-01-03 ユーザーの設定
11-01-04 パッケージの選定
11-01-05 ミドルウェアの設定
11-01-06 デプロイ
11-02 Ansibleで作業を自動化する
11-02-01 Ansibleとは
11-02-02 ファイル構成
11-02-03 Ansibleの実行
11-02-04 最初に検討した構成との対応づけ
11-02-05 各手順をAnsible化する
11-02-06 Ansible実行環境の整備
11-03 まとめ
Chapter 12 アプリケーションのパフォーマンス改善
12-01 Webアプリケーションのパフォーマンス
12-01-01 Webアプリケーションに大量のリクエストが集中するとどうなるか
12-01-02 高負荷への対策
12-02 ゲストブックアプリのパフォーマンスを測定する
12-02-01 アプリケーションのパフォーマンスとは
12-02-02 ApacheBenchのインストール
12-02-03 ApacheBenchを使ったパフォーマンス測定
12-03 gunicornについて
12-03-01 gunicornのインストール
12-03-02 gunicornでアプリケーションを動作させる
12-04 nginxについて
12-04-01 nginxのインストール
12-04-02 nginxのパフォーマンスを調べる
12-05 nginxとgunicornでアプリケーションを動作させる
12-05-01 gunicornの設定
12-05-02 nginxの設定
12-05-03 nginx+gunicornのパフォーマンスを測定する
12-05-04 パフォーマンスを比較する
12-06 まとめ
Part4 開発を加速させるテクニック
Chapter 13 テストを味方にする
13-01 現状認識:テストを取り巻く環境
13-02 開発の各プロセスへのテスト導入
13-02-01 ドキュメントのテスト(レビュー)
13-02-02 テスト設計の作り方(インプットとアウトプット)
13-02-03 テスト実施とテストフェーズの回し方(何をどこまでやるのか)
13-03 まとめ:テストは怖くない
Chapter 14 Djangoを便利に使う
14-01 Djangoとは
14-01-01 Djangoのインストール
14-01-02 Djangoのアーキテクチャ
14-01-03 Djangoのドキュメント
14-02 データベースのマイグレーション
14-02-01 データベースのマイグレーションとは
14-02-02 Djangoのマイグレーション機能
14-03 fixture replacement
14-03-01 テストのフィクスチャとは
14-03-02 デフォルトのフィクスチャで不便なケース
14-03-03 factory_boyの利用
14-03-04 「デフォルトのフィクスチャで不便なケース」の解消
14-04 Django Debug Toolbar
14-04-01 Django Debug Toolbarとは
14-05 まとめ
Chapter 15 便利なPythonモジュールを使おう
15-01 日時の計算を簡単に(dateutil)
15-01-01 日時計算の複雑さ
15-01-02 dateutilの導入
15-02 モデルのマッピングを簡単に(bpmappers)
15-02-01 モデルのマッピングが必要である理由
15-02-02 マッピングルールの構造化と再利用
15-02-03 bpmappersの導入
15-02-04 Djangoとの連携
15-02-05 JSON APIを作ってみよう
15-03 画像処理(Pillow)
15-03-01 Pillowのインストール
15-03-02 画像フォーマットを変換する
15-03-03 画像をリサイズする
15-03-04 画像の一部を切り抜く
15-03-05 画像にフィルタ処理を行う
15-04 データを暗号化する(PyCrypto)
15-04-01 PyCryptoのインストール
15-04-02 共通鍵方式(AES)による暗号化と復号
15-04-03 公開鍵方式(RSA)による暗号化と復号
15-05 TwitterのAPIを使う(tweepy)
15-05-01 tweepyの導入
15-05-02 アプリケーションの登録とコンシューマキーの取得
15-05-03 アクセストークンの取得
15-05-04 TwitterAPIの呼び出し
15-05-05 Twitterで認証を行うシステムを作る
15-06 REST APIを使う(Requests)
15-06-01 RESTとは
15-06-02 Requestsの導入
15-06-03 テスト用サーバーの導入
15-06-04 GETリクエストの送信
15-06-05 POSTリクエストの送信
15-06-06 JSON形式でPOSTリクエストを送信する
15-06-07 GET/POST以外のHTTPメソッドの使用
15-07 まとめ
Appendix A VirtualBoxのセットアップ
A-01 VirtualBoxのインストール
A-02 新規仮想マシンの作成
A-03 仮想マシンのバックアップ
Appendix B OS(Ubuntu)のセットアップ
B-01 Ubuntuのインストール
B-02 SSHの設定
B-03 日本語設定
B-04 ユーザーの追加
Chapter 01 Pythonをはじめよう
01-01 Pythonのセットアップ
01-01-01 debパッケージのインストール
01-01-02 サードパーティ製パッケージのインストール
01-01-03 virtualenvの使い方
01-01-04 複数バージョンのPythonの使用
01-02 Mercurialのセットアップ
01-02-01 Mercurialの概要
01-02-02 Mercurialのインストール
01-02-03 リポジトリの作成
01-02-04 ファイルの操作
01-03 エディタと開発に便利なツール
01-03-01 エディタ
01-03-02 開発に便利なツール
01-04 まとめ
Chapter 02 Webアプリケーションを作る
02-01 Webアプリケーションを知る
02-01-01 Webアプリケーションとはどういうものか
02-01-02 Webアプリケーションとデスクトップアプリケーションの違い
02-01-03 Webアプリケーションの仕組み
02-02 事前準備
02-02-01 Flaskについて
02-02-02 Flaskのインストール
02-03 Webアプリケーション開発の流れ
02-04 作るものを明らかにしよう
02-04-01 ゲストブックアプリケーションの要件
02-04-02 必要な機能を明らかにする
02-04-03 必要な画面を明らかにする
02-05 画面を作る
02-05-01 作成する画面をイメージする
02-05-02 HTMLとCSSを作成する
02-06 機能を作る
02-06-01 コメントデータを保存する
02-06-02 保存しておいたコメントの一覧を取得する
02-06-03 テンプレートエンジンを使って画面表示を行う
02-06-04 投稿先のURLを用意する
02-06-05 テンプレートの出力を調整する
02-07 動作確認
02-08 まとめ
Chapter 03 Pythonプロジェクトの構成とパッケージ作成
03-01 Pythonプロジェクト
03-02 環境とツール
03-02-01 virtualenvで独立した環境を作る
03-02-02 pipでパッケージをインストールする
03-02-03 まとめ
03-03 ファイル構成とパッケージリリース
03-03-01 setup.pyを書く
03-03-02 ゲストブックのプロジェクト構成
03-03-03 setup.pyとMANIFEST.in: パッケージ情報と同梱するファイルの設定
03-03-04 setup.py: 実行コマンドの作成
03-03-05 python setup.py sdist: ソース配布パッケージを作る
03-03-06 リポジトリにコミットする
03-03-07 README.rst: 開発環境セットアップ手順
03-03-08 依存パッケージを変更する
03-03-09 requirements.txtで開発バージョンを固定する
03-03-10 python setup.py bdist_wheel:wheel配布パッケージを作る
03-03-11 PyPIにアップロードして公開する
03-03-12 まとめ
03-04 まとめ
Part2 チーム開発のサイクル
Chapter 04 チーム開発のためのツール
04-01 課題管理システム
04-01-01 Redmine
04-01-02 Redmineのインストール
04-01-03 Redmineの設定
04-01-04 プラグイン
04-02 バージョン管理システム
04-02-01 MercurialとRedmineの連携
04-02-02 リポジトリ作成プラグイン
04-03 チャットシステム
04-03-01 Slack
04-03-02 Slackの特徴
04-03-03 Slackではできないこと
04-03-04 Slackの登録
04-04 チーム開発に有用なツール
04-04-01 Dropbox
04-04-02 Google Drive
04-05 まとめ
Chapter 05 課題管理とレビュー
05-01 課題管理とチケットの使い分け
05-01-01 課題管理を始める前に
05-01-02 チケットを作成しよう
05-01-03 チケットを整理しよう
05-01-04 チケットを分割しよう
05-02 チケットテンプレート
05-02-01 プラグインのインストール
05-02-02 チケットテンプレートの使い方
05-02-03 グローバルチケットテンプレート
05-02-04 チケットテンプレートの例
05-03 チケット駆動開発
05-03-01 コーディング開始……でもその前にチケットを起票しよう
05-03-02 チケットの番号と同じ名前のブランチを作ろう
05-03-03 リリースとブランチを対応させよう
05-03-04 ブランチのマージ
05-04 レビュー
05-04-01 なぜレビューをするのか
05-04-02 レビュー依頼: コードレビュー編
05-04-03 レビュー依頼: 作業レビュー編
05-04-04 レビュー実施: コードレビュー編
05-04-05 レビュー実施: 作業レビュー編
05-05 まとめ
Chapter 06 Mercurialによるソースコード管理
06-01 Mercurialリポジトリの管理と設定
06-01-01 サーバー上のUNIXユーザーのグループ設定
06-01-02 リポジトリの作成
06-01-03 hgrcの設定
06-01-04 設定したリポジトリを使う
06-01-05 hgwebを使った簡易中央リポジトリ
06-02 フックを活用しよう
06-02-01 フックの指定方法
06-02-02 フックスクリプトを使ってみる
06-02-03 フックイベント
06-02-04 フックの実行タイミング
06-02-05 フックスクリプトを作る
06-03 ブランチの操作
06-04 マージについて
06-04-01 コンフリクトが発生しない場合のマージ
06-04-02 マージの際のコンフリクト発生とテキストエディタでの解消方法
06-04-03 マージのパターンとコンフリクト
06-04-04 GUIのマージツールでのマージ方法
06-05 GUIクライアント
06-05-01 GUIクライアントの紹介
06-05-02 GUIクライアントの利点
06-05-03 GUIクライアントの欠点
06-06 現実的な運用を考える BeProud Mercurial Workflow
06-06-01 概要
06-06-02 背景
06-06-03 リポジトリの構成
06-06-04 ソースコードをコミットする
06-06-05 デザインをコミットする
06-06-06 ブランチのマージ
06-06-07 集約ブランチ
06-07 まとめ
Chapter 07 ドキュメントの基盤を整える
07-01 プロジェクトのドキュメントを書こう
07-01-01 ドキュメントを作成する上で、何をしたくないのか
07-01-02 どのような状態ならドキュメントを書きたいのか
07-02 Sphinxの基本とインストール
07-02-01 Sphinxのインストール
07-02-02 reStructuredText入門
07-02-03 Sphinxによる構造化ドキュメント作成の流れ
07-02-04 Sphinx拡張
07-03 Sphinxの導入で解決する課題と新しい課題
07-03-01 プレーンテキストなので、ドキュメントを普段利用しているエディタで書ける
07-03-02 情報と表示を分離し、装飾などの見た目にとらわれずに文面に集中して書ける
07-03-03 提出用PDF出力など、一つのソースから複数のフォーマットに出力できる
07-03-04 構造化により、ドキュメントを複数のファイルに分割して書ける
07-03-05 Mercurialなどで簡単にバージョン管理できる
07-03-06 APIリファレンスとプログラムを一体管理する仕組み(docstring、doctest、autodoc)
07-03-07 Webブラウザを利用して共有する
07-03-08 Sphinxの導入に伴う課題
07-04 ドキュメントポートフォリオの作成と利用
07-04-01 ドキュメントポートフォリオとは?
07-04-02 プロジェクトで必要となるドキュメントの一覧
07-04-03 リーダー、マネージャー向け
07-04-04 設計者向け
07-04-05 開発者向け
07-04-06 顧客向け
07-05 まとめ
Chapter 08 モジュール分割設計と単体テスト
08-01 モジュール分割設計
08-01-01 機能設計
08-01-02 Webアプリケーションを構成するコンポーネント
08-01-03 コンポーネント設計
08-01-04 モジュールとパッケージ
08-02 テスト
08-02-01 テストの種類
08-02-02 ユニットテストを書く
08-02-03 ユニットテストから環境依存を排除する
08-02-04 WebTestを使った機能テスト
08-03 テストから設計を改善する
08-03-01 テストしやすい設計
08-04 テスト実行の自動化に向けて
08-04-01 toxでテスト実行環境を自動作成する
08-04-02 繰り返し可能なテスト環境
08-05 まとめ
Chapter 09 Pythonパッケージングと運用への活用
09-01 パッケージを使う
09-01-01 パッケージのバージョン指定
09-01-02 PyPI以外のサーバーからのインストール
09-01-03 パッケージの配布形式
09-01-04 wheelhouseの作り方
09-01-05 wheelhouseからインストール
09-02 パッケージを活用する
09-02-01 プライベートリリース
09-02-02 requirements.txtを活用する
09-02-03 requirements.txt の階層化
09-02-04 デプロイや CI + tox のためのrequirements
09-02-05 requirements.txt でライブラリのバージョンを指定する
09-03 まとめ
Chapter 10 Jenkinsで継続的インテグレーション
10-01 継続的インテグレーション(CI)とは
10-01-01 継続的インテグレーション(CI)について
10-01-02 Jenkinsについて
10-02 Jenkinsのインストール
10-02-01 Jenkins本体のインストール
10-02-02 本章で利用するJenkinsプラグイン
10-03 テストコードを実行する
10-03-01 簡単なテストコードを使った例
10-03-02 ジョブを登録する
10-03-03 ジョブの成功・失敗
10-04 テストの結果をレポートに出力する
10-04-01 pytestをインストールする
10-04-02 pytestコマンドを呼ぶ
10-04-03 Jenkinsの設定をpytest用に変える
10-05 カバレッジレポートを表示する
10-05-01 pytest-covのインストール
10-05-02 pytestからカバレッジを取得する
10-05-03 カバレッジレポートを取り込む
10-06 Djangoのテストを実行する
10-06-01 Pythonモジュールのインストール
10-06-02 Djangoのセットアップ
10-06-03 サンプルコード
10-06-04 Jenkinsのセットアップ
10-06-05 「ビルド後の処理」セクションの設定
10-07 ドキュメントのビルドをJenkinsから実行する
10-07-01 Sphinxのインストール
10-07-02 Jenkinsジョブの登録内容
10-07-03 Sphinxのビルドで警告が出たらジョブを失敗させる
10-07-04 成果物の参照
10-07-05 Task Scanner PluginでTODO管理
10-07-06 Task Scanner Pluginの設定例
10-08 Jenkinsをさらに活用する
10-08-01 便利な機能
10-08-02 さらに改善する
10-09 まとめ
Part3 サービス公開
Chapter 11 環境構築とデプロイの自動化
11-01 環境構築内容の検討
11-01-01 ネットワーク構成
11-01-02 サーバー構築内容の構造化
11-01-03 ユーザーの設定
11-01-04 パッケージの選定
11-01-05 ミドルウェアの設定
11-01-06 デプロイ
11-02 Ansibleで作業を自動化する
11-02-01 Ansibleとは
11-02-02 ファイル構成
11-02-03 Ansibleの実行
11-02-04 最初に検討した構成との対応づけ
11-02-05 各手順をAnsible化する
11-02-06 Ansible実行環境の整備
11-03 まとめ
Chapter 12 アプリケーションのパフォーマンス改善
12-01 Webアプリケーションのパフォーマンス
12-01-01 Webアプリケーションに大量のリクエストが集中するとどうなるか
12-01-02 高負荷への対策
12-02 ゲストブックアプリのパフォーマンスを測定する
12-02-01 アプリケーションのパフォーマンスとは
12-02-02 ApacheBenchのインストール
12-02-03 ApacheBenchを使ったパフォーマンス測定
12-03 gunicornについて
12-03-01 gunicornのインストール
12-03-02 gunicornでアプリケーションを動作させる
12-04 nginxについて
12-04-01 nginxのインストール
12-04-02 nginxのパフォーマンスを調べる
12-05 nginxとgunicornでアプリケーションを動作させる
12-05-01 gunicornの設定
12-05-02 nginxの設定
12-05-03 nginx+gunicornのパフォーマンスを測定する
12-05-04 パフォーマンスを比較する
12-06 まとめ
Part4 開発を加速させるテクニック
Chapter 13 テストを味方にする
13-01 現状認識:テストを取り巻く環境
13-02 開発の各プロセスへのテスト導入
13-02-01 ドキュメントのテスト(レビュー)
13-02-02 テスト設計の作り方(インプットとアウトプット)
13-02-03 テスト実施とテストフェーズの回し方(何をどこまでやるのか)
13-03 まとめ:テストは怖くない
Chapter 14 Djangoを便利に使う
14-01 Djangoとは
14-01-01 Djangoのインストール
14-01-02 Djangoのアーキテクチャ
14-01-03 Djangoのドキュメント
14-02 データベースのマイグレーション
14-02-01 データベースのマイグレーションとは
14-02-02 Djangoのマイグレーション機能
14-03 fixture replacement
14-03-01 テストのフィクスチャとは
14-03-02 デフォルトのフィクスチャで不便なケース
14-03-03 factory_boyの利用
14-03-04 「デフォルトのフィクスチャで不便なケース」の解消
14-04 Django Debug Toolbar
14-04-01 Django Debug Toolbarとは
14-05 まとめ
Chapter 15 便利なPythonモジュールを使おう
15-01 日時の計算を簡単に(dateutil)
15-01-01 日時計算の複雑さ
15-01-02 dateutilの導入
15-02 モデルのマッピングを簡単に(bpmappers)
15-02-01 モデルのマッピングが必要である理由
15-02-02 マッピングルールの構造化と再利用
15-02-03 bpmappersの導入
15-02-04 Djangoとの連携
15-02-05 JSON APIを作ってみよう
15-03 画像処理(Pillow)
15-03-01 Pillowのインストール
15-03-02 画像フォーマットを変換する
15-03-03 画像をリサイズする
15-03-04 画像の一部を切り抜く
15-03-05 画像にフィルタ処理を行う
15-04 データを暗号化する(PyCrypto)
15-04-01 PyCryptoのインストール
15-04-02 共通鍵方式(AES)による暗号化と復号
15-04-03 公開鍵方式(RSA)による暗号化と復号
15-05 TwitterのAPIを使う(tweepy)
15-05-01 tweepyの導入
15-05-02 アプリケーションの登録とコンシューマキーの取得
15-05-03 アクセストークンの取得
15-05-04 TwitterAPIの呼び出し
15-05-05 Twitterで認証を行うシステムを作る
15-06 REST APIを使う(Requests)
15-06-01 RESTとは
15-06-02 Requestsの導入
15-06-03 テスト用サーバーの導入
15-06-04 GETリクエストの送信
15-06-05 POSTリクエストの送信
15-06-06 JSON形式でPOSTリクエストを送信する
15-06-07 GET/POST以外のHTTPメソッドの使用
15-07 まとめ
Appendix A VirtualBoxのセットアップ
A-01 VirtualBoxのインストール
A-02 新規仮想マシンの作成
A-03 仮想マシンのバックアップ
Appendix B OS(Ubuntu)のセットアップ
B-01 Ubuntuのインストール
B-02 SSHの設定
B-03 日本語設定
B-04 ユーザーの追加