pypro2の読みどころ紹介:python開発の過去と現在

22
株式会社 清水川貴之

Upload: takayuki-shimizukawa

Post on 16-Jul-2015

3.797 views

Category:

Technology


4 download

TRANSCRIPT

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

株式会社

清水川貴之

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

自己紹介:清水川貴之

@shimizukawa

株式会社BeProud所属

Sphinxコミッター

Sphinx-users.jp お財布担当

一般社団法人PyConJP理事

Pepper レンタルしてました

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

アジェンダ

Pythonプロフェッショナルプログラミング第2版が2月末に発売されました。初版から第2版までの間に、Pythonでの開発にはどういう変化があったのか。なぜ今回の改訂が必要だったのか。PyPro2の読みどころ紹介を通して、Pythonの新しいツールの登場、外部環境の変化、開発手法のトレンドの変化などの観点を含めて紹介します。

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

PyPro1以降の開発環境の変化

PyPro2の読みどころ

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

Pythonの今後はどうなる?

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

全ての始まり

Pythonの環境でどう開発し

ていくかについて書かれた本

英語版が2008年刊行

日本語版が2010年刊行

2011年頃には「環境」につい

て扱っている部分の内容が古くなりつつあった

Trac, Buildbot, buildout, …

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

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

第1版 2012年刊行

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

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

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

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

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

第2版 2015年刊行

2014年頃にはPyPro1に

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

書き直すときのテーマ

新しい内容への更新

変わりにくい情報への置き換え

理想よりも実際にやっていることを書く

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

2015, 秀和システム刊

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

PyPro1以降の開発環境の変化

pipがだいぶ良いツールになってきた(py279同梱)

setuptoolsを意識する世界は終わりつつある

wheelが登場、eggは徐々にフェードアウト

Djangoが標準でmigrateを装備、southは終了へ

SkypeがSlackに置き換わった

チケットテンプレートを活用

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

3章. Pythonプロジェクトの構成とパッケージ作成

Pythonでの開発に必須なツール、pipとvirtualenvを紹介。 2章で作成したWebアプリケーションを題材に、Pythonの開発を始めるときのディレクトリ構成、setup.pyの用意、リポジトリの登録、PyPIへの公開、といった流れを扱っています。

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

9章. Pythonパッケージングと運用への活用

Pythonパッケージングを活用して、デプロイやCIに適用する、といった内容です。 3章の応用編です。

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

11章. 環境構築とデプロイの自動化

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

扱っていくのかというところにフォーカスしています。

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

その他更新多数

全体的に現在のバージョン、一般的な作法に合わせて書き直しました。また、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の紹介を追加しました

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

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

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

新しく始めるなら3.xで。

2020年にはPy2は終了

これから開発したコードが何年使われるかから考えよう

Py3対応していないコードは少なくなりつつある

それでもPy3対応してないコードは自力で修正しよう

だいぶ少なくなってきている

いまPy3対応してないコードはそもそもメンテナンスされていない可能性がたかい -> 安心して使えないかも?

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

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

Pythonの今後はどうなる?

みなさん、どうなると思いますか?

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

今回の執筆関係者

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

11人の執筆者

12名の社外レビューアー

7名の社内レビューアー

編集さんと組版担当者さん

総勢32名!

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

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出力をレビューしてもらうために使いました

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