Successfully reported this slideshow.
Your SlideShare is downloading. ×

PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93

Ad

株式会社
清水川貴之
BPStudy #93

Ad

おまえ誰よ
@shimizukawa
 BePROUD co, ltd.
 Sphinx 共同メンテナ
 Sphinx-users.jp 運営
 一般社団法人 PyCon JP 理事
2/26

Ad

http://pycon.jp/
3/26

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
なぜ今OSGiか
なぜ今OSGiか
Loading in …3
×

Check these out next

1 of 26 Ad
1 of 26 Ad

PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93

Download to read offline

Pythonプロフェッショナルプログラミング第2版が2月末に発売されました。

第1版は、ビープラウドに新しく参加するメンバーにPython開発について共有する目的で書きました。

これは第2版でも変わりません。しかし、第1版の出版から3年がたち、Pythonでの開発にもさまざまな変化がありました。

第1版から第2版までの間に、どのような変化があったのか。なぜ今回の改訂が必要だったのか。 PyPro2の読みどころ紹介を通して、Pythonの新しいツールの登場、外部環境の変化、トレンドの変化などの観点で紹介します。

Pythonプロフェッショナルプログラミング第2版が2月末に発売されました。

第1版は、ビープラウドに新しく参加するメンバーにPython開発について共有する目的で書きました。

これは第2版でも変わりません。しかし、第1版の出版から3年がたち、Pythonでの開発にもさまざまな変化がありました。

第1版から第2版までの間に、どのような変化があったのか。なぜ今回の改訂が必要だったのか。 PyPro2の読みどころ紹介を通して、Pythonの新しいツールの登場、外部環境の変化、トレンドの変化などの観点で紹介します。

More Related Content

Slideshows for you (19)

More from Takayuki Shimizukawa (20)

PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93

  1. 1. 株式会社 清水川貴之 BPStudy #93
  2. 2. おまえ誰よ @shimizukawa  BePROUD co, ltd.  Sphinx 共同メンテナ  Sphinx-users.jp 運営  一般社団法人 PyCon JP 理事 2/26
  3. 3. http://pycon.jp/ 3/26
  4. 4. チケット販売(早期割り引き): 210枚まで スピーカー応募(CfP): 7月15日まで 4/26 http://pycon.jp/
  5. 5. アジェンダ  なぜPythonプロフェッショナルプログラミング の第2版を書いたのか  PyPro1以降の開発環境の変化  PyPro2の読みどころ  Python2とPython3 どっちを使うべきか  Pythonの今後はどうなる? 5/26
  6. 6. 6/26
  7. 7. 全ての始まり  Pythonの環境でどう開発し ていくかについて書かれた 本  英語版が2008年刊行  日本語版が2010年刊行  2011年頃には「環境」につい て扱っている部分の内容が 古くなりつつあった  Trac, Buildbot, buildout, … エキスパートPythonプログラミング 2010, アスキー・メディアワークス刊 7/26
  8. 8. 第1版 2012年刊行  新入社員に読んでもらいた い本として社内のノウハウ を集めた本  社内で聞かれたら、それ PyProに書いてあるヨ、と言 える  Pythonそのものより、 Pythonで開発するために必 要なノウハウ(環境系)が 多い  生まれた瞬間から情報が古く なっていく運命 Pythonプロフェッショナルプログラミング 2012, 秀和システム刊 8/26
  9. 9. 第2版 2015年刊行  2014年頃にはPyPro1に ついて、「その部分はもう 古いので・・」という説明 をする事が社内で多くなっ ていた  書き直すときのテーマ  新しい内容への更新  変わりにくい情報への置き換 え  理想よりも実際にやっている ことを書く Pythonプロフェッショナルプログラミング 第2版 2015, 秀和システム刊 9/26
  10. 10. 電子書籍版、出ました(2015/5/22) 電子書籍版は以下の電子書籍ストアで購入できます。  Amazon.co.jp (Kindle)  楽天ブックス (kobo)  BookLive! (BookLive!Reader)  honto電子書籍ストア (EPUB)  BOOK☆WALKER (BOOK☆WALKERアプリ)  紀伊國屋書店 (Kinoppy)  セブンネットショッピング (EPUB3.0) 10/26
  11. 11. 11/26
  12. 12. PyPro1以降の開発環境の変化  pipがだいぶ良いツールになってきた(py279同梱)  setuptoolsを意識する世界は終わりつつある  wheelが登場、eggは徐々にフェードアウト  Djangoが標準でmigrateを装備、southは終了へ  SkypeがSlackに置き換わった  チケットテンプレートを活用 本書で扱っています! 12/26
  13. 13. 13/26
  14. 14. 3章. Pythonプロジェクトの構成とパッケージ作成  03-01 Pythonプロジェクト  03-02 環境とツール (pip, virtualenv)  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にアップロードして公開する 14/26
  15. 15. 9章. 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 でライブラリのバージョンを指定する 15/26
  16. 16. 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実行環境の整備 16/26
  17. 17. その他更新多数 全体的に現在のバージョン、一般的な作法に合わせて書き直しました。 また、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の紹介を追加しました 17/26
  18. 18. 18/26
  19. 19. Python2とPython3 どっちを使うべきか  仕事において既存のコードがあるならそのバージョ ンで。  新しく始めるなら3.xで。  2020年にはPy2は終了  これから開発したコードが何年使われるかから考え よう  Py3対応していないコードは少なくなりつつある  それでもPy3対応してないコードは自力で修正しよう  だいぶ少なくなってきている  いまPy3対応してないコードはそもそもメンテナンス されていない可能性がたかい -> 安心して使えないか も? 19/26
  20. 20. 20/26
  21. 21. Pythonの今後はどうなる?  みなさん、どうなると思いますか? 21/26
  22. 22. 22/26
  23. 23. 今回の執筆関係者 以下のメンバーにて制作しました。  11人の執筆者  12名の社外レビューアー  7名の社内レビューアー  編集さんと組版担当者さん 総勢32名! 23/26
  24. 24. 32名を支えたPyPro2執筆システム構成 Sphinx原稿 SCM (Mercurial) reST make html 執筆 確認 レビュー Spreadsheetでレビュー指摘 通知 make shuwa 校正 差分をもらう予定 通知 24/26
  25. 25. 25/26
  26. 26. 26/26

