Pull to refresh

Comments 44

Оу, не видел. Убрать в черновики?
Нет, у вас лучше перевод и без кучи рекламы Infobox-а.
В оригинальном посте есть только ссылка на установку в 1 клик, которую делали сегодня ночью с помощью создания пакета JPS для Jelastic (чтобы у пользователей максимально быстро появилась новая версия) и предложение начислить 300 рублей просто так пользователям. Что-то из этого плохо или не стоит делать? (заголовок поправили).

Если внимательно посмотреть на нашу статью — это не перевод. Релиз ноуты у Wordpress одинаковые, мы же посмотрели на новые фичи более детально, проверили их работоспособность.
Ну не ссылка, а ссылки и я не говорю что это плохо — это ваш блог и ваше право публиковать там то что вам заблагорассудится. Просто эта статья лучше с точки зрения релиза WordPress 4.0. Как видите, хабрасообщество плохо воспринимает рекламу по любому инфоповоду.
Хабр, хабр никогда не меняется.
>> Если код — это поэзия
Очень своеобразная у Wordpress поэзия.
Код ядра WordPress достаточно хорошо и грамотно написан, позволяющий его очень гибко использовать. Для того что бы его понять и воспринять правильно, нужно отключить «MVC видение мира» у себя в голове. Ну а что до поэзии, то считайте, что WordPress это аналог японской поэзии.
А заодно и «ООП видение мира» отодвинуть на второй план?
ООП есть, только используется не так как в MVC
MVC это паттерн и к ООП прямого отношения не имеет, т.к. может быть релаизован вообще без ООП.
Серьезно? Покажите мне пожалуйста пример хорошего и грамотного кода, в этой мешанине глобалов, классов и функций, я к сожалению не нашел.
Бьюсь об заклад что вы особо и не искали ;) Ну а если честно, то что бы понять весь дзен WordPress-а, надо на нем профессионально работать.
Возможно вы правы.
Мне недавно пришлось столкнутся с Wordpress, и для человека, который привык к более принятым в программисткой среде архитектурам, вроде MVC, OOP и т.д., у меня аж глаз задергался когда я увидел кучу globals, HTML смешаный с PHP и все в основном работает на большом наборе отдельных функций (не классах). А ведь все это считается очень плохой практикой, как минимум в PHP!
Не знаю, как у «профессионально работающих» на WordPress разработчиков, но лично у меня код того, что я вижу на проектах, где используется WordPress, вызывает ужас (особенно globals, функции в глобальном пространстве имен и т.д.)

Поймите меня правильно. Мне по большому счету все равно, какую CMS использует клиент, если у меня есть задача, которую необходимо сделать. Я использовал множество фреймворков и сравнивать их архитектуру с архитектурой WordPress просто бессмысленно. Лично с моей точки зрения WordPress — это ужасно.

Тем не менее, иногда нужно на нем работать. Иногда нужно поддерживать сайты клиентов, написанные на WordPress. Поэтому я всегда очень настаиваю на обновлениях до текущего релиза, когда это возможно. Все же с каждой новой версией код WordPress'а претерпевает довольно много позитивных изменений. И если бы не было груза обратной несовместимости, мне кажется, разработчики WordPress переделали бы очень многие вещи в ядре.

P.S.
Все же важно понимать, что WordPress делается не для удобства программистов, а для удобства пользователей. И с точки зрения последних он является отличным проектом. Это не мешает мне испытывать определенную антипатию к процессу разработки под WordPress после длительного общения с Yii, Symphony, Laravel и тем более RoR или Django.
Просто вы встретили код, который написан в другой системе ценностей.
Представьте себе, что ООП — это не единственный способ писать программы. Хорошая архитектура может не использовать классы и объекты, но также разделять логику, модель и представление. А может быть и такая архитектура, в которой не будет MVC, но будут другие плюсы.
Мир программирования не ограничивается привычными для вас паттернами. Понятное дело, что вам всё кажется странным и неправильными в коде WP, но это просто вопрос привычки.
Знаете, я вот еще по работе часто использую декларативное программирование, а также мне крайне импонирует функциональное программирование. Я испытал очень приятные ощущения от знакомства с Erland, например. Это было совершенно новым для меня опытом после C, Java, PHP, Python, Ruby и т.д. Думаю, вы не будете отрицать, что функциональное программирование имеет мало общего с ООП?

