История изменений
Исправление
gh0stwizard,
(текущая версия)
:
Мой ответ был на то, что да, многие согласны, что use constant
имеет недостатки. С другой стороны, если использовать альтернативы, то лучшая альтернатива это sub MY_CONST { 42 }
. Минус ее в том, что а) выделяет лишние 500кб памяти; б) на критичном коде это решение тормоз. На оба этих случая забивают и не обращают внимания. Никаких best practice, никаких внесений лишних сущностей. Потому что код на XS единственное верное решение, чтобы разрулить проблемы выше. От того, что перформанс спадет на 20% в случае с sub
, тогда когда разница по сравнению с XS в 1000%, это капля в море. Плюсом же такого решения является простота и отсутствие зависимостей. Как практика показывает, вносить XS-код (тот же Internals) можно не во всех окружениях. И да, этот модуль используется предложенным тобой Readonly. Помимо того, этот модуль (Readonly) еще использует tie-интерфейс, который скорей всего даже хуже sub
(надо бенчить, без б).
Исходная версия
gh0stwizard,
:
Мой ответ был на то, что да, многие согласны, что use constant
имеет недостатки. С другой стороны, если использовать альтернативы, то лучшая альтернатива это sub MY_CONST { 42 }
. Минус ее в том, что а) выделяет лишние 500кб памяти; б) на критичном коде это решение тормоз. На оба этих случая забивают и не обращают внимания. Никаких best practice, никаких внесений лишних сущностей. Потому что код на XS единственное верное решение, чтобы разрулить проблемы выше. От того, что перформанс спадет на 20%, тогда когда разница по сравнению с XS в 1000%, это капля в море. Плюсом же такого решения является простота и отсутствие зависимостей. Как практика показывает, вносить XS-код (тот же Internals) можно не во всех окружениях. И да, этот модуль используется предложенным тобой Readonly. Помимо того, этот модуль еще использует tie-интерфейс, который скорей всего даже хуже sub {}
(надо бенчить, без б).