こんにちは!ソフトウェアチームのエンジニアのふくだです。
この記事は、GROOVE X Advent Calendar 2023の6日目の記事です。
今回は趣向を変えて大好きな本の紹介をさせてください!
翻訳者として参加した『エキスパートPythonプログラミング 改訂4版』
2023年の7月21日にアスキードワンゴさんより『エキスパートPythonプログラミング 改訂4版』 が発売されました!わたしは今回の改訂4版から翻訳者として参加しました。
もともと読んでいた書籍の翻訳に携われる喜び、憧れの翻訳者のみなさまと一緒に翻訳できたのはとても貴重な体験でした。
一緒に翻訳をしたそうそうたるPythonistaのみなさまの中でPythonの経験がもっとも浅く一番エキスパートから遠いのがわたしです。そんなわたしだからこそ、読者としての視点、また翻訳者としての視点で、おすすめのポイントを紹介します!
そもそも「エキスパートPythonプログラミング」って
「エキスパートPythonプログラミング」(通称エキPy)は、プログラミング言語Pythonを中心に扱う技術書です。原著はPackt Publishing から出版されている Expert Python Programmingで、それを日本語に翻訳した本になります。
1つ目の「エキスパートPythonプログラミング」の日本語版が出版されたのが2010年です。改訂を2版、3版と重ね、2023年に改訂4版が出版されました。
プログラミング言語に関する書籍で改訂というと、Pythonのバージョンアップに対応したり、古くなった内容を刷新したりというような「ちょい足し」なイメージをお持ちかもしれません。
もちろんそういった側面もありますが、この「エキスパートPythonプログラミング」はよりわかりやすい文章への修正や内容の加筆がとても多く、読みやすさ・読み応えはどんどん増していっています。
本書の概要
「エキスパートPythonプログラミング」は、Pythonの言語仕様や新しい要素を中心に、Pythonエンジニアとして必要な周辺知識を体系的に教えてくれる内容になっています。また、出版社の紹介文にも次のように紹介されています。
Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。
本書はその名のとおり「エキスパート」を目指す方のための一冊となっており、対象読者は初級者向けというよりは中級者/上級者向けの本と位置付けられています。
目次の紹介
目次は次のとおりです。「難しそう」と思う方や「普段完全に理解して使ってるよ!」や「Pythonでどういう扱いなんだろう」と思う方もいらっしゃるかもしれません。
各章はほぼ独立しているため、気になるところから読んでみるのをおすすめします。
第1章 現在のPythonのステータス
第2章 現代的なPythonの開発環境
第3章 Pythonの新しい要素
第4章 Pythonと他の言語の比較
第5章 インターフェイス、パターン、モジュール化
第6章 並行処理
第7章 イベント駆動プログラミング
第8章 メタプログラミングの要素
第9章 PythonとC/C++をつなぐ
第10章 テストと品質保証の自動化
第11章 Pythonパッケージの作成と配布
第12章 アプリケーションの挙動とパフォーマンスの監視
第13章 最適化
すべての目次はこちら エキスパートPythonプログラミング 改訂4版 - アスキードワンゴ
また、本書の「はじめに」では、各章を次のように分類しています。
- 道具を知る: 1章から4章まではPythonプログラマの道具箱に入っている基本的な要素を取り上げます。生産性を向上させるツールから、モダンな開発環境、最近のPythonリリースで導入された新しい文法要素を紹介します。
- Pythonを使ってアプリケーションを構築する: 5章から9章まではデザインパターン、プログラミングのパラダイム、メタプログラミングのテクニックに触れます。また、アプリケーションアーキテクチャについても深く掘り下げていきます。Pythonの枠にとらわれずに、他の言語で書かれたコードとの統合についても説明します。
- Pythonアプリケーションの運用: 10章から13章は、アプリケーションの稼働後によく発生することについて説明していきます。アプリケーションの運用を簡単にするツールや技術を紹介し、パッケージング、デプロイ、モニタリング、パフォーマンスの最適化などのよくある問題の解決策を紹介していきます。
おすすめポイント
一読者として
発売した当時は敬遠していた本だったように思います。なぜなら「難しそうだなぁ」という印象だったから。
業務でPythonを扱うようになり、当時のメンターから勧められ改訂2版を手に取りました。Python以外のプログラミングの経験があって、Pythonも書いてはいるが、動くけどどうなの?といったそこまで慣れてない状態でした。
そのような状態で読み進めていくと(それでも、かいつまんで読みました...笑)、まるでそのメンターがそばにずっといてくれるような感覚になりました。
Pythonに詳しい方であれば誰もが知っているあれやこれを網羅的にこの本から学んだように記憶しています。例えば、次のような点です。
- PEP(Python Enhancement Proposal)を中心にした開発プロセスやオープンソースのコミュニティ
- Pythonに関する有益なリソースや情報収集
- CPython以外のPython実装
- コーディング規約であるPEP 8
- 主流のリンターや当時ハマりやすかった環境構築
このあたりは改訂4版でも健在で、 道具を知る に分類される1章から4章を中心に見てみください。心強い味方をそばに置いておける、というのがおすすめポイントです!
翻訳者として
改訂4版から追加になった内容や個人的に特におすすめの章をかいつまんでご紹介します。原著の修正によって、内容がより体系だっていたり、やさしくなった(?)と感じたところもありました。すでに過去の版をお持ちの方にもおすすめできる刷新です!主に次のようなところになります。
- 第5章 インターフェイス、パターン、モジュール化
- 改訂3版では「第17章 Pythonのためのデザインパターン」で紹介されていた内容を一新。インターフェイスと制御の反転(IoC)/依存性注入(DI)に焦点を当てた内容に。
- 第6章 並行処理
- 非同期プログラミングにて、asyncioのコードを原著で伝えたいことに合わせて、高水準のAPIで書き換え。
- 第10章 テストと品質保証の自動化
- 高いカバレッジのプロジェクトでよりテスト品質を強化できる手法ミューテーションテストの紹介。
- 第12章 アプリケーションの挙動とパフォーマンスの監視
- オプションの多いloggingに関するシンプルなグッドプラクティスや分散トレーシングの拡充。
- 第13章 最適化
- プロファイリングをする際にチームでの進め方の実体験のアドバイスが追記され、より身近で具体的に。
またレビューアーのみなさまにも全面的にみていただき、より読みやすい訳になっていると思います。
まとめ - おすすめする読者層
Pythonの基本がわかっているプログラマで、エキスパートを目指したい方にとって手に取る価値のある本だと思っております。今であれば本を読まずに生成AIに聞いてみて解決することも多々あると思いますが、聞くための前提条件やキーワード、背景が分からないと聞くこともできません。
自分が理解していない点を知ることができる、また知識の幅を広げてくれるきっかけが詰まった一冊です。
気になった方はぜひ、お手に取っていただけるとうれしいです。
また、LOVOTも Pythonで動いてます!Pythonを使って一緒にLOVOTのふるまいを作る人も募集しております!