Здравствуйте, Дм.Григорьев, Вы писали:
ДГ>Чем же это лучше? Ты увеличиваешь сложность на пустом месте, разбивая вполне простой алгоритм скрипта на несколько слоёв, причём сильно связанных.
Сложность никто не увеличивал. Я ее просто перераспределил, вытащив не относящиеся к делу куски из одного модуля в другой. И понятность от этого ничуть не уменьшилась: заменив
$response->rowset('submenu', array('*' => 'attr'))->addDBRowset($db->query(
"select id, uri, menutitle from {PREFIX}pages where parentid=? order by sortorder",
array(0 => $submenuParentId)));
на (PHP не владею, псевдокод)
$response->rowset('submenu', array('*' => 'attr'))->addRow($menuManager->getMenuForParent($submenuParentId));
я сделал только лучше.
ДГ>В итоге ты только запутаешь код.
Как видишь, не запутал. Более того, этот код стало проще поддерживать и тестировать.
ДГ>Или по-твоему, часто возникает потребность менять крохотный кусочек единого алгоритма (текст SQL-запроса) без изменений в остальных частях (PHP-код, в т.ч. обработка result set)?
По-моему, изменение, затрагивающее одну часть системы (например, БД), не должно вызывать каскад изменений в остальных ее частях. А случается это, особенно в случае динамично развивающейся системы, очень и очень часто.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>