GoodRoot, чувствуете разницу между "стандартная" и "оптимальная"?

Разработчики системы написали все верно, но в их вариант заложена избыточная проверка количества, которая на самом деле ни к чему, потому что исходя из устройства системы, для любого значения @id у вас не может быть более одного узла structure, т.е. count нам вернет либо 0 либо 1, а чем это лучше чем false/true? Но операция count затратна, в то время как простая проверка по xpath - дешева.
Кроме того, допустим у нас что-то в системе сломалось и пусть у нас среди потомков текущего узла structure оказалось вдруг два узла с @id=$current_structure_id, т.е. count вернет нам двойку. Но это же не повод, не отмечать текущий пункт активным. Т.е. условие нужно трансформировать в count() > 0, а в таком виде оно вообще теряет какие-либо преимущества перед простой xpath-проверкой.
Почему в родных шаблонах применены неоптимальные конструкции, тоже в общем-то достаточно очевидно. Эти шаблоны - учебные, по их коду и комментариям любой желающий может постепенно вникнуть в XSLT. А оптимальные конструкции, конечно, работают быстрее но зачастую имеют довольно неочевидный синтаксис, затрудняющий понимание языка, и без того не самого легкого для неподготовленного человека.
GoodRoot писал(а):
Разрабы что-то не так написали?!
И давайте все-таки повежливее к разработчикам.
