[WCF] Enums vs strings - które lepsze

[WCF] Enums vs strings - które lepsze
xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • 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.


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 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ł.

Zobacz pozostałe 7 komentarzy
katelx
przed java nie ma ucieczki, jeszcze sie nie raz bedziesz musial z nia przeprosic :)
somekind
Na szczęście obecnie nie mam z nią praktycznie w ogóle kontaktu i nie ma szans, aby u obecnego pracodawcy to się zmieniło. Są co prawda jacyś szaleńcy z wiadomego kraju, którzy piszą w Javie testy do naszego API, ale na szczęście idiotyczny pomysł, abyśmy my też to robili, upadł.
katelx
zycze ci jak najlepiej, ale ja tez tak kiedys szydzilam z javy i skonczylam jak skonczylam... java to idealny jezyk do pisania testow :D selenium?
somekind
Nie, REST assured czy coś takiego. Ty pracujesz w banku, więc każdej kupy musisz tykać, ja mam to szczęście trzymać się od nich z daleka. :P
katelx
teraz to bardziej w startupie niz banku, do wyboru mam jeszcze c++ wiec java nie wyglada tak zle ;)
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
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
edytowany 1x, ostatnio: vpiotr
EP
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 6 lat
  • 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?


Wenn ist das Nunstück git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!
edytowany 1x, ostatnio: EntityPamerano
AG
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 7 lat
  • 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:ponad 13 lat
  • Ostatnio:prawie 3 lata
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.