Цитата |
---|
написал: И ещё пару слов по теме так называемого говнокода в ядре Битрикса. Обычно так пишут те, кто битрикс видели только в админке. Неоднократно в этом убеждался. Например, когда новые клиенты просят посмотреть почему что-то не работает и присылают переписку с разработчиками, которые им этот сайт делали. В переписке мат-перемат про говнокод ядра Битрикса, а когда смотришь код, которым они делают простую выборку из каталога, то всё сразу становится понятно. Например, недавно было. Выбирают ВСЕ товары со всеми торг предложениями и в цикле фильтруют с помощью if. А там порядка 30 тысяч товаров и по несколько десятков ТП к каждому товару. А кеширование просто отключили в компоненте. Конечно, никаких ресурсов сервера не хватит на обработку такого массива данных на каждом хите. Молчу уже про браузер пользователя. Поэтому пока разрабатывали вроде всё работало, а как запустили в прод и дали рекламу, то всё встало.
Посмотрел кто им делал - партнёр благородных металлов. Ну то есть, много битриксов продаёт. |
Да, тоже видел такое, когда нет фильтрации выборки + в select выбираются абсолютно все поля (а по факту используются 5 полей) + это все в цикле и в итоге скрипт работает более 30 минут, попутно кладя на лопатки БД. Когда переписал - скрипт стал отрабатывать за 4 секунды и БД чувствовала себя просто отлично, несмотря на то, что товаров больше 350 000. Много жути видел такой, что не в сказки сказать, не пером описать, и постоянно задаю себе вопрос, как вообще до этого можно было додуматься?
Да даже далеко ходить не надо - последнее дорогущее решения для битрикса от партнеров (не важно каких - пальцем не буду показывать) с ИИ блекджеком и ..., там count на count`е и count`ом погоняет (count($var) > 0), а что функции empty не существует? Такое ощущение складывается, что если битрикс - то можно писать как вздумается, а не так как надо - это еще один камень в огород битрикса.
А по поводу ядра - да говнокода там тоже хватает.