Plone очень сложен. Zope2, Zope3, 5, ZCML, ЗОДБ, ZEO, целая куча аббревиатур и сокращений.
Трудно начать, и текущее состояние кажется неопределенным. Он в основном основан на Zope2, но включает Zope3 через Five. И повсюду есть файлы конфигурации XML.
Окупается ли крутая кривая обучения? Оправдана ли эта сложность сегодня?
Предыстория: мне нужна платформа. Клиентам часто нужна CMS. В настоящее время я читаю "Профессиональная разработка Plone", не зная заранее Plone.
Проблема: клиенты не всегда хотят одного и того же, и вы не можете знать заранее. Одно можно сказать наверняка: им не нужна тема Plone по умолчанию. Но любая дополнительная функция - это риск. Вы не можете просто начать и сказать «Если вы хотите увидеть сложность Plone, вы должны попросить об этом.», если не знаете систему достаточно хорошо, чтобы планировать.






Я вижу четыре вещи, которые могут оправдать затраты времени на использование Plone:
Ой, подождите, мне сказали, что собрания разработчиков Plone - одни из лучших! Как тот
Без справочной информации сложно ответить на ваш вопрос. Оправдана ли сложность, если вы просто хотите вести блог? Нет. Оправдана ли сложность, если вы создаете корпоративную сеть для 400+ человек? да. Если вы хотите стать консультантом, это хорошее вложение? Абсолютно! Есть много работы над Plone, и она оплачивается намного лучше, чем средняя работа PHP.
Я бы посоветовал вам уточнить, что вы пытаетесь создать, и попросить совета у форумов Plone. Plone имеет очень зрелое и дружелюбное сообщество, и оно обязательно сообщит вам, если то, что вы пытаетесь сделать, плохо подходит для Plone. Вы, конечно, можете делать с Plone все, что захотите, но в некоторых областях это лучшее решение, в других областях, где потребуется много работы, чтобы изменить его, чтобы сделать что-то еще.
Немного предыстории:
Причина сложности Plone на данный момент в том, что он переходит на более современную архитектуру. Прямо сейчас он объединяет старый и новый подход, что добавляет некоторую сложность до тех пор, пока переход не будет в основном завершен.
Plone делает это, чтобы не оставлять своих клиентов позади, нарушая обратную совместимость, к которой они относятся очень серьезно - в отличие от других систем, которые я мог бы упомянуть (но не буду;).
Вы заботитесь о своих данных, сообщество Plone заботится о своих данных - и мы хотели бы, чтобы вы могли обновиться до новых и лучших версий, даже когда мы переходим на новую архитектуру. Это одна из сильных сторон Plone-сообщества, но, конечно, есть штраф за изменение самолета во время полета, и это временная, дополнительная сложность.
Кроме того, Plone как сообщество уделяет большое внимание безопасности (сравните ее с любой другой системой по обнаруженным уязвимостям) и очень профессиональной культуре, которая ценит хорошую архитектуру, тестирование и возможность повторного использования.
В качестве примера рассмотрим разрабатываемую текущую версию Plone (которая станет 4.0):
- Александр Лими, соучредитель Plone (и немного предвзято;)
Предыстория: мне нужна платформа. Клиентам часто нужна CMS. Но большинство CMS написаны на языках, на которых я не хочу поддерживать или писать дополнительные функции. В настоящее время я читаю «Профессиональная разработка Plone», не зная заранее Plone.
Если вы хотите увидеть сложность Plone, вы должны попросить об этом. Для большинства людей этого просто нет. Он устанавливается за пару минут с помощью установщика в один клик. Затем один щелчок для входа в систему, один щелчок для создания страницы, использование редактора WYSYWIG и один щелчок для сохранения. Все происходит через интуитивно понятный веб-интерфейс. Plone - это продукт.
Если вы хотите использовать его в качестве «платформы», тогда платформа представляет собой стек из более чем миллиона строк кода, который реализует полный пакет управления контентом. Никто этого не знает. Однако все эти «сокращения» и «файлы» свидетельствуют о том, что программное обеспечение разложено по компонентам, так что никому не нужно знать все. Вы можете погрузиться в него настолько глубоко или неглубоко, насколько вам нужно. Если есть что-то, что вам нужно для какого-либо аспекта управления контентом, оно уже есть, вам не нужно создавать его с нуля, и вы можете сделать это способом, который соответствует широкой практике и проверке.
Я нашел анонимный комментарий здесь, который намного лучше, чем сам этот пост, поэтому я репостю его здесь полностью с исправлением пары опечаток.
Этим летом мой шахматный клуб попросил меня создать новый веб-сайт, на котором члены правления должны иметь возможность добавлять сообщения, статьи и т. д. Похоже на CMS. Будучи разработчиком Python, я посмотрел на Plone и купил книгу Aspeli Professional Plone development (кстати, отлично написано).
Я потратил 3 недели отпуска на изучение книги и создание первого макета сайта.
Через 3 недели я понял, что в Plone есть несколько очень хороших вещей, но есть и очень неприятные вещи. На позитивной стороне
С обратной стороны
Я предполагаю, что Plone настолько медленный из-за пунктов 4, 5, 6 и 7.
Пункты 6 и 7 заставили меня отказаться от Plone. Я поискал другие варианты и в конце концов решил разработать свою собственную CMS на Pylons, которая невероятно быстра по сравнению с Plone. На том же сервере разработки у меня время запуска составляет 1 секунду, и время перезагрузки страницы невозможно измерить.
Сайт www.kosk.be работает (на голландском языке). CMS под названием Red Devil будет запущена как отдельный проект с открытым исходным кодом в следующем году.
Эти недостатки недействительны и недействительны даже в 2009 году, когда был опубликован этот ответ.
@FMM можешь быть более конкретным? Почему они недействительны? Этот другой ответ, кажется, касается некоторых из них: stackoverflow.com/a/5332436/3408, но по крайней мере 1, 2, 4 и 7 верны, 3 - это вопрос мнения, и я бы сказал, что 5 в основном верно, по крайней мере, "Нет причин для применить настройки безопасности и роли, например, к каскадной таблице стилей или html, который создает макет из 3 столбцов, и нет причин, по которым эти элементы должны быть в ZODB "
1 является умеренно верным, если не уделять времени его оптимизации. Но, опять же, все в Интернете требует особого внимания к скорости. 2 всегда верно в сети. HTML + CSS + JavaScript + серверный язык. 3 ужасно неверен, поскольку PT / TAL / TALES - лучший способ, который я когда-либо видел, чтобы отделить представление от логики приложения. 4 - это вопрос мнения. 5 зависит от как, который вы публикуете, а не макета. 6 также зависит от вашего рабочего процесса администрирования и уровня дисциплины. 7 ничем не отличается от любой другой веб-технологии, обслуживающей динамический контент.
@FMM Лучше "привет, мир" не нужно "внимание к скорости". Это должно просто работать.
С точки зрения системного администратора 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 - динозавр. Выросший веками, собрал много хлама и ржавчины. В наши дни многие вещи делались бы совершенно иначе. Чрезмерно сложен для большинства вещей, трудно справиться со сложными вещами. Это противоположность тонкому и масштабируемому дизайну. И для того, чтобы серьезно это исправить, я не вижу необходимой рабочей силы, задействованной в проекте.
Извините за резкие слова, я тоже хочу, чтобы было лучше.
На самом деле, я бы оставил метку «РЕДАКТИРОВАТЬ»; это помогает людям, приходящим постфактум, знать, чего не могло быть, когда были составлены некоторые ответы. Без отредактированного флажка некоторые из респондентов в конечном итоге выглядят так, будто не прочитали вопрос должным образом. Просто мысль!