Мне не нравится языки, основанные на прототипировании (да, я имею в виду Javascript), но я понимаю, что прототипное наследование действительно бывает удобно.

К чему это я. Код просто нравится или нет. Мне не нравится код WordPress. Мне кажется, что он усложняет разработку. Как и многие, я начинал учиться программированию с проделок в процедурном стиле. Когда начал использовать ООП — мне это понравилось. Когда я после ООП начал изучать функциональное программирование — мне это тоже понравилось. Это удобно. Когда я решил глубже изучить Javascript, мне показалось неудобным использование этим языком прототипов в большинстве случаев, которые релевантны моим задачам.

Точно так же я выражаю свое личное мнение (и мнение многих знакомых). WordPress — это шикарный инструмент для очень быстрого приведения проектов в состояние готовности. WordPress — это инструмент. Он крайне удобен для простых пользователей. Лично для меня, как для программиста, он не удобен.
И что же за система ценностей исповедуется программистами Вордпресса?
Низкий порог вхождения. Вчера прочитал книжку про php, сегодня ты уже можешь сделать тему для вордпресс.
Это чудесное качество продукта.
Не такой уж и низкий, если нужно сделать что-то хоть чуть-чуть нестандартное.
Скажем, если вдруг по каким-то объективным причинам для WP нужна нетривиальная вещь, то уровень владения стремительно приближается к профессиональному. Впрочем, подозреваю, что профи в первую очередь откажется использовать WP для решения «неблоговых» задач.
Не единственный, но код WP — типичный говнокод с любой точки зрения.
Все правильно, глобальные перменные и прочий багаж вызван хорошей обратной совместимостью, что очень сложно сказать про многие другие CMS, которые принято переписывать с каждым крупным релизом, а WordPress уже 11 лет. Тем не менее в ядре иногда наблюдаются приятные изменения существующего кода, делая его чище, красивее, функциональнее и быстрее, при этом не ломая обратную совместимость. Хорошие примеры класс WP_Theme, класс WP_Post и некоторые другие.

Тем не менее, у человека пришедшего из мира ООП, MVC, ORM и прочих модных аббревиатур, все равно возникает некий ужас при работе с WordPress: функции, фильтры, события,… но поймите — это одна из причин того, что с WordPress легко справиться даже начинающего разработчику без особых знаний PHP. Как-то раз Мэтт Мулленвег спросил на конференции разработчиков сколько из присутствующих научились программированию на PHP благодаря WordPress. Руки подняли больше половины зала.

Система Ghost — хороший пример, который доказал что именно эта простота является неотъемлемой частью WordPress. Это некий упрощенный аналог WordPress, написанный на Node.js, и теперь он славится лишь своей 45-минутной установкой, а WordPress в это время занимает более 60% доли рынка CMS и активно растет.

Но в легкости WordPress скрывается и его сложность — да, наклепать сайтик за выходные сможет каждый с помощью WordPress, но вот внутреннее строение, архитектуру, и огромное количество нюансов знают немногие. Начиная от элементарных, как например работа с внешними ресурсами с помощью класса WP_Http и функций wp_remote_*(), заканчивая чем-нибудь супер-специфическим, как например аргумент split_the_query в запросах с помощью WP_Query.

А когда с этим всем начинаешь глубоко разбираться, становится интереснее, и с каждым днем понимаешь, что WordPress знаешь все меньше и меньше.

Ну конечно каждому свое. Например мой любимый язык Python, а с WordPress работаю уже более 6-ти лет :)
Согласен с вами. Хочу лишь дополнить.

WordPress гибкая система, она практически не в чем не ограничивает разработчика. Если вам угодно вы можете привнести в свой плагин или тему объектно-ориентированный подход и MVC патерн. Есть множество фреймворков для создания тем и плагинов, которые делают этот процесс ещё приятнее. Упомянутого вами ORM к сожалению в WordPress пока нет, но класс wpdb() куда интереснее стандартного PDO.

WordPress — лишь гвоздь в стене на который разработчик может повесить картину своего прекрасного кода. :)
Наверное, я не требовательный к качеству кода, или скорее просто сам пишу «плохой» код, но лично я не считаю код WordPress'а каким-то уж особенно плохим — к стороннему коду, который отдельные разработчики пишут «для WordPress'а» (например, плагины, темы и т.д.) у меня куда больше претензий, чем к коду самой CMS.

