pypro2の読みどころ紹介:python開発の過去と現在
TRANSCRIPT
![Page 1: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/1.jpg)
株式会社
清水川貴之
![Page 2: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/2.jpg)
自己紹介:清水川貴之
@shimizukawa
株式会社BeProud所属
Sphinxコミッター
Sphinx-users.jp お財布担当
一般社団法人PyConJP理事
Pepper レンタルしてました
![Page 3: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/3.jpg)
アジェンダ
Pythonプロフェッショナルプログラミング第2版が2月末に発売されました。初版から第2版までの間に、Pythonでの開発にはどういう変化があったのか。なぜ今回の改訂が必要だったのか。PyPro2の読みどころ紹介を通して、Pythonの新しいツールの登場、外部環境の変化、開発手法のトレンドの変化などの観点を含めて紹介します。
なぜPythonプロフェッショナルプログラミングの第2版を書いたのか
PyPro1以降の開発環境の変化
PyPro2の読みどころ
Python2とPython3 どっちを使うべきか
Pythonの今後はどうなる?
![Page 4: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/4.jpg)
![Page 5: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/5.jpg)
全ての始まり
Pythonの環境でどう開発し
ていくかについて書かれた本
英語版が2008年刊行
日本語版が2010年刊行
2011年頃には「環境」につい
て扱っている部分の内容が古くなりつつあった
Trac, Buildbot, buildout, …
エキスパートPythonプログラミング2010, アスキー・メディアワークス刊
![Page 6: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/6.jpg)
第1版 2012年刊行
新入社員に読んでもらいたい本として社内のノウハウを集めた本
社内で聞かれたら、それPyProに書いてあるヨ、と言える
Pythonそのものより、Pythonで開発するために必要なノウハウ(環境系)が多い 生まれた瞬間から情報が古くなっていく運命
Pythonプロフェッショナルプログラミング2012, 秀和システム刊
![Page 7: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/7.jpg)
第2版 2015年刊行
2014年頃にはPyPro1に
ついて、「その部分はもう古いので・・」という説明をする事が社内で多くなっていた
書き直すときのテーマ
新しい内容への更新
変わりにくい情報への置き換え
理想よりも実際にやっていることを書く
Pythonプロフェッショナルプログラミング第2版
2015, 秀和システム刊
![Page 8: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/8.jpg)
![Page 9: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/9.jpg)
PyPro1以降の開発環境の変化
pipがだいぶ良いツールになってきた(py279同梱)
setuptoolsを意識する世界は終わりつつある
wheelが登場、eggは徐々にフェードアウト
Djangoが標準でmigrateを装備、southは終了へ
SkypeがSlackに置き換わった
チケットテンプレートを活用
![Page 10: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/10.jpg)
![Page 11: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/11.jpg)
3章. Pythonプロジェクトの構成とパッケージ作成
Pythonでの開発に必須なツール、pipとvirtualenvを紹介。 2章で作成したWebアプリケーションを題材に、Pythonの開発を始めるときのディレクトリ構成、setup.pyの用意、リポジトリの登録、PyPIへの公開、といった流れを扱っています。
![Page 12: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/12.jpg)
9章. Pythonパッケージングと運用への活用
Pythonパッケージングを活用して、デプロイやCIに適用する、といった内容です。 3章の応用編です。
![Page 13: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/13.jpg)
11章. 環境構築とデプロイの自動化
Deployの話は第1版でもありましたが、内容がFabricからAnsibleに変わりました。といっても、Ansibleの詳しい内容は別のAnsible本等にまかせて、サーバー構築時の考え方と、それをAnsibleでどうやって
扱っていくのかというところにフォーカスしています。
![Page 14: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/14.jpg)
その他更新多数
全体的に現在のバージョン、一般的な作法に合わせて書き直しました。また、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開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/15.jpg)
![Page 16: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/16.jpg)
Python2とPython3 どっちを使うべきか
仕事において既存のコードがあるならそのバージョンで。
新しく始めるなら3.xで。
2020年にはPy2は終了
これから開発したコードが何年使われるかから考えよう
Py3対応していないコードは少なくなりつつある
それでもPy3対応してないコードは自力で修正しよう
だいぶ少なくなってきている
いまPy3対応してないコードはそもそもメンテナンスされていない可能性がたかい -> 安心して使えないかも?
Ansible等のツールはPy2でいいじゃない
![Page 17: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/17.jpg)
![Page 18: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/18.jpg)
Pythonの今後はどうなる?
みなさん、どうなると思いますか?
![Page 19: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/19.jpg)
![Page 20: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/20.jpg)
今回の執筆関係者
以下のメンバーにて制作しました。
11人の執筆者
12名の社外レビューアー
7名の社内レビューアー
編集さんと組版担当者さん
総勢32名!
![Page 21: PyPro2の読みどころ紹介:Python開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/21.jpg)
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開発の過去と現在](https://reader030.vdocuments.mx/reader030/viewer/2022032421/55a6a9061a28abf16a8b460b/html5/thumbnails/22.jpg)