Пользовательский контент сайта, потенциально массивный набор данных — Zope/Plone или Django?

Я хочу создать сайт, похожий на сайт «Что происходит».

План состоит в том, что места проведения могут зарегистрировать учетную запись на сайте, а затем через свой собственный раздел «администрирования» загружать / публиковать все свои последние события, которые проходят. Я надеюсь, что зарегистрируется очень большое количество площадок, и в каждой из них будет большое количество мероприятий, что создаст очень большой набор данных.

Затем я хочу, чтобы конечные пользователи могли искать все места, где проводятся мероприятия определенного типа, через сайт, а также, что важно, с помощью мобильных приложений для iphone/android.

Первоначально я размещаю эту систему на VPS с ограниченными ресурсами, который мне нужно масштабировать по всем факторам, чтобы «обновить» (я не могу просто добавить много оперативной памяти, не платя за дополнительную пропускную способность / дисковое пространство / и т. д.). но я планирую обновить по мере необходимости.

После долгих исследований два лучших варианта, которые я рассматриваю для реализации, — это Zope/Plone или Django+PostgreSQL (сайт с нуля), ни один из которых я не использовал раньше.

Мой вопрос, исходя из опыта людей, заключается в следующем: «Что наиболее подходит для такой платформы сайта и набора данных».»

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

Итак, подведем итог, к чему я стремлюсь (пожалуйста, дайте мне знать, если это нереально):

  • Низкая начальная стоимость. (В обмен на затраты времени)
  • Административный раздел пользователя места для добавления данных.
  • Вход пользователя для публикации отзывов/комментариев.
  • Масштабируемость.
  • В конечном итоге большой набор данных.
  • Работает быстро на ограниченных ресурсах.
  • Используйте перспективную структуру.
  • Относительно легко поддерживать/расширять модель данных с течением времени.

person RemoteCTO    schedule 16.08.2009    source источник
comment
Этот сайт когда-нибудь взлетал? Если да, то где?   -  person tesserakt    schedule 02.02.2011
comment
Производство на нем так и не началось, но еще вполне может начаться. Единственное, с тех пор Google, как всегда, сделал что-то подобное!   -  person RemoteCTO    schedule 02.02.2011


Ответы (3)


Вы должны расставить приоритеты в своих требованиях.

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

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

Ваши данные должны быть «защищены от будущего». Не ваш фреймворк. Это просто.

Пересмотренный рейтинг. Вот мой рекомендуемый рейтинг ваших требований.

  1. Низкая начальная стоимость. (В обмен на затраты времени)
  2. Масштабируемость.
  3. Относительно легко поддерживать/расширять модель данных с течением времени.
  4. Работает быстро на ограниченных ресурсах.

Это не интересно:

  • Используйте перспективную структуру. Такого не бывает.
  • В конечном итоге большой набор данных. Подождите, пока вы не поймете, что такое "большой". Также это определение «масштабируемого». Не включайте требование дважды.

Это требования к вашему приложению, а не к фреймворку.

  • Административный раздел пользователя места для добавления данных.
  • Вход пользователя для публикации отзывов/комментариев.

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

Кроме того, встроенный администратор Django, вероятно, может обрабатывать «администратора пользователя места» (неясно, что именно это такое, но, вероятно, это то, что делает администратор Django).

Наконец, вход пользователя (и связанная с ним безопасность) уже является частью Django. Вам все еще нужно написать (или найти) приложение для отзывов/комментариев.

person S.Lott    schedule 16.08.2009

Относительно легко поддерживать/расширять модель данных с течением времени

Это, по моему мнению, предлагает Zope, так как 'Zope Object DataBase' позволяет вам разбрасывайте объекты данных в Python сколько душе угодно.

[Django] работает быстро, если вы отделяете статический контент (изображения, файлы .css и т. д.) от динамического контента.

Zope/Plone имеет в основном необоснованную репутацию медленного, разделение статического контента, как и в Django, имеет такое же преимущество в Zope/Plone.

Наконец, вход пользователя (и связанная с ним безопасность) уже является частью Django.

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

Низкая начальная стоимость. (В обмен на затраты времени)

Трудный это. Plone будет иметь базовый сайт, работающий и очищенный за несколько дней. Однако, по моему опыту, сайты Plone очень требовательны к оперативной памяти, даже небольшие сайты быстро используют базовый объем оперативной памяти (256/512 МБ) на самых дешевых виртуальных хостах.

Сделанный на заказ сайт Zope3 может быть лучше, но на изучение и запуск потребуется гораздо больше времени, если вы не знакомы с Zope. (Я бы предложил начать с Грока)

Обе технологии страдают от так называемой «Z-образной кривой обучения». Очень легко начать и начать работать, но есть пара огромных препятствий на пути к знаниям, чтобы пройти дальше по линии (хотя это того стоит, ИМХО).

(Примечание: у меня есть опыт работы с большим сайтом Zope3 и несколькими сайтами Plone/Zope2 для малого бизнеса, но не с использованием Django)

person Jon Hadley    schedule 24.08.2009

«Относительно легко поддерживать/расширять модель данных с течением времени» — вот аргумент в пользу использования Django. Я не являюсь экспертом ни в одном из этих фреймворков, но имею некоторый опыт работы с обоими. Я думаю, довольно сложно модифицировать и расширять объектную модель Zope, если вы новичок в Zope. Мне очень нравится архитектура Zope, и Zeo, вероятно, будет очень полезен для масштабирования вашего приложения, но без предварительного знания Zope я бы выбрал Django.

person Achim    schedule 16.08.2009