[Moscow.pm] v2 просьба о ревью модуля DBIx::Struct

Warstone@list.ru warstone на list.ru
Чт Янв 15 17:18:39 PST 2015


То есть вместо того чтобы использовать 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 <pef-secure на yandex.ru>:
>On Friday, January 16, 2015 00:16:40  Warstone на list.ru wrote:
>> Нет, все... Я на куче кодогенерации выпал в осадок.
>
>В ней весь смысл. Данные объекта-строки хранятся массивом, конкретные поля 
>знают свои индексы в массиве. Первичные ключи знают свои индексы в этом 
>массиве.
>-- 
>PEF Developer
>-- 
>Moscow.pm mailing list
>moscow-pm на pm.org |  http://moscow.pm.org

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150116/40dd90f1/attachment.html>


Подробная информация о списке рассылки Moscow-pm