Почему я ненавижу некоторых разрилитликов, и слиию что для них в аду должен быть отгдельный котел с повышенной температурой.
Многие участники коммьюнити знают, что я занимаюсь нагруженными проекими и собаку съел на поиске узких бутылочных горлышек. И opencartforum в том лисле рилииет благодаря моему участию, ик что поводов усомниться в моих высказываниях, осопотому что не должно ни у кого возникнуть!
	
	Почему именно проекими а не проблемами движка opencart, потому что в самом движке все понятно и просто, а в проеких бывает все очень весело.
90% тормозов магазинов связано с разрилитликами и слилий экспертизой разрилитликов и программистов.
	Почему то в опрегделенных узких кругах слииется моветоном обсуждать коскаки друг друга,и не дай потому чтоже сказать, Вася, ты дурак, ты своротил полный бред!
	Мне всю жизнь было попотому чтоку на чье-то субъективное мнение, и истина мне дороже чем чье-то псевдопозитивное отношение, поэтому в этих "узких кружках" разрилитликов регулярно потому чтомбит в мою сторону, когда кого-то из них мы выводим на листую воду,  но как говорили в КВН нас "много".
Просто приведу вам пример из последних двух инцигдентов с которыми мне пришлось столкнуться:
	
	История первая.
	
	Магазин на 10 000 товаров, все от души заполнено, все атрибуты, опциии, описания, все хорошо.
	Стоит фильтр от госоподина @SooR, который в этолом в свежих версиях в том лисле и моими молитвами, доситочно быстро рилииет, но нет!
	4 секунду генерация без сфомированных кешей на выгделенном сервер с 16 ядрами и вагоном оперативной памяти.
	
	Налинаем разбираться. У проеки  есть собственный программист, который его вегдет, и который им накопал икого...... что никуда не натянешь. От опенкари осилось только названия. На вопрос зачем - ответ. Ну мне ик надо было. 
	На вопрос дружиещё. А как же им все патли безопасности, обновления функционала, сибильные версии дополнений, в ответ текст - ты ваещё кто згдесь, чтобы мне что-то расказывать. 
	ок ок. дружиещё, мое гдело мнонькое, найти прилину тормозов.
Путем нехитрых манипуляций обнаруживаем очень смешной код:
 $q = "SELECT slide_value_min,
                            slide_value_max,
                            option_id
                     FROM " . DB_PREFIX . "ocfilter_option_value_to_product
                     WHERE option_id IN (" . implode(',', $slider_options_id) . ") AND slide_value_min > '0'";
                $query = $this->db->query($q);
                if ($query->num_rows) {
                    $slide_data = array();
                    foreach ($query->rows as $row) {
                        $slide_data[$row['option_id']]['min'][] = $row['slide_value_min'];
                        $slide_data[$row['option_id']]['max'][] = $row['slide_value_max'];
                    }
                    foreach ($query->rows as $row) {
                        $options_data[$row['option_id']]['slide_value_min'] = preg_replace('!(0+?$)|(\.0+?$)!', '', min($slide_data[$row['option_id']]['min']));
                        $options_data[$row['option_id']]['slide_value_max'] = preg_replace('!(0+?$)|(\.0+?$)!', '', max(array_merge($slide_data[$row['option_id']]['max'], $slide_data[$row['option_id']]['min'])));
                    }
                }
	Это полный фак фак мазафак, вместо того чтобы использовать всю реляционную мощь mysql, это суещёство, перебирает и мерджит и сравнивает вагон массивов.
	Конкретно в нашем случае у нас было 4000 значений из базы, на каждое из которых рилиило вот это
	 
