Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 2487 Просмотров
*

satarion

  • Осваиваюсь на форуме
  • 31
  • 5 / 0
Ниже я просто приведу кусок своей беседы по аське.
Откровенно влом оформлять это в виде законченной мысли, а поделиться, думаю, имеет смысл...
Может быть у кого-то дойдут руки попробывать и поделиться результатом.   :D

- - - - - - - - - - - - - - - - - - - - - - - -

mx (21:43:26 3/06/2009)
а я тут усердно таки мозгую корзинку для зоо....

 MauS (21:43:50 3/06/2009)
)) никому покоя не дает

 MauS (21:44:00 3/06/2009)
форму я ослил таки... кривущая, правда

mx (21:44:04 3/06/2009)
и наткнулся счаз на очччень интересную штуку - на 85% готовое решение

mx (21:50:49 3/06/2009)
вобщем - компонент корзинки для Joomla SimpleCaddy

mx (21:50:50 3/06/2009)
http://demo15.atlanticintelligence.net/

mx (21:53:21 3/06/2009)
вобщем - идеология такая: у компонента своя простенькая базёнка - там можно заводить товары.  грубо говоря - у каждого товара есть код (артикул), краткое описание, количество и цена. А так-же простенькая система доп. опций для товара.

 MauS (21:54:07 3/06/2009)
звучит знакомо, блин

mx (21:54:48 3/06/2009)
к товару можно обращаться из плагина.
типа в тексте пишешь {simplecaddy code=tovar01}

mx (21:55:11 3/06/2009)
и он тебе в статье выводит этот товар с кнопкой "добавить в корзину"

 MauS (21:55:32 3/06/2009)
но нет каталога?

mx (21:55:50 3/06/2009)
но самое ценное у этой штуки другое...
внимание! самое интересное

mx (21:56:48 3/06/2009)
она умеет добавлять в корзинку товар просто по переданным через урл параметрам.

mx (21:56:59 3/06/2009)
и пофиг - есть он в базе или нет

mx (21:57:03 3/06/2009)
типа
index.php?option=com_caddy&edtprodcode=beer001&edtshorttext=My+Beer&edtunitprice=24.95&edtqty=6&action=addtocart

mx (21:57:16 3/06/2009)
option=com_caddy - component name
action=addtocart - function to execute = addtocart
edtprodcode=beer001 - your product code
edtshorttext=My+Beer - a short description of the product, urlencoded!
edtunitprice=24.95 - the unitary price of the product
edtqty=6 - quantity to add to the cart

mx (21:57:52 3/06/2009)
она добавит в корзинку товар с таким вот кодом и описанием по такой вот цене

 MauS (21:58:50 3/06/2009)
> она умеет добавлять в корзинку товар просто по переданным через урл параметрам.
это GET запросом чтоли?

mx (21:59:02 3/06/2009)
либо умеет принимать все эти параметры через post

mx (21:59:07 3/06/2009)
и так и так

 MauS (21:59:21 3/06/2009)
таак

mx (21:59:43 3/06/2009)
ну вобщем - если ему сплавить все данные он в корзину добавит что хош

 MauS (21:59:47 3/06/2009)
кажись я начинаю догонять, к чему ты клонишь )

mx (22:00:20 3/06/2009)
остаётся только тупо сваять элемент, который будет содержать окошко "количество" и пипку "добавить в корзину"

mx (22:00:45 3/06/2009)
и будет собирать данные из итема в правильный пост-запрос

mx (22:01:37 3/06/2009)
а это похоже, даже я могу сделать... хотя лучше, если кто-нть хоть чуток умеющий писать =)

 MauS (22:01:39 3/06/2009)
думаю, даже элемент не нужен

mx (22:01:52 3/06/2009)
думаю - элемент-таки нужен

 MauS (22:01:58 3/06/2009)
можно в шаблоне все это прокрутить

mx (22:02:13 3/06/2009)
ммм... можно

 MauS (22:02:14 3/06/2009)
элемент по смысле все-таки содержит какие-то данные

 MauS (22:02:22 3/06/2009)
а здесь он какой-то фиктивный получится

mx (22:02:30 3/06/2009)
но элемент-таки красивее =)

mx (22:03:00 3/06/2009)
и потом этот элемент может содержать жестко прописанное поле артикула и, например, цены

mx (22:04:18 3/06/2009)
и элемент - такая штука, которую можно более-менее вменяемо распространять

 MauS (22:04:31 3/06/2009)
это да

mx (22:04:59 3/06/2009)
а инструкции прикручивания в шаблон - только гимора добавят

 MauS (22:06:25 3/06/2009)
согласен

mx (22:06:55 3/06/2009)
и потом - теоретически через тот-же элемент можно попробывать добавить функциональность доп. опций для товара...

mx (22:07:06 3/06/2009)
но это потом =)

 MauS (22:08:13 3/06/2009)
самый прикол будет, когда юзверь начнет фэйковый товар заказывать )

mx (22:08:36 3/06/2009)
ну... да, есть такой шанс...

mx (22:08:54 3/06/2009)
хотя, если всё делать через пост-запросы - это менее вероятно

 MauS (22:08:59 3/06/2009)
why?

 MauS (22:09:21 3/06/2009)
обычный юзверь и так, и так не будет с этим связываться

mx (22:09:26 3/06/2009)
ну... это да

mx (22:10:19 3/06/2009)
хотя - желание поправить в гет-запросе цену - а потом устроить скандал - типа я вот у вас за это купил - так будьте добры... =)

mx (22:10:36 3/06/2009)
такое вполне может посетить вполне обычных юзеров

 MauS (22:11:00 3/06/2009)
ну...

 MauS (22:11:02 3/06/2009)
да

 MauS (22:11:16 3/06/2009)
согласен. пост как-то не так в глаза бросается

mx (22:11:51 3/06/2009)
ну вобщем - штука получится не шибко секьюрная... но для магазинов с небольшим ассортиментом - вполне покатит

mx (22:12:09 3/06/2009)
когда продавцы свой товар в лицо знают =)

 MauS (22:19:47 3/06/2009)
Кстати, мне мысля пришла

 MauS (22:19:56 3/06/2009)
изоляции то все равно не получится

mx (22:20:05 3/06/2009)
в каком плане?

 MauS (22:20:11 3/06/2009)
ему ж (элементу) нужно будет из других элементов брать данные, которые постить

 MauS (22:20:41 3/06/2009)
мне кажется, у них семантика совсем другая задумывалась, все-таки

mx (22:20:50 3/06/2009)
ну да...
хотя без этого можно и обойтись

 MauS (22:21:05 3/06/2009)
ммм каким макаром? запихать в него все данные?

 MauS (22:21:14 3/06/2009)
получится какой-то мета-элемент

mx (22:21:20 3/06/2009)
ага, все данные, нужные для корзины

- - - - - - - - - - - - - - - - - - - - - - - -
« Последнее редактирование: 05.02.2012, 04:49:07 от satarion »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться