python 技術書 読書感想

【技術書感想】エキスパートPythonプログラミング 改訂3版 は1冊は持っておきたい良書

2022年4月12日

スポンサーリンク

概要

「エキスパートPythonプログラミング 改訂3版」を読んだので感想を書こうと思います。

似たような書籍で「きれいなPythonプログラミング」の感想も書いていますのであわせてご覧ください。

【技術書感想】きれいなPythonプログラミング ~クリーンなコードを書くための最適な方法

卓越したPythonプログラマになるための必読書。Pythonプログラマ必読と言われるベストセラーが、最新のPython環境に合わせて改訂されました。本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。本書を読むことで、先進的なPythonプログラマが日常的に使用している開発ノウハウを学ぶことができます。今回の改訂によって、新たにメタプログラミング、イベント駆動型プログラミング、型ヒントについての解説が追加されました。
Beyond the Basic Stuff with Python:Pythonプログラミングの入門・基本をマスターしたら次のステージへと踏み出そう! パイソニック(Pythonic)なコードを書くことを学び、より優れたプログラマーになる手法を伝授します。

 

技術書のセールとおすすめ書籍を紹介しています。合わせてご覧ください。

【10/13まで】Amazon Kindleで技術書が半額セール中。現役エンジニアから見たオススメ書籍も紹介

 

スポンサーリンク

書籍概要

どんな本?

卓越したPythonプログラマになるための必読書

Pythonプログラマ必読と言われるベストセラーが、最新のPython環境に合わせて改訂されました。

本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。

本書を読むことで、先進的なPythonプログラマが日常的に使用している開発ノウハウを学ぶことができます。

今回の改訂によって、新たにメタプログラミング、イベント駆動型プログラミング、型ヒントについての解説が追加されました。

  • 著 Michal Jaworski、著 Tarek Ziade、訳 稲田 直哉、訳 芝田 将、訳 渋川 よしき、訳 清水川 貴之、訳 森本 哲也
  • 2021年07月 発行
  • 616ページ
  • 定価4,180円(税込)

 

スポンサーリンク

内容のまとめと感想

コード、環境、テストなど様々な観点でPythonに関してのベストプラクティスをまとめている本です。

かなり本格的な内容が多く、以前紹介した「きれいなPythonプログラミング」と一部重複があるものの、さらにディープな内容まで取り上げています。

Beyond the Basic Stuff with Python:Pythonプログラミングの入門・基本をマスターしたら次のステージへと踏み出そう! パイソニック(Pythonic)なコードを書くことを学び、より優れたプログラマーになる手法を伝授します。

 

特徴

Pythonの中級者向け

Pythonの入門者ではないので、基本的な文法等に関する説明はありません。

ある程度Pythonを使いこなしている人がさらなる飛躍を目指すために読むための本になっています。

 

広さと深さを兼ね備えた内容

ページ数が600を超えているだけあって、非常にボリュームたっぷりの書籍です。

開発環境、コードの書き方のベストプラクティス、メタプログラミング、Linter、他言語Python拡張、CI/CD、ドキュメント(docstring)、ユニットテスト、性能の最適化、平行処理、デザインパターンと非常に盛り沢山の内容になっています。

この1冊でPythonの知るべきテクニックやプラクティスをかなり学ぶことができます。

 

翻訳者の補足が優秀

内容によっては翻訳者の補足といった項目が設けられていて、わかりにくい部分の追加説明や、さらに便利な内容の紹介などの補足が行われていて素晴らしいです。

 

まとめ

かなり盛り沢山の内容で、この1冊を読み込むことでPythonのスキルを向上させることができると思います。

ある程度Pythonを書けるようになったエンジニアが1冊は持っておくべき良書だと思いました。

かなりボリュームもあってヘビーなので、肩慣らしとして内容が似ている「きれいなPythonプログラミング」を先に読んでから取り組むと理解が進むかもしれません。

Beyond the Basic Stuff with Python:Pythonプログラミングの入門・基本をマスターしたら次のステージへと踏み出そう! パイソニック(Pythonic)なコードを書くことを学び、より優れたプログラマーになる手法を伝授します。

 

とりあえず2周ほど読み直しましたが、まだまだ完全に理解できているレベルではないので定期的に読み直したいと思いました。

ペースは遅いですが、山のように積読になってしまっているPython関係の書籍を少しづずつですが消化しています。

次は下記の2冊あたりを読みたいと思っています。

GoogleでPythonを使ったさまざまなサービスを立ち上げ、Pythonを知り尽くした著者による、Pythonエキスパート必携書の改訂版です。第2版ではPython 3.8に対応、データ構造、内包表記とジェネレータ、性能、デバッグについての章を新たに追加するなど、第1版の59項目を大幅に改訂し、90項目にわたってベストプラクティス、ヒント、落とし穴の避け方だけでなく、新機能の使い方などのノウハウを解説します。
一歩先行くパイソニスタを目指す人のためのPython解説書。Pythonはシンプルです。使い方を覚えるのも簡単で生産性を短期間で高めることができます。しかしこれは、Pythonに備わっている豊富な機能のほんの一部しか使っていないということでもあります。本書では、とても有用なのにあまり使われていないPythonの特徴的な機能を活用し効果的で慣用的なPythonコードを書く方法について解説します。

 

個人的なメモ

構文ベストプラクティス

 連結

zip関数を使用することで、list要素の結合ができる。

 

変数のアンパック

変数の格納に対して下記のような形で配列等をアンパックして格納できる。

 

Enum

enumモジュールのEnumクラスを使用して列挙型を定義できる。

 

イテレーターのアンパック

*をつけてイテレータをアンパックする方法を応用して、リスト同時の結合ができる

 

ジェネレータとyield文

yield文を使用してジェネレータを作成できる。

無限配列を実現できて、下記のようなフィボナッチ数を呼び出しの度に返すような仕組みが作れる。

 

関数デコレーター

関数内に関数を返すことでデコレーターとして関数をラップした機能を作れる。

クラスベースでの書き方も可能。

さらにラップすることで引数を取れるデコレーターを作れる。

 

クラスデコレーター

引数にクラスを受け取って関数デコレーターを作ることも可能。

ただし、この場合クラスを継承して別のクラスとなってしまうため、クラス情報などのメタ情報が変わってしまうという問題がある。

Pythonの場合、ミックスインによる多重継承が可能なのでそちらを使用した方が手軽で良い。

 

データクラスを用いたボイラープレートの削除

dataclassデコレーターを使用すると、初期化や文字列の出力処理などを代わりに実行してくれるようになり、提携的なコードの記述量が少なくできる。

 

ユニットテスト

標準で用意されたunittestモジュールを使用することでxUnitライクなユニットテストを記載できる。

 

大体のユニットテストフレームワーク

unittestモジュールは機能として最低限のものしか提供されていないため、pipを使ってサードバーティーのテストフレームワークを使うのも手。

本書ではpy.testというツールを紹介している。

xUnit系で定番のテスト実行前〜後のセットアップ処理の仕組みや、パラメタライズストなど定番の機能が一通り揃っている。

下記ページがかなり詳しいのでここを参照すると良い。

https://www.m3tech.blog/entry/pytest-summary

-python, 技術書, 読書感想

© 2022 nobu blog Powered by AFFINGER5