WordPress под микроскопом

Vladimir
Опубликовано в: WordPress

Навеяло комментариями к статье "Трудности веб-разработки" и недавним копанием во внутренностях WordPress

Да, WordPress сама по себе хорошая система (особенно с точки зрения конечного пользователя): в ней можно настроить абсолютно всё (особенно, когда есть деньги и парочка толковых программистов). Но есть одно большое "но": если Вы — опытный программист и волею Фортуны Вам пришлось копаться во внутренностях этого чуда, то неизбежно в скором времени начинаете ощущать себя проктологом-патологоанатомом.

Если хочется кучу всякой гадости, вроде плагинов, редактирования страниц, темплейтов, интегрирования чего попало куда попало — естественно, за это приходится платить. Платить очень дорого.

А какое можно сделать «элегантное решение»? Чтобы оно обладало тем же функционалом? Можно только повторить монстра.

Доля истины в этом высказывании, разумеется, есть: чем универсальнее решение, тем оно монстроидальнее. Задача состоит в том, как этого монстра оптимизировать и минимизировать. Есть программисты, а есть быдлокодеры (у меня сегодня два цвета: чёрный и белый). Разница между первыми и вторыми заключается только лишь в умении использовать ресурсы серого вещества, именуемого мозгом. В результате у первых получается элегантное решение, а у вторых — Некрософт Виндовс Нерабочий Труп.

Это я всё к чему? Берём WordPress и смотрим:

MySQL: 45 запросов / 0.550 Потребление памяти: 10.1MB…

У меня немного другая статистика (наверное, сервер мощнее): 50 запросов, 0.05 сек.

Пятьдесят плюс-минус пять запросов: много ли это? Фиг его знает, может и не много, ибо всё познаётся в сравнении. Ну так давайте сравним. Я "надругался" над несчастным WordPress и просто отрубил ему кэш. Готовы?

1462 запроса и 2.02 секунды (лог запросов превышает мегабайт). Те, кто знаком с оптимизацией запросов в MySQL, ужасайтесь вместе со мной.

Можно долго спорить о том, что кэш нельзя выключать, разработчики его не зря включили и всё в том же духе. Ответ: а почему нельзя было сразу спроектировать нормально, чтобы не требовались костыли в виде кэша? По-хорошему, кэш должен использоваться как средство, дающее дополнительное ускорение приложению, но не как средство, обеспечивающее нормальную жизнедеятельность приложения. Скажем так: стимуляторы при умеренном применении могут оказать положительный эффект на человека. Но когда стимуляторы используются только для поддержания жизнедеятельности человека — это уже другая песня.

Вот так.

Но, возможно, в следующей версии

27
Ноя
2008

Ну почему?!!

Vladimir
Опубликовано в: Всё подряд

Почему, когда пытаешься сделать что-то по-хорошему, правильно и красиво, то обязательно сталкиваешься с такими трудностями, что теряешь веру в разработчиков, плюешь на всё и пишешь грязный хак?

Как известно, весь процесс программирования делится на три этапа. Первый — когда написана только одна строчка, и программист полон решимости сотворить самую быструю, маленькую и безглючную программу в мире. Второй — когда самая быстрая, маленькая и безглючная программа в мире написана, однако работать категорически не хочет. И третий — когда программа работает, но почему она это делает, никто, включая самого программиста, не понимает. Естественно, на третей стадии по внешнему виду программа уже далеко не похожа на ту маленькую быструю фею, которой она была задумана, скорее даже она напоминает пьяного бегемота-мутанта со скакалкой, танцующего польку-бабочку и поющего рождественскую песенку "Джунгли блин"
26
Ноя
2008

Вторая статья из серии "WordPress: Заменяем Apache лёгким web-сервером".

Первая статья была посвящена nginx, в данной статье разберём особенности конфигурирования mathopd и WordPress для совместной работы. Далее

25
Ноя
2008

Собственно, возникла идея: как заставить WordPress работать под другим web-сервером? Для начала я решил поэкспериментировать с nginx, если будет время — попробую и другие web-сервера. Далее

25
Ноя
2008

Хотя я люблю WordPress, но то, что я увидел сегодня в коде, меня сильно потрясло.

Речь пойдёт о виджетах, а именно, о календаре и архиве. Я вкратце опишу реализацию каждого из них, а затем расскажу, почему так делать нельзя. Далее

24
Ноя
2008