web-dev-qa-db-ja.com

コマンドクエリの分離。 voidを返す関数を変更するためのエラー処理の方法

私はSOLIDコマンドクエリの分離について説明しているPluralsightコースの原則について学習しています。クエリ関数が何かを返す(そして決定的に変異しない)ので問題はありません。

私の質問はコマンドについてです。ここでの考え方は、コマンドはvoidを返す必要があるということです。コマンドの実行に問題がある場合はどうなりますか?変化する可能性のある一部の関数は、結果コードを返します。このイディオムは、Cプログラムでは非常に一般的です。それをどう対処するか。

これらの機能は常に成功するはずであると想定する必要がありますか?または、関数が成功しない場合、例外を発生させる必要がありますか?

言語がCのような例外をサポートしない場合、どのように処理しますか?

コメントは?

3
user619818

コマンド/クエリの分離は、結果コードを使用する言語では実際には適切ではありません。結果コードを含む言語で実装する場合、「コマンド」は結果コードのみを返し、「クエリ」は結果コードまたは実際の値を含む構造体またはオプションを返すと言います。

1
JacquesB