- 1
- 2
- 3
public function loadClass($class) {
return class_exists($class)||interface_exists($class)||($this->load($this->findClass($class))&&(class_exists($class)||interface_exists($class)));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
public function loadClass($class) {
return class_exists($class)||interface_exists($class)||($this->load($this->findClass($class))&&(class_exists($class)||interface_exists($class)));
}
прямиком из IDE. "Оптимизация" из разряда "лучшее - враг хорошего".
Не знаю, сочтет ли публика говнокодом, но, на мой взгляд, лучше оное записать не в одну строчку.
1 - уже класс есть - плохо
2 - нет файла с классом - плохо
3 - в файле класса не оказалось - плохо
4 - ура
а не
естьклассилиинтерфейсилизагрузитьтеперье стьклассилиинтерфейс
Ещё аргумент -- любая другая запись будет занимать больше места, дольше компилироваться в больший байт-код и дольше выполняться.
Первый мой комментарий был саркастичным, а теперь я вижу, что это совсем не говнокод. Может быть для некоторых -- матанкод.
Разница с ++i + i++ в том, что сабж работает (притом правильно и оптимально), а ++i + i++ -- UB. В одном случае тараканы в голове читающего, в другом -- пишущего.
небольшая копипаста, но теперь не запутывает и работает
http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Try to avoid using include_once and require_once if possible. You are much better off using a straight include or require call, because the *_once() calls are very slow under an opcode cache. Sometimes there is no way around using these calls, but recognize that each one costs you an extra open() syscall and hash look up.
Да, у меня тоже баттхёрт.
он что, открывает файл и вычисляет хеш?
я думал, пхп в памяти держит уже проинклуженные пути
(очевидно, что это workaround чтоб не налажать с симлинками)
Две последние строчки -- это классика говнокода. Тут их тьма в разных вариациях.
Парсится всё это дольше, байткод получается больше, выполняется дольше.
Места на экране занимает на две строчки больше, притом у меня всё равно по ширине не влезает, скроллер вылазит.
За отсутствие отбивки пробелами -- моё фи, за return в одной строчке с if -- тоже. Кстати, вместо || следовало бы разбить if-ы, увеличив код ещё на несколько строчек.
Достаточно? ;)
но выполняться должно чуть быстрее, потому что избавились от одного вызова метода
Для кода, который пишется хорошо один раз, а потом по нему только скользишь глазами -- сойдёт.
да не в экранных наномилях ширина кода меряется, а в колонках, причем const DO_XPEHA = 80
единственным оправданием может служить то, что в PHP есть такая же говноособенность как в JS
это же можно до бесконечности дебажить и так и не найти ошибку)
но если взять абстрактные a,b,c, где с изменяет a и b (но не крешит), ленивость не играла бы роли.