26
PyPro2 のののののののの Python のののののののの のののの ののののの BPStudy #93

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

Embed Size (px)

Citation preview

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

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

株式会社

清水川貴之

BPStudy #93

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

おまえ誰よ

@shimizukawa

BePROUD co, ltd.

Sphinx 共同メンテナ

Sphinx-users.jp 運営

一般社団法人 PyCon JP 理事2/26

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

http://pycon.jp/

3/26

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

チケット販売(早期割り引き) : 210 枚まで

スピーカー応募( CfP ) : 7月 15日まで

4/26

http://pycon.jp/

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

アジェンダ

なぜ Python プロフェッショナルプログラミングの第 2 版を書いたのか

PyPro1 以降の開発環境の変化

PyPro2 の読みどころ

Python2 と Python3 どっちを使うべきか

Python の今後はどうなる?

5/26

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

なぜ Pythonプロフェッショナルプログラミングの第 2版を書いたのか

6/26

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

全ての始まり

Python の環境でどう開発していくかについて書かれた本

英語版が2008年刊行日本語版が 2010 年刊行2011 年頃には「環境」につ

いて扱っている部分の内容が古くなりつつあったTrac, Buildbot, buildout, …

エキスパート Python プログラミング2010, アスキー・メディアワークス刊

7/26

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

第 1 版 2012 年刊行

新入社員に読んでもらいたい本として社内のノウハウを集めた本

社内で聞かれたら、それ PyProに書いてあるヨ、と言える

Python そのものより、 Python で開発するために必要なノウハウ(環境系)が多い生まれた瞬間から情報が古くなっ

ていく運命

Python プロフェッショナルプログラミング2012, 秀和システム刊

8/26

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

第 2 版 2015 年刊行

2014年頃には PyPro 1について、「その部分はもう古いので・・」という説明をする事が社内で多くなっていた

書き直すときのテーマ新しい内容への更新変わりにくい情報への置き換え理想よりも実際にやっているこ

とを書く

Python プロフェッショナルプログラミング第 2 版

2015, 秀和システム刊

9/26

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

電子書籍版、出ました (2015/5/22)

電子書籍版は以下の電子書籍ストアで購入できます。

Amazon.co.jp (Kindle)楽天ブックス (kobo) BookLive! (BookLive!Reader)honto 電子書籍ストア (EPUB)BOOK WALKER☆

(BOOK WALKER☆ アプリ )紀伊國屋書店 (Kinoppy)セブンネットショッピング

(EPUB3.0)

10/26

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

PyPro1以降の開発環境の変化

11/26

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

PyPro1 以降の開発環境の変化pip がだいぶ良いツールになってきた (py279 同梱 )setuptools を意識する世界は終わりつつあるwheel が登場、 egg は徐々にフェードアウトDjango が標準で migrate を装備、 south は終了

Skype が Slack に置き換わったチケットテンプレートを活用

本書で扱っています!

12/26

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

PyPro2の読みどころ

13/26

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

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

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

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 のための requirements09-02-05 requirements.txt でライブラリのバージョンを指定

する

15/26

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

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

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

その他更新多数全体的に現在のバージョン、一般的な作法に合わせて書き直しました。また、 BP の社内標準の現状にあわせて更新しています。

Ubuntu 14.04, Python 2.7.6 をベースに更新しましたdistribute と setuptools は紹介から消して pip だけにしましたエディタの比較紹介を追加しました : Vim, Emacs, PyCharmHTML が出てくるところは HTML5 で書き直しましたTrac の説明はなくなって Redmine だけになりましたSkype の説明はなくなって Slack になりましたチケットテンプレートで運用している話を追記しました testfixtures の紹介を追加し、 nose から pytest に変更しましたSphinx は 1.3 に更新しましたDjango は 1.7 を扱っていて、 south から Django migration に書き直されました

chardet, feedparser の紹介を削除し、 requests の紹介を追加しました

17/26

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

Python2と Python3 どっちを使うべきか

18/26

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

Python2 と Python3 どっちを使うべきか

仕事において既存のコードがあるならそのバージョンで。

新しく始めるなら3 .x で。2020 年には Py2 は終了これから開発したコードが何年使われるかから考え

ようPy3対応していないコードは少なくなりつつあるそれでも Py3対応してないコードは自力で修正しよ

うだいぶ少なくなってきているいま Py3対応してないコードはそもそもメンテナン

スされていない可能性がたかい -> 安心して使えないかも?

Ansible等のツールは Py2 でいいじゃない

19/26

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

Pythonの今後はどうなる?

20/26

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

Python の今後はどうなる?みなさん、どうなると思いますか?

21/26

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

おまけ

22/26

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

今回の執筆関係者

以下のメンバーにて制作しました。

11 人の執筆者12名の社外レビューアー7名の社内レビューアー編集さんと組版担当者さん

総勢 32名!

23/26

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

32名を支えた PyPro2執筆システム構成

Sphinx原稿

SCM(Mercurial)

reST

make html

執筆

確認

レビューSpreadsheet でレビュー指摘

通知

make shuwa 校正

差分をもらう予定

通知

24/26

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

Questions & Answers

25/26

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

Thanks :)

26/26