Jak lepiej pisać?
-
public async Task<Result<ProductViewModel>> Get(int productId);
-
public async Task<(Error error, ProductViewModel model)> Get(int productId);
Klasa Result<T>
przechowuje także informację o błędzie, jeśli takowy wystąpił.
Jak lepiej pisać?
public async Task<Result<ProductViewModel>> Get(int productId);
public async Task<(Error error, ProductViewModel model)> Get(int productId);
Klasa Result<T>
przechowuje także informację o błędzie, jeśli takowy wystąpił.
Zawsze dążę do pierwszej wersji. Jest zdecydowanie prostsza i dużo bardziej czytelna, mimo wszystko. Poza tym utrzymanie drugiej wersji może się okazać problematyczne. Wyobraź sobie sytuację, gdzie kiedyś dojdzie do tego jakaś trzecia informacja. Przy wersji pierwszej w najlepszym wypadku zmianę robisz tylko w jednym miejscu. Przy wersji drugiej - w każdym.
Ja krotek czasami używałem w prywatnych metodach pomocniczych.
W przypadku publicznego interfejsu IMO lepiej zwracać klasę.