Найти тему
47 подписчиков

Опыт — это про понимание пограничных состояний


Пограничные состояния это то, о чем надо думать больше всего. Допустим почему разработчики не любят время? Казалось бы, что может пойти не так, это же всего лишь часы. Но календарь, время, переход на летнее время — это куча эдж кейсов. Они все легко прогнозируемы, но о них надо помнить.

Допустим в игре есть дейли квесты. Они обновляются каждый день. Или какие-то попытки. А что такое конец дня? У тех кто в Москве — это по UTC 21:00, а у тех кто в часовом поясе UTC+0 в 24:00. Стоит ли брать часовой пояс пользователя? Такой кейс конечно чаще всего обходят выбрав нужный часовой пояс. Но это и не единственный случай. Часто ошибаются в расчёте скажем периодичности. Давайте к другому примеру)

У вас сингл плеер игра, сервера нет. Всё по местному времени так сказать. Вам нужно чтобы у пользователя каждый день выбирался квест из X вариантов. Последовательно. И так по-кругу. Допустим вариантов больше 7, чтобы было чуть посложнее. Как это сделать?

Неправильное решение это скажем брать индекс через DayOfYear % X. Оно будет работать только в том случае, если DayOfYear делится на X без остатка. По сути нужно взять какой-нить DayFromRelease % X, и надеяться что в игру перестанут играть до переполнения переменной :)
Опыт — это про понимание пограничных состояний  Пограничные состояния это то, о чем надо думать больше всего. Допустим почему разработчики не любят время?
1 минута