処理の主な作用を返却値とし、処理状態を返さない

エラーの状態通知には例外処理を使用し、正常処理の状態通知には問い合わせ用のメソッドを別に用意すること。ただし、その問い合わせ本当に必要なのか検討すること。

主な作用が「データストレージからオブジェクトを読み込む」であれば、仕様上読むべきオブジェクトがない場合は考慮しないのであれば例外処理とし、考慮すべきであれば存在チェック用のメソッドを用意する。存在しない場合はnullを返却するが、呼び出し側で存在チェックを行うことでnullチェックは不要。nullチェックによって存在チェックに代えるのはやめた方がいい。ただし、並列処理では呼び出しのタイミングによって存在チェックとオブジェクト返却の間で矛盾が生じる場合を考慮する必要があり、その場合は両者をまとめた一時的な不変オブジェクトを生成した方がいい(要するにResult的なオブジェクト)。

主な作用が「コレクションを生成する」であれば、件数はコレクションのサイズそのものなので、改めて問い合わせる必要はない。0件であれば、nullではなく空のコレクションを返却させる方がいい。

主な作用が「オブジェクトをデータストレージに出力する」であれば、ストレージの状態が変わるのであればストレージを返却、もしくはオブジェクト自身をそのまま返却する。voidは邪魔。「IDを付与すると同時にデータストレージに出力する」であれば、2つのメソッドに分けられるか検討する。

他、よくあるパターンってどういうのがあったっけ?
断定口調で書いてるのが偉そうだけど、今時エラーコードをintで返却する方が珍しいよね。まぁそういう業界で仕事しているということで…。
いや、JavaのListとかMapとかがあるか…。追加メソッドの返却値がbooleanってどうよ…。