Про важность структуры данных
Во время разработки я стараюсь делать так, чтобы сама структура данных уменьшала вероятность возникновения ошибки. Например, в Java я сделаю поле boolean вместо Boolean, чтобы гарантированно не встретить там null.
Или, допустим, мне нужно записать данные нескольких игроков. У игрока два свойства - id и name. Я ни за что не сделаю два массива: int[] ids; string[] names. Я создам класс Player с двумя полями, и массив Player[] players. И никогда не окажусь в ситуации, что ids.Length != names.Length.
При создании таблиц в БД я не забываю про UNIQUE и NOT NULL.
Не забываем ставить 🤡 за такие простые примеры
Но не всегда получается обойтись только структурой данных. Сейчас я делаю систему квестов в игре, и мне нужно гарантировать то, что все квесты в цепочке имеют разные id, а цепочка имеет начало и не зациклена.
Я написал метод, который проверяет все цепочки квестов, которые лежат в ассетах. Он делает все проверки и бросает исключение, если что-то не так. Я запускаю этот метод автоматически перед билдом, и это гарантирует, что билд не соберется, если в моих квестах будет косяк.
Делай как я.
P. S. В OnValidate я эти проверки не хотел засовывать, он слишком часто вызывается.
#программирование
Post #123
853