То есть вместо того чтобы использовать Class::XSAccessor который оптимизирован
по самое не балуйся вы используете eval, тем самым:
1) Раздуваете working-set приложения
2) Теряете возможность рантаймого похачить базовый класс или сделать
инъектирование к наследование, если уж вы не хотите mro::c3 с next::method
пользовать и таким образом давать возможность пользовать миксины, если ОЧЕНЬ
надо.
3) Теряете читабельность кода
4) Выигрываете мизерный процент на обращении к хешу.
И вы считаете это плюсом? Если вы где-то используете кодогеренацию вы что-то
делаете не так.
---
Вы деретесь за сабы типа: ref ${ft} s ? Так генерите их в базе с
использованием какого-нибудь initialize метода так-же как и сейчас или заюзайте
автолоад. А еще лучше посмотрите как это делает DBIx::Class.
---
Вам надо еще? Хорошо... Почему вы в коде где-то пользуете ссылку на CORE, а
где-то нет? Вы в своем модуле, что defined и exists перебили? Или... Зачем это
вообще? Причем в части коде есть CORE:: перед ref, в части нету...
---
Вы проверяете во время setup_row есть-ли у вас уже такой класс, только вот вы
получаете имя класса и таблицу, а отдаете только имя класса... То есть я никоем
образом не узнаю, что я 2й раз пытаюсь вызвать генерацию класса, и фиг с ним,
если на одной и той-же таблице, а если на разных? Где там проверка на название
таблицы и гроханье с большим ором, если она не такая. Где варн, если таблица
та-же? Или это тренд такой "Если программист чего-то ступил, давайте ему
максимально осложним поиск баги"?
Вы хотели ревью - вот он вам. Модуль выбросить или переписать по нормальному, а
не через... кодогенерацию. Сейчас модуль безнадежен с точки зрения дальнейшего
развития и использования. Его просто опасно использовать.
Fri, 16 Jan 2015 00:12:41 +0100 от PEF Secure <[email protected]>:
>On Friday, January 16, 2015 00:16:40 [email protected] wrote:
>> Нет, все... Я на куче кодогенерации выпал в осадок.
>
>В ней весь смысл. Данные объекта-строки хранятся массивом, конкретные поля
>знают свои индексы в массиве. Первичные ключи знают свои индексы в этом
>массиве.
>--
>PEF Developer
>--
>Moscow.pm mailing list
>[email protected] | http://moscow.pm.org
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org