17章テスト、デバッグ、最適化

プログラミング作業は、コードを書き終えたらそれで終わりというわけではない。コードが正しく実行され、問題のないパフォーマンスが得られて初めて完了する。テストとは、既知の条件下でコードを自動的に実行し、結果が期待どおりかどうかを確認することで、コードが正しく動作することを検証するというものだ。デバッグとは、不適切な振る舞いの原因を特定し、それらを修復することを意味する(原因さえわかれば、修復は簡単だ)。

最適化は、納得のいくパフォーマンスが得られるようにすることを目的としたアクティビティをすべてひっくるめた表現としてよく使われる。最適化は、ベンチマーク(特定のタスクのパフォーマンスを計測し、許容範囲であることを確認する)、プロファイリング(パフォーマンスのボトルネックを特定するために追加のコードを使ってプログラムにそのための機能を埋め込む)、実際の最適化(プログラムのパフォーマンスを向上させるためにボトルネックを取り除く)に分かれる。言うまでもなく、パフォーマンスのボトルネックは、それがどこにあるかを(プロファイリングで)特定してようやく取り除くことができる。そのためには、パフォーマンスに問題があることを(ベンチマークで)知る必要がある。

本章では、これらのテーマを開発時の自然な順序で取り上げる。つまり、最初にテスト、次にデバッグ、最後に最適化である。ほとんどのプログラマが最も熱心に取り組むのは最適化である。テストとデバッグはしばしば(あろうことか)つまらない雑務と認識されるが、最適化は楽しいものと見なされる。本章の節または項をどれか1つだけ読むとすれば、17.4.1項をお勧めするかもしれない。17.4.1項は最適化に対するPythonのアプローチのまとめであり、Jacksonの古典的な「最適化の法則」 ...

Get Pythonクイックリファレンス 第4版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.