Когда это хорошая или плохая идея создать сайт с помощью CMS? - PullRequest
10 голосов
/ 23 сентября 2011

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

Создатель этой идеи не техничен, и у него есть опыт разработки веб-сайтов с использованием WordPress. Из-за этого его первым инстинктом было призвать CMS при создании этого проекта. Мой инстинкт разработчика, обладающего обширным опытом веб-разработки при создании веб-приложений с помощью PHP / Codeigniter, заключается в том, что CMS никогда не предназначалась для создания такого специализированного приложения, подобного этому, - и попытка использовать его создать много ненужных накладных расходов / беспорядка в проекте.

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

Но что вы думаете, ребята, есть ли какая-то ценность, которую CMS может предоставить проекту, подобному этому? Есть ли ситуации, когда общепринятым правилом является то, что CMS это хорошо / плохо? Я пришел из многих лет разработки PHP-приложений с использованием таких фреймворков, как codeigniter, и недавно мне пришлось работать над сайтом WordPress - который мне показался отвратительным беспорядком глобальных переменных, бесконечными «хуками», чтобы заставить код выполнить, когда / где вам это нужно и т. д.

---- РЕДАКТИРОВАТЬ ----

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

---- РЕДАКТИРОВАТЬ ----

Еще одна вещь, которую нужно добавить, - масштабируемость - это серьезная проблема. Мы хотим построить это, чтобы иметь возможность обрабатывать от 200 000 до 2 000 000 - 20 000 000 уникальных посетителей в месяц. Это означает использование всего, что есть в нашем распоряжении, балансировку нагрузки, кэширование memcached, рабочие процессы / серверы, базы данных mysql и mongodb высокой доступности (для различных целей в нашем веб-приложении), сети доставки контента, размещение файлов активов независимо от сервера приложений. и т. д. Мне непросто отказаться от прямого контроля над всем кодом, потому что в прошлом я использовал свою способность прикасаться ко всему для точной настройки любых проблем с производительностью / узких мест.

Ответы [ 4 ]

6 голосов
/ 23 сентября 2011

Ну, большинство CMS - это не только CMS, но и комплексные PHP-фреймворки, обеспечивающие базовую функциональность.Сказав, что CMS больше подходят для веб-сайтов, которые являются основой контента, таких как веб-сайты с большим количеством статей.Обновлять такие сайты и управлять ими могут пользователи, не являющиеся техническими пользователями.Но когда дело доходит до веб-приложений, им требуется гораздо больше взаимодействий, например, в приложении CRM вставки, чтения, обновления происходят очень часто.

Другими моментами, которые следует иметь в виду, являются

1.) было бы масштабно, если бы я использовал CMS для своего приложения, если вы думаете, что ваше приложение будет расти в будущем, и вы начнете создавать его с нуля, к тому времени, когда ваш собственный фрагмент кода будет преобразован в Framework для вашего приложения.Все будет очень легко обновлять, добавляя некоторые новые функции и т. Д.

2) Гибкость: если вы переходите на CMS, вам придется ограничиться в среде CMS. Что если вам понадобятся определенные функции на вашем веб-сайте?но вы не найдете ничего сделанного специально для этого.В этом случае вам придется разработать его самостоятельно, что может занять больше времени, чем потребовалось бы в противном случае.

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

Я бы сказал, что нужно использовать некоторую платформу, созданную для поддержки процесса разработки, такую ​​как CakePHP, CodeIgniter, Yiiи т.д.

4 голосов
/ 24 сентября 2011

Это становится действительно просто, когда вы сводите это:

Нужно ли нетехническим пользователям иметь возможность управлять контентом на веб-сайте?

Для почти любого современного веб-сайта ответ - «да».В настоящее время Интернет стал массовым, и Facebook, Twitter, Wordpress и т. Д. Продемонстрировали, что вам не нужно быть программистом для создания / поддержки веб-контента.

Ваш первоначальный вопрос говорит о многом.Итак, да, вам нужна CMS (система, которая делает возможным управление контентом конечными пользователями).

Итак, ваш настоящий вопрос: " Должен ли я создать свою собственную CMS или использовать существующую CMS? ".Те пользовательские интерфейсы, которые вы описали выше, это управление контентом.Вы описываете создание базовой CMS.

-

На этот вопрос я скажу: сделать «управление контентом» доступным для конечных пользователей намного сложнее, чем кажется большинству программистов.предвкушать.Даже реализация редактора Rich Text (WYSIWYG), который не совсем хрупок и не глючит, является монументальной задачей.

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

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

-

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

Мой совет, найдите платформу CMS, которая соответствует потребностям вашего клиента, станьте вовлеченным в его сообщество и опирайтесь на этот фундамент.В краткосрочной перспективе это может быть сложнее (включая ваши идеалы ПРОГРАММИРОВАНИЯ для размещения платформы), но лучше обслуживать вашего клиента, чтобы он не зависел от какой-то домашней CMS, которую другой разработчик когда-нибудь унаследует (и ненавидит).

3 голосов
/ 23 сентября 2011

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

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

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

Я думаю, CMS может помочь вам и в этом вопросе. В этом случае я рекомендую DRUPAL. DRUPAL достаточно мощный, чтобы контролировать это, также вы можете создать собственный список действий (например, добавить, изменить или удалить) в DRUPAL, к которому ваш нетехнический партнер может легко получить доступ. DRUPAL имеет много плагинов (модулей), я уверен, что вы найдете что-то подобное или вы можете объединить несколько плагинов, чтобы выполнить свою работу. Использование существующей CMS даст вам подтверждение того, что она стабильна

1 голос
/ 23 сентября 2011

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

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

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

Редактировать: Хорошо, так что ваши пользователи добавляют / создают контент, вам следует рассмотреть CMS.Ваша задача состоит в том, чтобы без проблем добавить агрегированный контент в вашу CMS.Это не невозможно, и, как уже упоминалось, одна из установленных платформ CMS будет хорошей отправной точкой.

...