И да, если уже смотреть не с точки зрения сферического вакуума, а фактически по конкурентам в сфере, то у WordPress'а далеко не самый плохо код — у многих других CMS все куда хуже :). Да-да, я серьезно.

Если же высказывать претензии к WordPress'у, с точки зрения разработчика, то у меня куда больше претензий к «неоднородности» его начинки. То есть очень часто получается ситуация, что вот одна подсистема движка очень хорошая, удобная, универсальная, расширяемая, а по соседству с ней находиться захардкоженое убожество какое-то.

Что самое плохое, порой «плохим соседом» является «интерфейс» к хорошей подсистеме. Вот банальный самый пример: есть система статусов, гибкая, расширяемая и все такое, можно добавлять свои статусы… но при этом в панели редактирования поста будет доступен лишь список стандартных встроенных статусов… потому, что это меню захардкожено. Такие дела, да.

Чисто интуитивно я понимаю, что большинство подобных моментов это просто пережитки прошлого, в котором WordPress был сугубо примитивным блоговым движком, к которым разработчикам еще не хватило времени добраться и переделать их, однако контраст все равно получается очень сильным. Особенно печалят такие моменты на фоне активной работы над «свистелками».
Так. Нововведения — это замечательно, а что из старого теперь сломано?))
А теперь все дружно ждём апгрейда всех установленных плагинов до поддержки совместимости с 4.0
Делайте бекап до обновления и пробуйте — очень многое работает сразу, ломающих изменений пока не заметили. Обновили порядка 18 сайтов без проблем.
Мне в плагине пришлось обновить только readme.txt — что совместимо с версией 4.0, а так всё старое работает корректно.
Почему-то все источники делают видео-превью встраивания oEmbed, а вот новое поведение скролла в редакторе отображают картинкой. Но его ведь просто невозможно понять с помощью картинки, а «фича» на мой взгляд одна из самых лучших в 4.0. Вот короткий видео-ролик прокрутки:



Очень удобно для работы с длинными статьями. Ну и официальный видео-релиз 4.0 для тех, кто еще не нашел:



В общем обновляйтесь друзья!
Я думаю проблем с обновлением не должно быть, в depricated только совсем древние и мало используемые функции и их всего 3.
Дальше я просто надеюсь что текущие функции будут работать так же как и раньше.
Обновил свой блог на четвертую версию и вы знаете улечшения на лицо, стало более приятно работать.
Господа, помогите, пожалуйста, найти блого-пост на русском с расследованием о 1500 SQL-запросах, инициируемых Wordpress'ом при рендеринге одной своей страницы. Несколько лет читал на одном из стендэлон-блогов, не могу найти сейчас.
Только что вывел информацию по запросам на главной одного из проектов:

542 запросов за 0,901 секунд

С включенным memcached

3 запросов за 0,102 секунд
каким инструментом пользуетесь?

за счёт чего при включённом memcached меньше запросов? один раз делается запрос, дальше в кеш, потом только динамика?
Инструментом для чего?

Для подключения memcached под WordPress я использую почти полностью переписанный плагин wordpress object cache (изначально он реализован с полной совместимостью с PHP 4.3, что в 2014 году разрывает мозг).

Работа плагина почти идентична работе любой системы, где используется memcached. Забираются данные из БД, кладутся в кеш. Устанавливается время инвалидации. После получения данных из БД обращения к ней практически не нужны, кроме ситуаций инвалидации кеша или записи в БД.
в смысле для просмотра запросов, не пробовали юзать total cache?
Конкретно для вывода тех двух сообщений я использовал функцию, встроенную в вордпресс: get_num_queries()

W3 Total Cache — это огромный и неудобный комбайн. Я разработчик, причем не разработчик на Wordpress, а просто разработчик. Мне очень не нравится, когда плагин весит 15 мегабайт, требует установить права 0777 на кучу директорий, самостоятельно создает файлы конфигурации и т.д.
Я пробовал W3 Total Cache и мне не понравилось.
А что за редактор используется в wordpress 4?
Sign up to leave a comment.

Articles