[WCF] Enums vs strings - które lepsze

[WCF] Enums vs strings - które lepsze
xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1571
0

Czyli Enum lub string w DataContract/parametrze operacji. Krótko które i dlaczego.

Wg mnie Enum - silnie typowane, więc z góry ograniczone wartości, serializację human-readable da się zrobić za pomocą EnumMember
String - jak dla mnie powoduje lekki chaos ze względu na dowolność, przez co trzeba ręcznie sprawdzać wartość no i patrząc na interfejs g*wno wiemy co to tak naprawdę jest, musimy kopać w kodzie, nawet jak jest komentarz to i tak.

Pytam, bo robimy projekt od zera i chcemy postawić na jakąś konwencję i Team Leader chce postawić na stringi (bo łatwiej debuggowalne? wg mnie niczym się nie różni od Enum'ów o ile dobrze się wie jak się z nimi obchodzić), ja na Enum'y.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Tylko stringi! Java FTW!

Tak na poważnie, to masz rację, a TL jest sadystą, skoro chce Wam takie coś zgotować. Spytaj go, czy liczby i daty też będzie stringami wysyłał.

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

Jeśli to temat który dotyczy tylko C# to pomiń ten post.

W Javie / C++ / Delphi (mam wymieniać dalej?) jest tak:

  • String - elastycznie błąd przemyka między modułami, może nawet być jakiś czas niezauważony jak masz warunki w rodzaju "if (status != "rejected")"
  • Enum - wyłapujesz błąd w trakcie kompilacji, albo zaraz na deserializacji
EP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 122
0

String zamiast enumów? Jaka jest w ogóle korzyść z takiego rozwiązania, oprócz oczywiście ukrytych błędów, które mogą być ciężkie do wykrycia?

AG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

Nie bardzo rozumiem, co łatwiejszego w debugowaniu stringów, zamiast enum, chyba tylko łatwiej o powód do debugowania.
Trzeba tylko uważać przy serializacji na to, żeby nie zapisało np.: jako Inta. Cała reszta to same plusy.

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
2

Ktoś to zresztą już jakiś czas temu opisał jako jednostkę chorobową:
patrz "Stringly Typed" w https://blog.codinghorror.com/new-programming-jargon/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.