Це багато залежить. Але вам слід вирішити щось зробити і задокументувати .
Єдине остаточно неправильне для вашого коду завдання - це забути врахувати, що введення користувача може бути поза очікуваним діапазоном, і написати код, який випадково має певну поведінку. Тому що тоді деякі люди приймуть неправильне припущення про те, як поводиться ваш код, і це спричинить помилки, а інші закінчуватимуться залежно від поведінки, яку випадково має ваш код (навіть якщо така поведінка повністю зависла), і тому ви спричините більше помилок коли пізніше виправите проблему.
У цьому випадку я можу бачити аргументи в будь-якому випадку. Якщо хтось подорожує +10 градусів від 175 градусів, він повинен закінчитися в -175. Якщо ви завжди нормалізуєте введення користувача і так вважаєте 185 як еквівалент -175, тоді клієнтський код не може зробити неправильну справу, коли він додає 10 градусів; це завжди має правильний ефект. Якщо ви трактуєте 185 як помилку, ви змушуєте кожен випадок, коли клієнтський код додає відносні градуси, щоб ввести логіку нормалізації (або, принаймні, пам'ятати, щоб викликати процедуру нормалізації), ви насправді викликаєтеклопи (хоча, сподіваємось, легко зловити тих, які швидко будуть розбиті). Але якщо номер довготи введений користувачем, записаний буквально в програмі, або обчислюється за допомогою якоїсь процедури, призначеної завжди бути в [-180, 180), то значення поза цим діапазоном, швидше за все, свідчить про помилку, тому "корисно "перетворення це може приховати проблеми.
Моїм ідеалом у цьому випадку, певно, було б визначити тип, який представляє правильний домен. Використовуйте абстрактний тип (не дозволяйте клієнтському коду просто отримувати доступ до необмежених номерів всередині нього) та надайте як нормалізуючий, так і підтверджуючий завод (щоб клієнт міг зробити компроміс). Але яке б значення цього типу не було, 185 слід відрізняти від -175, коли його бачитимуть через ваш публічний API (не важливо, чи вони перетворені на будівництві, чи ви надаєте рівність, аксесуари та інші операції, які якось ігнорують різницю) .