0
Not a bug

http://refactoring.guru/ru/replace-array-with-object замедляет выполнение

Denis Raguzov 5 years ago updated 5 years ago 4
http://refactoring.guru/ru/replace-array-with-object
Этот "рефакторинг" замедляет код в highload, следует указать что любые геттеры сеттеры увеличивают потребление памяти и снижают скорость, в отличии от обычного массива.
Для того чтобы не было путаницы, можно ввести константы, что упростит понимание кода и оставит скорость на высоком уровне. Например [0] можно превратить в [tourName], [1] в [tourDate].

Answer

Answer
Not a bug
Вы правы на счет производительности. Однако, highload является особым случаем, а в нормальной жизни такой рефакторинг оправдан.
Answer
Not a bug
Вы правы на счет производительности. Однако, highload является особым случаем, а в нормальной жизни такой рефакторинг оправдан.
К сожалению любой солдат должен хотеть стать генералом, и любой проект должен быть расчитан на высокие нагрузки. Рекафторинг, который замедляет производительность и увеличивает потребление памяти - зло, тем более мой предложенный пример так же отлично повышает читаемость и отлично работает с автодополнением IDE.
А то я потом с грустью смотрю на такие сайты, где страница генерируется за 100мс, когда там могло быть не больше 10мс.
Я могу поспорить о причинах тормозов обычных сайтов. Один неоптимизированный запрос в базу данных тянет на сотню микро-оптимизаций, ухудшающих читабельность и структурированность кода.

Возвращаясь к конкретно этому рефакторингу, я подчеркну, что это не только простая конвертация массива в класс данных. Вы получаете дополнительные бонусы в виде возможности переноса связанного кода в этот класс.
Сеттеры то зачем ? Они же в 3 раза медленене чем просто доступ к объекту. Кто мешает напрямую обратиться к foo->bar ?