当コラムでは、PythonZen & PEP 8 検定試験(こちらでオンライン受験できます)で出題されている問題の解説を行なっています。当コラムシリーズを読んで自信がついたら、ぜひ試験に挑戦してみてくださいね。
今回のコラムで解説する試験問題はこちらです。
問題
格言「Now is better than never.」と「Although never is often better than *right* now.」に関する説明について、間違っているものを次の選択肢の中から選びなさい。
- バグを放置せずに今すぐ修正しよう。
- 無限ループは終わらせるべき。
- ファイルを open() した後に例外が飛ぶ場合は、ファイルを close() しなくても良い。
- YAGNI(You ain’t gonna need it.)。つまり、機能は実際に必要となるまでは追加しない方がよい。
解答のヒント
「Now is better than never.」を直訳すると、「今やる方がやらないより良い」という意味です。これは、何かをするならば今やるべきであり、何もしないよりは行動を起こす方が良いという考え方です。特にプログラミングにおいては、以下のようなシチュエーションでこの格言が当てはまるでしょう。
バグ修正:コードにバグが見つかった場合は、すぐに修正することが望ましいです。バグを放置すると、将来的に予期しない動作やシステムのクラッシュを引き起こす可能性があり、今すぐ修正するよりもさらに時間がかかることがあります。「Now is better than never.」の精神で、バグが発見されたらすぐに対応しましょう。
学習と実践:プログラミングの学習においても、今すぐ手を動かしてコードを書くことが重要です。理論を学ぶだけでなく、実際にコードを書いてみることで理解が深まります。何か新しい技術やフレームワークを学ぶ際も、まずは手を動かしてみることが大切です。
「Although never is often better than *right* now.」を直訳すると、「ただし、即効でやるよりはやらない方が良いこともよくある。」という意味です。これは、すぐに行動することが必ずしも最善ではない場合があることを示しています。特に以下のようなシチュエーションでこの格言が当てはまるでしょう。
過剰な機能追加:開発において、実際に必要になるかどうか分からない機能を事前に追加することは避けるべきです。これを「YAGNI(You Ain’t Gonna Need It)」原則と呼びます。必要になるまで機能を追加しないことで、コードの複雑さを避け、メンテナンスの負担を減らすことができます。
考えなしの行動:問題解決や新しい機能の実装に取り組む際に、焦って行動するとかえって問題を悪化させることがあります。深く考えずに行動するよりも、一度立ち止まって状況をよく理解し、最善の解決策を見つける方が結果的に良い場合が多いでしょう。
以上を踏まえて、解答の選択肢を見ていきましょう。
- バグを放置せずに今すぐ修正しよう。
バグが発見されたら放置せずにすぐに修正する方が良く、適切な行動です。
- 無限ループは終わらせるべき。
無限ループはプログラムが停止しなくなる原因となるため、ループを避けられる状態になった時点ですぐに終了させるべきです。
- ファイルを open() した後に例外が飛ぶ場合は、ファイルを close() しなくても良い。
ファイルを開いた後に例外が発生しても、リソースリークを防ぐためにファイルを適切に閉じる必要があります。通常は with ステートメントを使うことで、例外時のファイルの閉じ忘れを防ぎます。
- YAGNI(You ain’t gonna need it.)。つまり、機能は実際に必要となるまでは追加しない方がよい。
何でもかんでも今すぐ実装するのではなく、その機能が必要となるまで追加しない方が良いという原則を示しています。
Zen of Pythonは、Python言語の設計哲学を端的に表現しており、Pythonのコミュニティでは広く受け入れられています。これらの格言は、Pythonのコードを書く際の指針となっています。
正解について
ここまで正解のヒントをご紹介しましたが、いかがでしょうか? この問題はPythonZen & PEP 8 検定試験で出題されています。
自信がついたら、PythonZen & PEP 8 検定試験 で実際に試験を受けてみましょう。