Что могло оправдать сложность Plone?

Plone очень сложен. Zope2, Zope3, 5, ZCML, ЗОДБ, ZEO, целая куча аббревиатур и сокращений.

Трудно начать, и текущее состояние кажется неопределенным. Он в основном основан на Zope2, но включает Zope3 через Five. И повсюду есть файлы конфигурации XML.

Окупается ли крутая кривая обучения? Оправдана ли эта сложность сегодня?

Предыстория: мне нужна платформа. Клиентам часто нужна CMS. В настоящее время я читаю "Профессиональная разработка Plone", не зная заранее Plone.

Проблема: клиенты не всегда хотят одного и того же, и вы не можете знать заранее. Одно можно сказать наверняка: им не нужна тема Plone по умолчанию. Но любая дополнительная функция - это риск. Вы не можете просто начать и сказать «Если вы хотите увидеть сложность Plone, вы должны попросить об этом.», если не знаете систему достаточно хорошо, чтобы планировать.

На самом деле, я бы оставил метку «РЕДАКТИРОВАТЬ»; это помогает людям, приходящим постфактум, знать, чего не могло быть, когда были составлены некоторые ответы. Без отредактированного флажка некоторые из респондентов в конечном итоге выглядят так, будто не прочитали вопрос должным образом. Просто мысль!

Jenn D. 19.02.2009 21:28
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
13
1
5 282
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Я вижу четыре вещи, которые могут оправдать затраты времени на использование Plone:

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

Ой, подождите, мне сказали, что собрания разработчиков Plone - одни из лучших! Как тот

Без справочной информации сложно ответить на ваш вопрос. Оправдана ли сложность, если вы просто хотите вести блог? Нет. Оправдана ли сложность, если вы создаете корпоративную сеть для 400+ человек? да. Если вы хотите стать консультантом, это хорошее вложение? Абсолютно! Есть много работы над Plone, и она оплачивается намного лучше, чем средняя работа PHP.

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

Немного предыстории:

Причина сложности Plone на данный момент в том, что он переходит на более современную архитектуру. Прямо сейчас он объединяет старый и новый подход, что добавляет некоторую сложность до тех пор, пока переход не будет в основном завершен.

Plone делает это, чтобы не оставлять своих клиентов позади, нарушая обратную совместимость, к которой они относятся очень серьезно - в отличие от других систем, которые я мог бы упомянуть (но не буду;).

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

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

В качестве примера рассмотрим разрабатываемую текущую версию Plone (которая станет 4.0):

  • Запускается в 3-4 раза быстрее текущей версии.
  • Он использует примерно на 20% меньше памяти, чем текущая версия.
  • В разработке находится гораздо более простая система типов (Ловкость), которая снизит сложность и значительно ускорит систему, сохраняя при этом тот же уровень функциональности.
  • База кода уже на 20% меньше, чем текущая поставляемая версия, и становится еще меньше.
  • Ранние тесты системы новых типов показывают 5-кратное ускорение редактирования контента, и мы еще не начали оптимизировать эту часть.

- Александр Лими, соучредитель Plone (и немного предвзято;)

Предыстория: мне нужна платформа. Клиентам часто нужна CMS. Но большинство CMS написаны на языках, на которых я не хочу поддерживать или писать дополнительные функции. В настоящее время я читаю «Профессиональная разработка Plone», не зная заранее Plone.

stesch 08.12.2008 22:27
Ответ принят как подходящий

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

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

Я нашел анонимный комментарий здесь, который намного лучше, чем сам этот пост, поэтому я репостю его здесь полностью с исправлением пары опечаток.


Этим летом мой шахматный клуб попросил меня создать новый веб-сайт, на котором члены правления должны иметь возможность добавлять сообщения, статьи и т. д. Похоже на CMS. Будучи разработчиком Python, я посмотрел на Plone и купил книгу Aspeli Professional Plone development (кстати, отлично написано).

Я потратил 3 недели отпуска на изучение книги и создание первого макета сайта.

Через 3 недели я понял, что в Plone есть несколько очень хороших вещей, но есть и очень неприятные вещи. На позитивной стороне

  • если вам не нужно настраивать Plone, Plone великолепен по функциям и компоновке
  • У Plone хорошая модель безопасности
  • Plone имеет хорошие готовые рабочие процессы
  • Plone многоязычный (что мне было нужно)

С обратной стороны

  1. Plone ужасно медленный. На моей платформе разработки (3-летний ПК с 512 МБ ОЗУ) запуск Plone занимает 30 секунд, а перезагрузка страницы - 10-15 секунд.
  2. вам нужно много разных технологий для настройки или разработки даже самых простых вещей
  3. TAL и Metal не являются современными и не адаптированы к объектно-ориентированному дизайну Plone.
  4. Приобретение по умолчанию неправильное. Приобретение может быть очень полезным (например, для безопасности), но оно должно быть явно определено там, где это необходимо. Это недостаток дизайна
  5. Plone не делает различий между содержимым и макетом. Это серьезный недостаток конструкции. Нет причин применять настройки безопасности и роли, например, каскадная таблица стилей или html, который создает макет из 3 столбцов, и нет причин, по которым эти элементы должны быть в ZODB, а не в файловой системе
  6. Plone не делает различий между веб-дизайнером и редактором / издателем контента, что снова является серьезным недостатком. Редактор / издатель контента добавляет / просматривает контент, работающий на действующем сайте. Веб-дизайнер добавляет / изменяет типы контента, формы и макет на тестовом сервере и переносит его на рабочий сервер, когда он будет готов. Ограничения безопасности, установленные Plone для редактора контента, не должны применяться к веб-дизайнеру, имеющему доступ к файловой системе на сервере.
  7. Plone не делает различий между графическими и программными аспектами веб-дизайнера. Графические художники используют инструменты, которые говорят только на html, css и немного на javasccript, но не используют Python, адаптеры и другие сложные концепции программирования. Как следствие, полная система скиннинга в Plone - это кошмар.

