Про смех над Рокстарами и неоптимальным парсингом джейсона.
К слову, ещё до его разбора сама строка, приходящая с бэка, разбирается по одному символу, что тоже странно, конечно.
Я что хочу сказать. У разработчика была задача разбирать строку, которая должна представляться в итоге как джейсон.
Разработчик делает посимвольное чтение. ПРЕДПОЛАГАЮ, что он делает это потому что на этапе написания игры с бэка приходили совершенно ёбнутые данные и он пытается откинуть только их, не прекращая работу над остальными. Ну не круто откидывать джейсон целиком, если из Х элементов пришёл один проблемный. Мало ли по какой причине проблема и когда её устранят? Что же теперь, не давать играть вовсе?
Далее он начинает делать сравнение. Не понимаю, почему над этим так проигрывают местные. Если человек делает сравнение, значит на этапе написаний и согласований о каких-то стандартах не договорились. Вполне вероятно, что ему приходят одинаковые объекты с написанием в разных регистрах, или же просто одинаковые совсем. Что надо делать, если пришёл "АаааА" и "АААаА"? Можно ли это нормализовать?
А что делать, если есть 2 объекта джейсона, которые совпадают всеми полями по значению, но у одного полей больше? А если часть полей не совпадает? Как эту проблему устранить, кроме как сравнивать всё со всем? А если название объекта вообще рандом и сравнивать нужно только по полям этого объекта?
В общем, я к тому, что у такого странного поведения вполне могут быть разумные причины. Так получилось, что один из моих последних проектов в ЛК вёл себя именно так, как описываю. Там был джейсон с неизвестноый заранее глубиной, многие поля нужно было разбирать рекурсивно. Значения полей противоречили требованиям, отсутсовали обязательные поля, были не ожидаемые. Мне пришлось положить кучу сил на автоматизацию всего этого добра. И попытки продавить мысль "давайте делать нормально" проваливались по непонятным мне причинам (видимо у моих руководителей давилка была меньше, чем у тех).
Когда игра вышла на продакшен и когда прошло несколько ЛЕТ с её выхода, вполне вероятно, что изначальные проблемы устранили и сейчас всё это можно поправить и будет здорово и эффективно. Только очень редко компании исправляют то, что не сломано. Игра, в которой главные поставищики денег проводят много часов не принесёт больше денег, если в неё начнут заходить те, кому было лень ждать 5 минут. Такие люди денег не будут приносить. А то, что всё-таки занесут, будет ничтожными копейками по сравнению с рефакторингом.