Editor's Notes

  • Hello everybody. Let me introduce myself.
    My name is Takayuki Shimizukawa.

    I work for the company BePROUD that develop web applications for business customers.
    My company is engaged in developing by using the following programs usually, and those are: Python, Django, Pyramid.

    I’m a Sphinx co-maintainer since the end of 2011.
    My job is to organize Sphinx-users.jp users group in Japan.
    I’m a member of PyCon JP Committee.
  • ここで宣伝です。
    Pythonのカンファレンス、PyCon JP 2015の紹介です。
    今年の日本での開催は、10月です。
    現在、スピーカー募集(CfP)を 6月15日まで行っています。また、スポンサーさんも募集中です。
    私もさっそくSphinxの発表を申し込みました。
  • Early bird ticket is on sale until June 15th (**date should updated**)
    And call for proposals for session speaker is also opened until July 15th.
    Please join us and/or please apply for your proposal.
  • Pythonプロフェッショナルプログラミング第2版が2月末に発売されました。初版から第2版までの間に、Pythonでの開発にはどういう変化があったのか。なぜ今回の改訂が必要だったのか。PyPro2の読みどころ紹介を通して、Pythonの新しいツールの登場、外部環境の変化、開発手法のトレンドの変化などの観点を含めて紹介します。
  • Pythonでの開発に必須なツール、pipとvirtualenvを紹介。
    2章で作成したWebアプリケーションを題材に、Pythonの開発を始めるときのディレクトリ構成、 setup.pyの用意、リポジトリの登録、PyPIへの公開、といった流れを扱っています。
  • Pythonパッケージングを活用して、デプロイやCIに適用する、といった内容です。 3章の応用編です。

    全てインターネットに転がってる情報ですが、目的にフォーカスして使い方を組み立てるのはまた別の技能が要ります。
    こういう基本的な部分については、社内で、みんなでグーグル検索で調べるようなことは出来るだけ少なくしたい。
    この本を執筆したことによって、こういうやりかたが社内の標準だよ、と言えるようになったし、本を見てもらえば分かる状況になりました。

  • Deployの話は第1版でもありましたが、内容がFabricからAnsibleに変わりました。
    といっても、Ansibleの詳しい内容は別のAnsible本等にまかせて、サーバー構築時の 考え方と、それをAnsibleでどうやって扱っていくのかというところにフォーカスしています。

    前半は、そもそもサーバー構築をどう考えるか、という設計時の考え方を提示しています。
    後半は、それをAnsibleで扱う場合には、Ansibleの機能とどう対応付けていくのかを説明しています。
  • 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出力をレビューしてもらうために使いました

×