2017-07-21 2 views
2

クライアントライブラリに、ある状態を限られた数のステータスの1つに設定するなどの方法がある場合は、可能なステータスごとにラッパーメソッドを記述するか、ユーザーはパラメータとして必要なステータスを渡すだけですか?例えば可能なオプションが限られている機能に対して、複数のラッパーメソッドを記述する必要がありますか?

:ステータスが正しく制限された可能性の一つに割り当てられていない場合は何の影響も与え

def set_success_status(commit): 
    _set_status('success', commit) 

def set_failure_status(commit): 
    _set_status('failure', commit) 

def _set_status(status, commit): 
    # some logic to actually set the status 
+0

'set_status(status、commit)'の何が問題なのですか? –

+0

私はそれが私が求めていると思います。ベストプラクティスはありますか?私は 'set_status()'は問題ないと思っていますが、私のチームの誰かがこれらの "ヘルパー"機能を提案しています。私はちょうどそれらの点を見ていない。 – JoshM

+1

これは厳密に議論された質問の定義なので、SOの話題です。私はあなたの痛みを感じますが、私は必要以上に多くのコードを書くことが嫌いです。特に、Pythonの関数と引数の力で、なぜ複数の関数が必要になるのでしょうか?しかし、それは私の意見です。 –

答えて

2

場合、私は複数のラッパー・メソッドをお勧めします。しかし、ステータスが純粋な情報であり、将来のステートメントの基礎とはならない場合は、通常のset_status(status, commit)機能を持つだけで十分です。

複数のラッパーメソッドを適用すると、クライアントエラー防止の最も明白ないくつかの理由で役立ちます。また、クライアントは異なるstatusのドキュメントを探すのではなく、関数オートコンプリートのすべてのオプションを参照するのに役立ちます使用可能なオプション。さらに、リテラルstatus文字列を変更する必要がある場合は、関数の名前を同じにしてクライアントを中断させることなく行うことができます。

最終的には、正確なシナリオになり、プロジェクトで現在設定されている方法に従います。私は複数のラッパーメソッドがどのように害を及ぼすかを見ていませんし、すべてのオプションを独自のエンティティとして固めています(オプションが限られているので妥当です)。statusを適用する際の柔軟性が増します。

関連する問題