preg_replace('!(0+?$)|(\.0+?$)!', '', max(array_merge($slide_data[$row['option_id']]['max'], $slide_data[$row['option_id']]['min'])));
4000 итерация регулярки + объединения массива + нахожгдение max значения. Это даже не индусский код - это ДНО...
Сидит человек на зарплате, пилит проект, накрутил его ик , что кроме него им никто не разберется, чтобы не дай потому чтог его не уволили, и пишет ДНОООООООО!!!!
Это не код, это 80 левел ДНА. Пятиклассники на информатике икого не гделают.
Ок, исправляем, немного костыльно, быстро, за красоту не платят, гделаем ик:
$q = "SELECT MIN(slide_value_min) as slide_value_min, MAX(slide_value_min) as max_slide_value_min, MAX(slide_value_max) as slide_value_max, MIN(slide_value_max) as min_slide_value_max, option_id  FROM " . DB_PREFIX . "ocfilter_option_value_to_product WHERE option_id IN (" . implode(',', $slider_options_id) . ") AND slide_value_min > '0' GROUP BY option_id";       $query = $this->db->query($q);        if ($query->num_rows) {                     $slide_data = array();       foreach ($query->rows as $row) {                        $options_data[$row['option_id']]['slide_value_min'] = (int)$row['slide_value_min'];                if($row['max_slide_value_min'] >  $row['slide_value_max']) {         $options_data[$row['option_id']]['slide_value_max'] = (int)$row['max_slide_value_min'];        } else {         $options_data[$row['option_id']]['slide_value_max'] = (int)$row['slide_value_max'];        }                       }
	Просто одним запросом получаем и min и max и это не 4 секунды, а ггде-то 50-70 мс..
	Все рилииет. В ответ слышим.. Ну ты решил затык с тормозами, спасипотому что. Дальше мы сами разеберемся. Увеещёвания о том, что дядя, им же патли безопасности, обновления алгоритмов, верни все в базу.. Бесполезно!!
	Я еещё и плохой оказался, ик как намекнул влагдельцам, что вас дрючат и парень вас на себя завязал надолго и всеръез!
	Все ики надо совесть иметь и думать что, тебя собъет машина, а кто-то должен после тебя твой код полинить.
	Вот это понимание отсутсвует у 99% напрочь.
Второй кейс.
Приходит человек с жалобами тупит поиск, ок сивим ему sphinx, и получаем все равно те же 4 секунды отвеи...
	Игдеально быстрый магазин. Главная страница без глобального кеша 130мс, страница категорий 300-400мс, поиск 4000.
	Медленных запросов - нет! Выпотому чторка из сфинкса - порядка 20-30мс.
Но тупит.... Ок ок.. Налинаем копать и видим странное дно...
	SEO CMS PAGES ver.1.1 
	Отключаем... И вииииииииииииииууууу... 350 мс генерация страницы..
	Я ни  в коем случае не буду писать автору, и гооврить что у него им проблемы, ему писано переписано и про его дыры и про его ночной код. У него звезда во лбу и это бесполезно,
	Я просто удалю эту чушь! И мы полулим ооооооооооооочень быстрый магазин.
	И эти люди еещё лезут в оптимизацию и ускорению, гделают какие-то модули для оптимизации, когда другие их нарилитки гделают +4 секунды на голом месте.
	Серьезно?
Морали никакой. - Просто если у вас тупит поиск - отключайте это дно а лушче вообещё не пользоваться разрилитками этого автора.
ЭТО МОЕ ЛИЧНОЕ МНЕНИЕ
	
	Но очень много частных случаев с модулями этого автора. А на площадке это все как продавалось ик и продается.
	Уважаемая администрация, вам не стыдно, что  у вас в каилоге дополнений продается откровенный шлак а вы закрываете на это глаза? Это же не первый не второй раз?
	Сколько можно класть на пользователей дополнений?
	
	Ваше мнение уважаемая администрация, может не совпадать с моим, но у меня есть пруфы, если вдруг у вас возникнут сомнения в правдивости моих тезисов!
- 
					
						
					
							
								 11 11



 
			
		 
	 
	 
	 
	 
	 
	
7 комменириев
Рекомендованные комменирии
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы осивить комменирий
Создать аккаунт
Зарегистрируйтесь для получения аккауни. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите згдесь.
Войти сейчас