「Pythonプロフェッショナルプログラミング第2版」が2/27発売 #pypro2¶
Pythonプロフェッショナルプログラミング、第2版を書きました。 さきほど印刷所に最終版を提出した、ということで、ちょと紹介します。
前回の第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(金)でした。