ブロックをプログラムで繰り返し使用する場合は、関数を使用する必要があると主張する優れたプログラミング プラクティスを読んだことがあります。しかし、概念的な境界が明確なプロシージャーがあり、そのプロシージャーが 1 回しか呼び出されない場合はどうなるでしょうか。すぐにメイン コードに記述しますか、それとも関数に入れてメイン コードで呼び出す必要がありますか。
3 に答える
ライトワンスは、関数を使用する理由の 1 つです。ただし、概念的な境界が明確なコード ブロックは、関数の有力な候補です。
結果として得られるスクリプトのロジック フローは、より単純になり、読みやすく、デバッグしやすくなります。
たとえば、主要な作業を続行する前にいくつかの基本的な監査を実行するデータベース スクリプトがあるとします。これはスクリプト内で 1 回発生しますが、結果のロジック フローは次のようになります。
dbConnect()
dbAudit()
...
do main loop
...
素晴らしくきれいで、他の人が読みやすく維持しやすい。
正当な理由がない限り、関数に入れます。あなたのコードはよりきれいに保たれます。
簡単な答えは、それは完全にあなた次第だということです。概念的な境界がある場合は、関数に入れることをお勧めしますが、それが短すぎて余分なボイラープレートがコード全体を読みにくくする場合を除きます。
あなたが引用したプログラミングの実践について考慮すべきことの1つは、「プログラムでブロックを繰り返し使用する場合は関数を使用する必要がある」ということは、「ブロックを1回使用する場合は関数を使用すべきではない」という意味ではありません。それは実際には前例を否定しており、論理的な誤謬です。
正しい反転は次のようなものです: 何らかの理由でコードのブロックを関数に入れることが禁止されている場合は、ブロックを 1 回だけ呼び出す必要があることを願ったほうがよいでしょう (コードのブロックが含まれる関数の実行ごとに)。位置した)。:-)