「Pythonプロフェッショナルプログラミング第2版」が2/27発売 #pypro2¶
Pythonプロフェッショナルプログラミング、第2版を書きました。 さきほど印刷所に最終版を提出した、ということで、ちょと紹介します。
 
書影: Pythonプロフェッショナルプログラミング第2版¶
- 金額: 2,800円 
- ページ: 472ページ 
- 発売日: 2/27(金) 
- 出版社: 秀和システム 
- ISBN: 479804315X, 978-4798043159 
- Amazon: 
前回の第1版は3年前: 会社で執筆した「Pythonプロフェッショナルプログラミング」が3/27発売 。
コンセプトは変わらず、 BPStyle 。「Pythonで仕事をしていく上でのBPのノウハウ」を集めた本です。みなさんの仕事での参考になれば幸いです。
第2版での見所と章構成を紹介します。
みどころ¶
3つの章を新しく書き下ろしました。
- 3章. Pythonプロジェクトの構成とパッケージ作成 - Pythonでの開発に必須なツール、pipとvirtualenvを紹介。 2章で作成したWebアプリケーションを題材に、Pythonの開発を始めるときのディレクトリ構成、 setup.pyの用意、リポジトリの登録、PyPIへの公開、といった流れを扱っています。 
- 9章. Pythonパッケージングと運用への活用 - Pythonパッケージングを活用して、デプロイやCIに適用する、といった内容です。 3章の応用編です。 
- 11章. 環境構築とデプロイの自動化 - Deployの話は第1版でもありましたが、内容がFabricからAnsibleに変わりました。 といっても、Ansibleの詳しい内容は別のAnsible本等にまかせて、サーバー構築時の 考え方と、それをAnsibleでどうやって扱っていくのかというところにフォーカスしています。 
全体的に現在のバージョン、一般的な作法に合わせて書き直しました。また、BPの社内標準の現状にあわせて更新しています。
- Ubuntu 14.04, Python 2.7.6 をベースに更新しました 
- distributeとsetuptoolsは紹介から消してpipだけにしました 
- エディタの比較紹介を追加しました: Vim, Emacs, PyCharm 
- HTMLが出てくるところはHTML5で書き直しました 
- Tracの説明はなくなってRedmineだけになりました 
- Skypeの説明はなくなってSlackになりました 
- チケットテンプレートで運用している話を追記しました 
- testfixturesの紹介を追加し、noseからpytestに変更しました 
- Sphinxは1.3に更新しました 
- Djangoは1.7を扱っていて、southからDjango migrationに書き直されました 
- chardet, feedparserの紹介を削除し、requestsの紹介を追加しました 
もう内容が古いなんて言わせない!(distributeとかdistributeとか)
章構成¶
Pythonで開発しよう¶
- Pythonをはじめよう 
 
- Webアプリケーションを作る 
 
- Pythonプロジェクトの構成とパッケージ作成 
 
チーム開発のサイクル¶
- チーム開発のためのツール 
 
- 課題管理とレビュー 
 
- Mercurialによるソースコード管理 
 
- ドキュメントの基盤を整える 
 
- モジュール分割設計と単体テスト 
 
- Pythonパッケージングと運用への活用 
 
- Jenkinsで継続的インテグレーション 
 
サービス公開¶
- 環境構築とデプロイの自動化 
 
- アプリケーションのパフォーマンス改善 
 
開発を加速させるテクニック¶
- テストを味方にする 
 
- Djangoを便利に使う 
 
- 便利なPythonモジュールを使おう 
 
Appendix¶
- Appendix A: VirtualBoxのセットアップ 
- Appendix B: OS(Ubuntu)のセットアップ 
お礼¶
今回、知っている範囲で以下のメンバーにて制作しました。
- 11人の執筆者 
- 12名の社外レビューアー 
- 7名の社内レビューアー 
- 編集さんと組版担当者さん 
総勢32名!みなさん、ありがとうございました。お疲れ様でした!
システム¶
32名を支えたシステム構成について、機会があればどこかでまとめたいと思います。
- Slack: 会話や連絡は全てSlackでした。今回メールゼロ。書籍体裁のPDF渡しもSlackで。 
- Redmine: Wikiと文面のDiffビューワーとして使いました 
- Mercurial: Sphinxの原稿を管理しました 
- Sphinx: 原稿はSphinxで書いて、拙作Shuwa builderで提出用に変換しました 
- Sphinx term validator: 用語を登録しておくとビルド時に用語揺れを検出します 
- Google Spreadsheet: レビュー指摘はspreadsheetでやりました 
- Google App Script: レビュー追加されたときや、レビュー対処状況(12/99とか)をSlackに通知してました 
- Jenkins: Sphinxの原稿をpushしたときにPDF,HTML,Shuwa出力を自動ビルド、いつでも最新を閲覧 
- Dropbox: 書籍体裁になる前に、HTML出力をレビューしてもらうために使いました 
まとめ¶
ハッシュタグは #pypro2 ですね。
(Sphinx-1.3をはやくリリースしないと・・)
注釈
訂正: 発売日を 2/28(金) としていましたが、2/27(金)でした。