Я предполагаю, что Plone настолько медленный из-за пунктов 4, 5, 6 и 7.

Пункты 6 и 7 заставили меня отказаться от Plone. Я поискал другие варианты и в конце концов решил разработать свою собственную CMS на Pylons, которая невероятно быстра по сравнению с Plone. На том же сервере разработки у меня время запуска составляет 1 секунду, и время перезагрузки страницы невозможно измерить.

Сайт www.kosk.be работает (на голландском языке). CMS под названием Red Devil будет запущена как отдельный проект с открытым исходным кодом в следующем году.

Эти недостатки недействительны и недействительны даже в 2009 году, когда был опубликован этот ответ.

FMM 04.01.2012 22:37

@FMM можешь быть более конкретным? Почему они недействительны? Этот другой ответ, кажется, касается некоторых из них: stackoverflow.com/a/5332436/3408, но по крайней мере 1, 2, 4 и 7 верны, 3 - это вопрос мнения, и я бы сказал, что 5 в основном верно, по крайней мере, "Нет причин для применить настройки безопасности и роли, например, к каскадной таблице стилей или html, который создает макет из 3 столбцов, и нет причин, по которым эти элементы должны быть в ZODB "

rjmunro 05.01.2012 21:06

1 является умеренно верным, если не уделять времени его оптимизации. Но, опять же, все в Интернете требует особого внимания к скорости. 2 всегда верно в сети. HTML + CSS + JavaScript + серверный язык. 3 ужасно неверен, поскольку PT / TAL / TALES - лучший способ, который я когда-либо видел, чтобы отделить представление от логики приложения. 4 - это вопрос мнения. 5 зависит от как, который вы публикуете, а не макета. 6 также зависит от вашего рабочего процесса администрирования и уровня дисциплины. 7 ничем не отличается от любой другой веб-технологии, обслуживающей динамический контент.

FMM 05.01.2012 22:07

@FMM Лучше "привет, мир" не нужно "внимание к скорости". Это должно просто работать.

Michael 25.11.2019 12:29

С точки зрения системного администратора Plone просто стесняется быть абсолютным дьяволом. Обновление, обслуживание и установка в том месте, где вы хотите что-то установить, на платформе Linux более болезненны, чем это необходимо. Это всего лишь мои два цента, и поэтому я обычно предпочитаю избегать стека Zope / Plone.

Примечание: лучше с более новыми выпусками, но с более старыми ... тьфу

Аккреция.

По поводу комментария здесь Я думаю, что Plone так не работает (по крайней мере, больше).

1 - Plone действительно работает несколько медленнее, чем другие решения CMS, но от готовой настройки до решения Apache-Varnish-Zope-Relstorage есть много места для оптимизации.

2 - Это правда. Ответ здесь как бы объясняет это, но на самом деле Plone - сложное животное.

3 - Не понимаю, что вы имеете в виду. Выражения TAL Path основаны на концепции обхода атрибутов объекта. Мне кажется OO.

4 - Верно. Хотя после того, как вы поймете, как работает Acquisition, вам это не помешает. Думаю, в Plone не так много всего зависит от Acquisition.

5 - Неправда. Шаблоны страниц Zope предназначены для отделения содержимого от презентации. Тот факт, что контент и представление можно просматривать из ZODB (и на самом деле большинство шаблонов остается в файловой системе, вы просто видите их «просмотр» в ZODB) больше связан с тем фактом, что ZODB - это большой объект. база данных - что, в свою очередь, не означает, что все они являются содержимым. Все в «чистой» объектно-ориентированной системе является объектом, значение имеет только тип объекта (объекты представления, объект содержимого и т. д.).

6. Plone делает различие между веб-дизайнерами и создателями контента. Дизайнеры выполняют все настройки (шаблоны, CSS, JS и т. д.), А затем создатели контента создают контент, используя Plone UI. Дело в том, что Plone - это в основном CMS, а это означает, что создатели контента должны быть непрофессионалами с точки зрения дизайна.

7 - Частично верно. Учитывая, что структура пользовательского интерфейса не изменится, вся спецификация представления содержится в файлах CSS. Если структура пользовательского интерфейса должна измениться, дизайнер может работать с программистом :-), чтобы адаптировать шаблоны.

Я полагаю, что ни в одной системе, которая выводит динамические страницы, дизайнер может свободно говорить только на HTML, CSS и JS и исключить некоторые другие технологии, будь то PHP, Python, ASP или Java. Если он это сделает, обязательно найдется программист, который получит от дизайнера HTML, CSS и JS и «динамизирует их». Эта модель определенно существует в Plone.

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

Извините за резкие слова, я тоже хочу, чтобы было лучше.

Другие вопросы по теме