「パーフェクトPython[改訂2版]」の献本をいただきました

はじめに

お久しぶりです。ALBERT辞めてから全然ブログを更新していなかったのですが、ALBERTと共にブログを辞めた訳ではないです。すみません。

今回は6月1日発売の「パーフェクト Python [改訂2版]」という書籍を著者の露木さんから献本をいただきましたので、その内容について書いていきます。

f:id:gat-chin321:20200611213628j:plain

www.amazon.co.jp

こちらの書籍は株式会社技術評論社が出している色々な本が出ているあのパーフェクトシリーズのPythonについての書籍の改訂2版になります。
初心者だけでなく、私のようなノリと勢いでPythonを書いていた人間でもPythonの魅力が理解できるような良書でした。

どんな内容だった?

内容を簡単にまとめると、以下のような分かりやすい構成でした。

1. Pythonの特徴や思想を学ぶ
2. Pythonの言語仕様を網羅的に基礎を学ぶ
3. 最後に様々な実践的な内容も学ぶ

で、とにかく負担にならない程度に文量を抑えつつも網羅的に色々と書いてくれていてまさにパーフェクトPythonでした。

個人的にはPythonの拡張モジュール、ライブラリを配布する方法、初版では取り扱っていなかったtypehintやコルーチンも取り上げていて、丁寧に解説してくれていたのが特に良かったです。正直Python学び始めた時に読めてればなあと少し初版を買わなかったことを後悔しました。

また、多分Python中級者くらいの私レベルでも普段から利用している仕様はもちろんのこと標準ライブラリ一つとってもこんな機能もあったのかと新しい発見が結構ありました。

具体的には以下の内容をこの書籍で初めて知りました…。

  • 関数アノテーションに文字列が使える `def hogehoge(arg: '文字列使えたのかお前')`
  • 名前空間パッケージが使える(異なるディレクトリにあるモジュールを1つのパッケージにまとめられる)
  • typing.TypedDict, typing.NoReturn, typing.Callable, typing.Generic, typing.NewTypeなどのこと(typing系ほぼ知らない)
  • スタブファイルなんて物が…
  • 拡張モジュール (調べてもよくわからなかったので、必要に駆られたら勉強しようと放置していたが、この書籍だとめっちゃ分かりやすかった)
  • sysモジュールの色々な機能
  • ファインダー、ローダー
  • siteモジュールの存在
  • フォーマットの注意点([]で囲まれた内容がそのまま文字列として評価されること)
  • doctestというDocStringに書いた内容でテストできるツール
  • etc...


さらに良いなと思った点は実践的な内容が充実している点です。

TODOリストを作ってみようから始まり、チャットサーバー、Wikiアプリケーション、外部のライブラリを利用したデータ分析、Scrapyを使ったクローリング、画像、音声、blenderを用いた3D、ネットワーク、データストア(KVSやredisやsqlite3に加え、ORマッパーなど)、タスクランナーのInvokeリモートホストに接続するためのFabricを利用した運用、PySNMPを使ったサーバーの状態監視、ドキュメントを残すためのSphinxなどの初心者が開発するにあたって最低限必要なことを全て学ぶことができます。

それぞれの章で出てくる例のコード量が非常に少なく説明も長すぎず少なすぎずとコンパクトにまとまっています。

少なくとも、おかげで私は「非同期IOの挙動は概ね知っているもののそもそもこれって何に使うんだっけ?」と言うところがわかっていなかったのですが、
非同期IOを使ったチャットサーバーの章で具体例を手を動かしながら確認した後に解説を見て、
「なるほどね。awaitしている間に他の処理するものがある場合に非同期になるから待ち時間ある処理をさせてる間に別のことさせたい時とかに使うのね」と分かってるのか分かってないのかは謎ですが、腹落ちはしました。

また、後半の応用例についてはそれまで学んだ基礎の延長で、実際の開発現場で必要になってくる工程(作業?)を体験できるような例題の選定になっているので、
エンジニア経験のない人なら「ほえーこんな感じのことをエンジニアの人たちはやってるのかー」と思いながら読めるはずです。(データ分析の部分は別にエンジニアの人でしている人そんなにいない気はしますが)

まとめ

以上グダグダ書きましたが、この本は

  • プログラミング初心者でPythonを勉強したいと思っている人の助けになる本で
  • データ分析でPython使っているけど、Pythonを使いこなせていない人には読んでもらいたい本で
  • Pythonそこそこ書くから基礎は押さえている人でも知識の振り返りに使える本

です。初心者も中級者も上級者もみんなこの本を読んでPythonライフをより豊かにしていきましょう!

おわりに

人生初の献本ということであまり書評の経験はないのですが、もしこの投稿を見て面白そうと思っていただけたなら嬉しいです。

実は6月1日に家に届いてちょっとずつ読んでいて数日で出せればよかったのですが、悲しいことに時間がなくてあまり読めてませんでしたので、今更のブログ投稿となってしまいましたことは謝罪させてください。本当にすみませんでした。

最後にこのような素晴らしい本を書いてくださった著者の皆様、献本を送付してくれた技術評論社に感謝を述べてこの書評を終わりとさせてください。