Почему WordPress считается плохо запрограммированным?

53

Я не поклонник кода PHP или спагетти, или что-то в этом роде, но, по моему опыту, WordPress работает потрясающе хорошо, он хорошо организован, и я никогда не сталкивался с каким-либо сложным для понимания кодом. Документация невероятно тщательная, любые недостатки безопасности фиксируются в течение нескольких секунд, и это "просто работает". Не говоря уже о том, что он делает ВСЕ, и у него есть потрясающая плагин. О, и "Loop" - потрясающий. У меня никогда не возникало проблем с внесением простых изменений в код или темы.

Можете ли вы, ребята, дать какие-либо конкретные примеры того, что вам не нравится в этом, или то, что вы запрограммировали бы по-другому? Я просто не понимаю, почему у него такой плохой рэп. Я бы хотел, чтобы мое собственное программное обеспечение работало так же, как и многие функции, и выглядело так же хорошо.

  • 3
    Я никогда не использовал это, но я должен был навести порядок. Вещи имеют бесконечный поток уязвимостей. Не трогал бы это с полюсом баржи.
  • 15
    Какой фрагмент кода не имеет бесконечного потока уязвимостей? Не является ли одним из основных принципов программирования, что что-то большее, чем «привет мир», будет иметь ошибку?
Показать ещё 4 комментария
Теги:

6 ответов

55
Лучший ответ

Я поклонник WordPress, но есть определенные проблемы, которые мешают кодеру, пытающимся работать с ним. В качестве небольшого примера, там get_the_content() (возвращает) и the_content() (печатает), но там get_permalink() и the_permalink(). Тогда просто the_date(), потому что он принимает аргумент, указывающий, хотите ли вы его распечатать или вернуть. Подобные вещи приводят даже к опытному персоналу WP на стене, потому что вы всегда должны использовать Google, и это говорит о более глубоком отсутствии внимания к деталям в коде.

Еще одна вопиющая проблема - отсутствие встроенного кэширования. Он даже использовал это, но они вырвали его и не заменили. Вам не нужно использовать сторонний плагин для базового кэширования в системе, такой как WordPress, особенно со всеми другими колокольчиками и свистами, которые он создает.

Перефразируя (предположительно) Черчилля, хотя, "WordPress - худшая система ведения блога... кроме всех остальных".

  • 6
    Я думаю, что все это правильно, но я думаю, что в Wordpress есть сознательный выбор не дублировать кэширование, когда плагин кеша делал это лучше. Ваш аргумент отчасти напоминает высказывание «Вам не нужен сторонний текстовый процессор. Windows должна просто поставляться с полнофункциональным текстовым процессором из коробки».
  • 12
    @Finster WordPress, в котором отсутствует какой-либо кэш, походит на Windows, поставляемую без NotePad или WordPad.
Показать ещё 3 комментария
12

Я написал много пользовательских приложений в PHP/MySQL на протяжении многих лет - от крошечных до огромных. Не потратив время на изучение деталей WordPress, мне очень жаль работать (под капотом).

Субъективно:

  • Очень плохие соглашения об именах
  • Выполнение потока является странным
  • Общее отсутствие организации
  • Трудно проверить, что происходит, когда
  • и т.д...

Их концепции удобства использования велики, а поддержка плагинов также велика. Я бы просто хотел, чтобы система была переработана с этими принципами, но с дисциплинированной и четкой методологией разработки.

Я уверен, что следующий парень скажет: "Нет, это не так, bla bla bla", но это только мое мнение после того, как он набросился на него (хостинг, изменение) примерно 3 раза.

  • 1
    Извините за оживление очень старого разговора, но проблемы все еще остаются. То, что действительно злит меня при разработке программного обеспечения для Wordpress, это глобальное состояние. Сегодняшний код приложения намеренно разделен на множество отдельных частей для обеспечения удобства сопровождения кода. Wordpress не делает такой вещи. Помимо очень плохой автозагрузки классов, он разделяет глобальное состояние по всему приложению, и это становится действительно грязным. Я действительно пытаюсь дать объективное мнение, но как бэкэнд-разработчик, это просто пример очень плохо написанного кода.
10

Это субъективный вопрос. Исходя из опыта, я заметил, что WP имеет место, чем больше ресурсов сервера, чем других систем или моего пользовательского кода. В результате мне пришлось переместить WP-сайты с моих серверов. Поэтому мой опыт показывает, что некоторые проблемы с использованием памяти.

Как упражнение попробуйте пройти код, отслеживая логику с самого начала запроса на страницу, и посмотрите, сколько объектов загружено, сколько методов вызывается до вывода любого HTML.

  • 0
    @ devin-ceartas:> отслеживание логики от начала запроса до страницы. Как мы можем сделать это в коде?
  • 0
    Я читал код.
Показать ещё 2 комментария
6

Кроме того, что уже упоминалось:

Нет системной системы шаблонов. Все эти годы, и у них все еще есть PHP-код, переплетающийся с HTML, и шаблоны по умолчанию, которые не поддерживают i18n или l10n вообще (жестко закодированные строки, жестко заданные форматы даты и т.д.).

Несколько точек входа - возможно, это только я, но это раздражает. Особенно, когда некоторые из них слишком велики.

  • 1
    Нет i18n? Совершенно неверно, он встроен. Codex.wordpress.org/I18n_for_WordPress_Developers $hello = __("Hello, dear user!"); То же самое для форматов даты - codex.wordpress.org/Function_Reference/date_i18n
  • 1
    Не в шаблонах.
Показать ещё 7 комментариев
4

Можете ли вы, ребята, дать какие-то конкретные примеры того, что вам не нравится это или что вы запрограммировали иначе?

Я бы добавил дополнительные комментарии.

В отдельном примечании, самая последняя версия Wordpress представила лабиринтную часть кода, которая запрещает доступ к страницам, которые: 1. Не находятся в меню или подменю 2. Не находятся в переменной $_registered_pages.

Множество плагинов для более ранних версий Wordpress было нарушено этой новой мерой безопасности.

Наконец, сеансы. Wordpress делает все возможное, чтобы избавиться от вашего пути, обработав все свои данные сеанса отдельным способом из встроенной переменной $_SESSION от PHP, но не дает вам возможности запуска сеанса PHP, вы должны добавить, что к основной программе самостоятельно. Я не нашел документацию, которая позволила бы нам, хакерам WP и разработчикам плагинов, использовать еще ранее существовавший сеанс WP.

3

Когда вы должны быть уверены в утверждении, которое делается "всем", если хотите, пытается проверить его самостоятельно.

И вы можете что-то сделать в своем заявлении: просто прочитайте исходный код Wordpress. Некоторые модули хороши, некоторые беспорядок, некоторые другие просто нормальные. Но все они составляют отличную систему блога, которая используется тысячами людей во всем мире, которые больше заинтересованы в написании хороших материалов, вместо того, чтобы жаловаться на то, как "уродливый" является конкретным исходным кодом. Таким образом, создатели Wordpress имеют поставляемый товар, полезный.

В конце концов, это не имеет значения. Если вы хотите идеальную систему блога, вы всегда можете написать ее самостоятельно.

  • 1
    Ну, опять же, я хотел бы понять отрицательный голос, чтобы я мог улучшить или просто удалить мой ответ? Пытался ли избиратель хотя бы прочитать официальную ссылку на WordPress , которую я дал на core.trac.wordpress.org/browser/tags/2.8.4/wp-admin/include/… , и проверить, почему я считаю беспорядок (он даже написан на сам официальный модуль)?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню