0

短い関数を使用することとインライン コードを使用することについて、仲間のプログラマーはどう思いますか?

関数の例:

//Check if all keys from $keys exist in $array
function functionName(array $array, array $keys) {
    return array_diff($keys, array_keys($array));
}

functionName($mas,$keys);

vs. コードのみを使用:

array_diff($keys, array_keys($mas));
4

3 に答える 3

3

あなたの例では、それは不必要だと思います。余分な関数呼び出しを作成して、正当な理由なくファイルサイズにバイトを追加する必要はありません。

また、インラインarray_diff($keys, array_keys($mas));は、コードを調べて正確に何をfunctionName()し、どこに配置されているかを調べるよりも、仲間のプログラマーにとってデバッグがはるかに簡単です。

于 2013-02-04T12:52:19.500 に答える
0

明快さは、いつでも存在することを望むロジックを書く際の主な関心事だと思います。

一般的に、私はインライン関数を嫌います。彼らは怠け者で、スパゲッティ コードを推進しており、一般的に、開発者側のスタイル/読みやすさ/明確さに対する懸念が完全に欠如していると思います。

ファイルサイズ - この引数は非常に恣意的だと​​思います。js ファイルは一度送信されてからキャッシュされます。多くの場合、わかりやすい名前など (できればコメント) がファイル サイズに追加されます。サイズが非常に重要な場合は、ファイルをできるだけ小さくするファイル ミニマイザーを使用します。

関数をお探しですか?大量の docReady で何が起こっているのかを正確に把握してみてはどうでしょうか。通常、CTL-F は検索機能を呼び出します。

インライン関数がコードの可読性をほとんど損なわない単純なケースがあることを認めます。ただし、インライン アプローチは、参照と実装を交互に分離するよりも明確になることはありません。

私の2セント

于 2014-02-13T19:42:30.387 に答える
0

functionNameそれは実際に何であるかに依存します。

コード全体でを使用customerDetailsAreValidしていて、突然 の検証を追加する$array['email']必要がある場合は、意図と実装の分離に感謝することになります。

一方array_diff、関数でラップしているdiffArray場合は、あまり意味がありません。

于 2013-02-04T13:24:45.080 に答える