:date: 2015-02-18 13:50:00 :tags: book, Python, beproud, work ============================================================================== 「Pythonプロフェッショナルプログラミング第2版」が2/27発売 #pypro2 ============================================================================== Pythonプロフェッショナルプログラミング、第2版を書きました。 さきほど印刷所に最終版を提出した、ということで、ちょと紹介します。 .. figure:: pypro2-20150205.png :width: 400 書影: Pythonプロフェッショナルプログラミング第2版 * 金額: 2,800円 * ページ: 472ページ * 発売日: 2/27(金) * 出版社: `秀和システム `__ * ISBN: 479804315X, 978-4798043159 * Amazon: .. raw:: html 前回の第1版は3年前: :doc:`../2012-03-27-python-professional-programming/index` 。 コンセプトは変わらず、 **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で開発しよう --------------------- * 1. Pythonをはじめよう * 2. Webアプリケーションを作る * 3. Pythonプロジェクトの構成とパッケージ作成 チーム開発のサイクル ----------------------- * 4. チーム開発のためのツール * 5. 課題管理とレビュー * 6. Mercurialによるソースコード管理 * 7. ドキュメントの基盤を整える * 8. モジュール分割設計と単体テスト * 9. Pythonパッケージングと運用への活用 * 10. Jenkinsで継続的インテグレーション サービス公開 --------------- * 11. 環境構築とデプロイの自動化 * 12. アプリケーションのパフォーマンス改善 開発を加速させるテクニック ---------------------------- * 13. テストを味方にする * 14. Djangoを便利に使う * 15. 便利な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をはやくリリースしないと・・) .. note:: 訂正: 発売日を 2/28(金) としていましたが、2/27(金)でした。 .. _#pypro2: https://twitter.com/hashtag/pypro2?f=realtime&src=hash