我即将开始一个大规模的网络应用项目。该项目的前提是它将是一个聚合内容的目标网站(内容将通过独立运行的爬虫/机器人收集,并按照设定的时间间隔来索引已经批准我们技术的合作伙伴提供的数据),并将此内容显示给用户。用户可以通过对内容进行排名来定制平台向其呈现的内容,以试图给出平台数据以确定用户可能找到哪些内容有利。 (是的,我知道这听起来就像stumbleupon.com)
这个想法的创造者是非技术性的,他以前有使用wordpress开发网站的经验。因此,他的第一直觉就是要求CMS创建这个项目。我作为开发人员的本能,具有丰富的Web开发经验,使用PHP / Codeigniter构建Web应用程序,因为CMS从未打算用于创建这样一个特定于目的的定制应用程序 - 并尝试使用一个在项目中创造了许多不必要的开销/混乱。
我认为构建一个后端界面来查看/添加/编辑/删除蜘蛛收集的内容可能会更好,因为我想这是非技术合作伙伴唯一的访问/控制类型需要在这个项目中。 (也可能禁止用户,删除对内容的不当评论等)
但是你们怎么想?CMS可以为这样的项目提供某种价值吗?是否有一个普遍接受的规则,即CMS是好还是坏?我来自使用像codeigniter这样的框架的多年PHP应用程序,最近我不得不在wordpress网站上工作 - 这对我来说似乎是一个令人厌恶的全局变量,无穷无尽的'钩子'来获取代码执行何时/何时需要,等等。
----编辑----
我应该补充说,添加到所有这一切的预期功能是用户可以将自己的内容添加到我们的聚合内容集合中。只是另一个功能让我觉得这个应用程序太“独特”,无法在CMS上正确开发。
----编辑----
要添加的另一件事是可伸缩性是一个很大的问题。我们希望建立这个能够处理每月200,000 - 2,000,000 - 20,000,000个独立访问者的任何地方。这意味着使用我们可以使用的一切,负载平衡,memcached缓存,工作进程/服务器,高可用性mysql和mongodb数据库(在我们的Web应用程序中用于不同目的),内容交付网络,独立于应用程序服务器托管资产文件我对放弃对所有代码的直接控制感到不安,因为过去我曾用我的能力触摸所有内容来微调任何性能问题/瓶颈。
答案 0 :(得分:5)
那么,大多数CMS不仅有CMS,还有提供基本功能的全面PHP框架。已经说过CMS更适合像内容基础的网站那样有很多文章的网站。非技术用户的用户更容易更新和管理此类网站。但是当谈到webApps时,他们需要更多的互动,例如在CRM应用程序中,插入,读取,更新非常频繁。
应该记住的其他要点是
1)如果我将CMS用于我的应用程序,它是否可扩展如果您认为您的应用程序将来会增长,并且您开始从头开始构建它,那么您自己的代码片段将在Framework中转换为您的应用程序。事情将很容易更新,添加一些新的功能等。
2)灵活性,如果你使用CMS,你将不得不在CMS环境中限制自己,如果你需要在你的网站中使用某个功能但你没有找到适合它的内容,该怎么办?在这种情况下,你必须自己开发它,这可能需要很长时间才能实现。
3)性能,CMS应该用于它们的目的,CMS将加载正常运行所需的一切,而其中大部分内容根本不需要你的应用程序。
我想说要使用一些用于帮助开发过程的框架,如CakePHP,CodeIgniter,Yii等。
答案 1 :(得分:4)
当你把它煮沸时,这变得非常简单:
非技术用户是否需要能够管理网站上的内容?
对于几乎任何现代网站,答案都是“是”。网络现在已成为主流,Facebook,Twitter,Wordpress等已经证明您不需要成为程序员来创建/维护网络内容。
您的原始问题同样如此。所以,是的,您需要一个CMS(一个使最终用户能够进行内容管理的系统)。
所以你真正的问题是“我应该建立自己的CMS,还是使用现有的CMS?”。您在上面描述的那些自定义界面,即内容管理。您正在描述构建基本CMS。
-
对于这个问题,我会说:让最终用户可以访问“内容管理”比大多数程序员预期的要困难得多。甚至实现一个不完全脆弱的富文本(WYSIWYG)编辑器。越野车是一项艰巨的任务。
这只是冰山一角:权限,版本控制,工作流程,分类,分析,个性化,提要,评论,审核,错误记录等等。
这些可能是也可能不是您在发布时需要的功能,但随着网站的成熟,这些机会往往需要解决。
-
我为制作CMS的company工作,所以我有偏见,但我认为创建CMS的决定很疯狂。从技术角度看它很复杂,从可用性角度来看更复杂。作为单人乐队(甚至是十人乐队),您没有时间创建现有CMS套件随时可用的所有功能。这意味着改进网站以适应新想法或现代实践更加困难。你将永远落后并且追赶。
我的建议是,找到一个符合客户需求的CMS平台,参与他们的社区并在此基础上构建。它可能在短期内更难(包括你的PROGRAMMING理想来容纳一个平台),但它更好地服务于你的客户不依赖于其他开发人员有一天会继承(和讨厌)的一些自制CMS。
答案 2 :(得分:3)
我认为构建后端接口可能会更好 查看/添加/编辑/删除蜘蛛收集的内容,因为我想象 这是非技术合作伙伴唯一的访问/控制类型 将在这个项目中需要。 (也可能禁止用户,删除 对内容的不恰当评论等)
是的,这将是一个好主意,它会给你更多的控制权。您的非技术合作伙伴我只需要这些功能。或者你可以问你的伴侣他需要什么样的/控制类型。我的意思是他将遵循的具体用例
但你们怎么想?是否有某种CMS的价值 可以提供这样的项目吗?有没有这种情况 一个普遍接受的规则,CMS是好还是坏?我来自 使用codeigniter等框架构建多年的PHP应用程序 最近我不得不在wordpress网站上做 - 对我来说似乎 就像一个令人作呕的全球变量混乱,无休止的'钩子'得到 代码在你需要的时间/地点执行等等。
我想CMS也可以帮助你解决这个问题。在这种情况下,我推荐的是DRUPAL。 DRUPAL功能强大,可以控制这一点,您也可以在DRUPAL中创建自定义的操作列表(如添加,编辑或删除),非技术合作伙伴可以轻松访问。 DRUPAL有很多插件(模块),我相信你会找到类似的东西,或者你可以结合几个插件来完成你的工作。使用现有的CMS可以确认它是稳定的
答案 3 :(得分:1)
始终考虑“业务需求是什么以及软件如何支持?”您必须考虑核心需求是什么,然后评估最佳方法,无论是使用CMS,滚动您自己的系统,还是调整现有产品以满足业务需求。
访问控制并不能证明使用CMS - CMS非常适合用户生成和维护的内容,这些内容(根据您的描述)并不是您真正要做的。听起来像你有用户特定的偏好,这是CMS的一部分,但不是真正的主要服务。
WordPress不是CMS的一个很好的例子,至少在它的核心 - 它具有CMS的一些核心功能(用户,发布等),但同样,你将内容收集到一个中心位置,然后自定义该数据的显示。在我看来,它并不属于CMS领域。
编辑:好的,所以您的用户正在添加/创建内容,您应该考虑使用CMS。您的挑战是无缝地将汇总的内容添加到CMS。这并非不可能,如上所述,已建立的CMS平台之一将是一个很好的起点。