Es kommt sehr darauf an. Aber Sie sollten sich entscheiden , etwas zu tun und es zu dokumentieren .
Das einzig absolut Falsche für Ihren Code ist, zu vergessen, dass die Benutzereingabe möglicherweise außerhalb des erwarteten Bereichs liegt, und Code zu schreiben, der versehentlich ein bestimmtes Verhalten aufweist. Denn dann gehen einige Leute falsch davon aus, wie sich Ihr Code verhält, und es kommt zu Fehlern, während andere davon abhängen, wie sich Ihr Code versehentlich verhält (auch wenn dieses Verhalten völlig verrückt ist), und Sie werden mehr Fehler verursachen Wenn Sie das Problem später beheben.
In diesem Fall kann ich Argumente so oder so sehen. Wenn jemand von 175 auf +10 Grad fährt, sollte er bei -175 enden. Wenn Sie immer normalisieren Benutzereingaben und so behandeln 185 als gleichwertig mit -175 dann Client - Code kann nicht die falsche Sache tun , wenn es 10 Grad addiert; es hat immer die richtige wirkung. Wenn Sie 185 als Fehler behandeln, erzwingen Sie jeden Fall, in dem der Client-Code relative Grade hinzufügt, um sie in die Normalisierungslogik einzufügen (oder denken Sie zumindest daran, Ihre Normalisierungsprozedur aufzurufen), was tatsächlich dazu führtBugs (obwohl es hoffentlich leicht ist, solche zu finden, die schnell zerdrückt werden). Wenn jedoch eine Längengradzahl vom Benutzer eingegeben, wörtlich im Programm geschrieben oder durch eine Prozedur berechnet wird, die immer auf [-180, 180) eingestellt ist, weist ein Wert außerhalb dieses Bereichs mit hoher Wahrscheinlichkeit auf einen Fehler hin "das konvertieren könnte probleme verbergen.
Mein Ideal wäre in diesem Fall wahrscheinlich, einen Typ zu definieren, der die richtige Domäne darstellt. Verwenden Sie einen abstrakten Typ (lassen Sie den Client-Code nicht einfach auf die darin enthaltenen unformatierten Zahlen zugreifen) und stellen Sie sowohl eine normalisierende als auch eine validierende Factory bereit (damit der Client den Kompromiss eingehen kann). Unabhängig davon, welcher Wert für diesen Typ festgelegt wurde, sollte 185 in Ihrer öffentlichen API nicht von -175 zu unterscheiden sein (unabhängig davon, ob sie bei der Erstellung konvertiert wurden oder ob Sie Gleichheit, Zugriffsmethoden und andere Operationen bereitstellen, die den Unterschied irgendwie ignorieren). .