2016-05-21 4 views
2

「クリーンコード」について言えば、きれいに書かれた関数はというものが1つしかありません。です。入力をきれいに検証する

ユーザ入力を処理する場合は、の入力を有効にするためにの一部としてカウントされますか?いずれにせよ、私は推論を支える聞きたい

if (argIsValid(arg1)) { 
    foo(arg1); 
} 

:たとえば、

/* Arg1 is passed directly from user input */ 
int foo(int arg1) { 
    if (!arg1 || arg1 < 500) { 
     return -1; 
    } 

    /* Do foo */ 
} 

は、それが関数内でこれらの検証テストを書くこと、またはそれらはのように、何らかの形で分離する必要があり最高ですあなたの答えを。ありがとう!

答えて

0

は、validate_args()という名前の関数に検証ロジックを書き込むのに最適です。

検証ロジックを強化したいときは、コードの作成者でなくても見ていなければならないことは明らかです。

さらに、コードをよりエレガントにします!

+0

foo()の内部で検証関数を呼び出す方が適切でしょうか、foo()が引数を渡す前に呼び出されるべきですか? – frog

+0

両方ともOKです。あなたの質問では、後者に従います。しかし、**私は 'foo()'の中でそれを呼び出すでしょう。もし検証が失敗すれば、 'foo()'も失敗して、エラーコードを返して、呼び出し元(main() ) 'foo()'がうまく終了しないことを知っています。しかし、私は最初からそれを持っていました! – gsamaras

関連する問題