Xを実行する必要があるかどうかをチェックし、必要に応じてXを実行するメソッドに名前を付けるための良い方法は何ですか?
たとえば、新しいユーザーがログインした場合にユーザーリストを更新するメソッドに名前を付ける方法は? UpdateListIfNeeded
は長すぎるように見えますが、単純なUpdateList
は毎回高価で不必要な操作が行われることを意味します。 EnsureListUpdated
もバリアントです。
C#には、Xが可能であるかどうかを確認するためのbool TryXXX(args, out result)
パターン(たとえばint.TryParse(str, out num)
)があり、それを行いますが、微妙に異なります。
Ensure
を使用する傾向があります。これは、何かが確実に処理されることを確認するという意味を持っていますが、実行する必要があります。すでに問題がない場合は、確認するだけで完了です。それ以外の場合は、それを行います。どちらの方法でも、それが確実に完了するです。
私の好みはUpdateList
です。何もする必要がない場合は、そうします。いずれにしても、費用は常に最小限に抑える必要があるため、UpdateList
が必要以上のことを行っている場合、その実装に問題があります。
基本的に、メソッドが何をすべきかを伝えるのは動詞です。 CalculateX
は常にXを再計算する必要があります。GetY
は常にYを返す必要がありますが、必要な場合にのみそれを取得する作業を行います。同様に、UpdateZ
は、可能な限り最も効率的な方法で行われたと想定して、Zの更新を要求します。
私が見たHaskellスニペットからコプトしました、試してください
UpdateListMaybe();