使用 CMS 构建网站什么时候是好主意还是坏主意

发布于 2024-12-05 23:48:06 字数 1087 浏览 0 评论 0原文

我即将开始一个大型网络应用程序项目。该项目的前提是它将成为一个聚合内容的目标网站(内容将通过独立运行的爬虫/机器人收集,并按设定的时间间隔对已批准我们技术的合作伙伴提供的数据进行索引)并将该内容显示给用户。用户可以通过对内容进行排名来定制平台向他们展示的内容,试图为平台提供数据来确定用户可能喜欢哪些内容。 (是的,我知道这听起来就像 stumbleupon.com)

这个想法的创建者是非技术人员,他以前有使用 wordpress 开发网站的经验。正因为如此,他的第一反应是在创建这个项目时需要 CMS。作为一名拥有丰富的使用 PHP/Codeigniter 构建 Web 应用程序的 Web 开发经验的开发人员,我的直觉是,CMS 从来没有打算用于创建这样一个针对特定用途的定制应用程序,并且尝试使用 CMS在项目中产生大量不必要的开销/混乱。

我认为最好构建一个后端界面来查看/添加/编辑/删除蜘蛛收集的内容,因为我认为这是非技术合作伙伴在此需要的唯一访问/控制类型项目。 (也可能禁止用户、删除对内容的不当评论等)

但是你们觉得呢,CMS 可以为这样的项目提供某种价值吗?在某些情况下,CMS 的好坏是普遍接受的规则吗?我多年来一直使用像 codeigniter 这样的框架来构建 PHP 应用程序,最近我不得不在一个 wordpress 网站上工作——对我来说,这似乎是一堆令人恶心的全局变量,无休止的“钩子”来获取代码在您需要的时间/地点执行,等等。

---- 编辑 ----

我应该补充一点,添加到所有这一切的预期功能是用户将能够添加自己的内容我们收集的聚合内容。另一个功能让我觉得这个应用程序太“独特”,无法在 CMS 之上正确开发。

---- 编辑 ----

另一件需要补充的是可扩展性是一个大问题。我们希望将其打造为能够每月处理 200,000 - 2,000,000 - 20,000,000 名独立访客。这意味着使用我们可以使用的一切,负载平衡、memcached 缓存、工作进程/服务器、高可用性 mysql 和 mongodb 数据库(在我们的 Web 应用程序中用于不同目的)、内容交付网络、独立于应用程序服务器托管资产文件我对放弃对所有代码的直接控制感到不安,因为在过去,我利用自己的能力接触所有内容来微调任何性能问题/瓶颈。

I'm about to begin a large scale web app project. The premise of this project is it will be a destination website that aggregates content (content is to be collected with a crawler/bot that runs independently and at set intervals to index data provided from partners that have approved our technique) and displays this content to users. Users can tailor what content the platform presents them with by ranking content, in an attempt to give the platform data to determine what content the user is likely to find favorable. (Yes, I know this sounds just like stumbleupon.com)

The creator of this idea is non-technical, and he has previous experience developing websites using wordpress. Because of this, his first instinct was to call for a CMS in creating this project. My instinct as a developer that has extensive web development experience building web apps with PHP/Codeigniter, is that a CMS was never intended to be used to create such a purpose-specific tailor-made app like this -- and attempting to use one would create a lot of unnecessary overhead/clutter in the project.

I'm thinking it might be better to build a back-end interface to view/add/edit/remove content that the spider collects, since I imagine this is the only type of access/control that non-technical partners will need in this project. (possible also ban users, remove inappropriate comments on content, etc)

But what do you guys think, is there some sort of value that a CMS could provide to a project like this? Are there situations where it's a generally accepted rule that a CMS is good/bad? I'm coming from years of PHP app building using frameworks like codeigniter, and recently I've had to do work on a wordpress site -- which to me seemed like a disgusting mess of global variables, endless 'hooks' to get code to execute when/where you need it to, etc.

---- EDIT ----

I should add that an intended feature to add to all of this is users will be able to add their own content to our collection of aggregated content. Just another feature that makes me think this app is too 'unique' to be properly developed on top of a CMS.

---- EDIT ----

Another thing to add is scalability is a big concern. We want to build this to be able to handle anywhere from 200,000 - 2,000,000 - 20,000,000 unique visitors per month. That means using everything at our disposal, load balancing, memcached-caching, worker processes/servers, high-availability mysql and mongodb databases (for different purposes in our web app), content-delivery-networks, hosting asset files independently of application server, etc. I'm uneasy about giving up direct control over all of the code because in the past I've used my ability to touch everything to fine-tune any performance issues/bottlenecks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

痴情 2024-12-12 23:48:06

嗯,大多数 CMS 不仅是 CMS,而且还提供提供基本功能的综合 PHP 框架。话虽如此,CMS更适合那些以内容为基础的网站,比如有很多文章的网站。非技术用户的用户更新和管理此类站点要容易得多。但当涉及到网络应用程序时,它们需要更多的交互,例如在 CRM 应用程序中,插入、读取、更新发生得非常频繁。

其他应该记住的点是

1) 如果我为我的应用程序使用 CMS,它是否可以扩展,如果您认为您的应用程序将来会增长,并且您从头开始构建它,到您自己的代码片段时将在您的应用程序的框架中进行转换。事情会很容易更新,添加一些新功能等。

2)灵活性,如果您使用 CMS,您将不得不将自己限制在 CMS 环境中,如果您需要网站中的某些功能,但找不到任何定制的功能,该怎么办为此。在这种情况下,您将必须自己开发它,这可能会比其他情况花费更长的时间。

3) 性能,CMS 应该用于其构建的目的,CMS 将加载正常运行所需的所有内容,而其中大部分内容您的应用程序根本不需要。

我会说使用一些旨在帮助开发过程的框架,例如 CakePHP、CodeIgniter、Yii 等。

Well, most CMS out there are not only CMSs but also comprehensive PHP frameworks providing basic functionality. Having said that CMS are suitable more for websites that are content base like websites having a lot of articles. It is much easier to update and manage such sites by the users who aren't technical users. But when it comes to webApps they require much more interactions, e.g. a in a CRM application the inserts, reads, updates happen very frequently.

Others points that should be kept in mind are

1) would it be scale able if I use CMS for my app, If you think your app will grow in future, and you start building it from scratch, by the time your own piece of code would be transformed in a Framework for your app. Things will be much easy to update, adding some new functionality etc.

2) Flexibility, if you go with CMS you will have to constrained yourself in the CMS environment, What if you need a certain functionality in your website but you find nothing tailor made for that. In that case you will have to develop it your self which could take a long time than it would take otherwise.

3) Performance, CMS should be used for the purpose they are built for, a CMS will load everything it needs to function properly whereas much of these stuff you won't need for your app at all.

I would say to go with some Framework that is built to help the development process, like CakePHP, CodeIgniter, Yii etc.

琉璃繁缕 2024-12-12 23:48:06

当你归结起来时,这变得非常简单:

非技术用户是否需要有能力管理网站上的内容?

对于几乎所有现代网站,答案是“是的”。 Web 现在已成为主流,Facebook、Twitter、Wordpress 等已经证明您不需要成为程序员来创建/维护 Web 内容。

你原来的问题也说明了这一点。所以,是的,您需要一个 CMS(一个使最终用户可以进行内容管理的系统)。

因此,您真正的问题是“我应该构建自己的 CMS,还是使用现有的 CMS?”。您上面描述的那些自定义界面,就是内容管理。您正在描述构建一个基本的 CMS。

——

对于这个问题,我会说:让最终用户可以访问“内容管理”比大多数程序员预期的要困难得多。即使实现一个并非完全脆弱的富文本(WYSIWYG)编辑器也是如此。越野车是一项艰巨的任务。

这只是冰山一角:权限、版本控制、工作流程、分类、分析、个性化、提要、评论、审核、错误记录等。

这些可能是也可能不是您在发布时需要的功能,但随着网站的成熟往往需要解决这些机会。

--

我在一家制作 CMS 的 公司 工作,所以我有偏见,但我考虑了创建 CMS 的决定CMS 疯狂。从技术角度来看它很复杂,从可用性角度来看更复杂。作为一个单人乐队(甚至十人乐队),您没有时间创建现有 CMS 软件包中随时可用的所有功能。这意味着改进网站以适应新想法或现代实践变得更加困难。你将永远落后并追赶。

我的建议是,找到一个符合客户需求的 CMS 平台,参与他们的社区并在此基础上进行构建。短期内这可能会更困难(包括您适应平台的编程理想),但它更好地服务于您的客户,不要依赖于其他开发人员有一天会继承(并讨厌)的某些自制的 CMS。

This becomes really simple when you boil it down:

Do non-technical users need to have the ability to manage the content on the web site?

For pretty much any modern-day web site, the answer is "yes". The web is now mainstream and Facebook, Twitter, Wordpress, etc. have demonstrated that you don't need to be a programmer to create/maintain web content.

Your original question says as much. So, yes, you need a CMS (a system that makes content management possible by end-users).

So your real question is "Should I build my own CMS, or use an existing CMS?". Those custom interfaces you describe above, that's content management. You're describing building a basic CMS.

--

To that question, I'll say: Making "content management" accessible to end-users is a lot harder than most programmers seem to anticipate. Even implementing a Rich Text (WYSIWYG) editor that isn't completely fragile & buggy is a monumental task.

And that's just the tip of the iceberg: permissions, versioning, workflow, taxonomy, analytics, personalization, feeds, comments, moderation, error logging, etc., etc.

These may or may not be features you need at launch, but as the web site matures these opportunities often need addressed.

--

I work for a company that makes a CMS, so I'm biased but I consider the decision to create a CMS crazy. It's complicated from a technical perspective and even more complicated from a usability perspective. As a one-man-band (or even a ten-man-band) you don't have time to create all the features that are readily available with existing CMS packages. This means it's harder to evolve the web site to accommodate new ideas or modern practices. You'll be perpetually behind and playing catch up.

My advice, find a CMS platform that aligns with your client's needs, become involved with their community and build on this foundation. It might be harder in the short-term (comprising your PROGRAMMING ideals to accommodate a platform), but it better serves your client to not be dependent on some home-baked CMS that another developer will someday inherit (and hate).

我为君王 2024-12-12 23:48:06

我认为构建一个后端接口可能会更好
查看/添加/编辑/删除蜘蛛收集的内容,因为我想象
这是非技术合作伙伴可以进行的唯一访问/控制类型
在这个项目中将需要。 (也可能禁止用户,删除
对内容的不当评论等)

是的,这将是一个好主意,它将给您更多的控制权。我猜你的非技术合作伙伴只需要这些功能。或者您可以询问您的伴侣他需要哪种/类型的控制。我的意思是他将遵循哪些具体用例

但是你们觉得 CMS 是否有某种价值?
可以提供给这样的项目吗?是否存在这样的情况
CMS 好/坏的普遍接受规则?我来自
使用 codeigniter 等框架构建 PHP 应用程序多年,以及
最近我不得不在一个 WordPress 网站上工作——对我来说这似乎
就像一堆恶心的全局变量,无穷无尽的“钩子”
在您需要的时间/地点执行的代码等。

想 CMS 也可以在这件事上帮助你。在这种情况下我推荐的是 DRUPAL。 DRUPAL 功能强大,足以控制这一点,您还可以在 DRUPAL 中创建自定义操作列表(例如添加、编辑或删除),您的非技术合作伙伴可以轻松访问。 DRUPAL 有很多插件(模块),我相信您会找到类似的东西,或者您可以组合几个插件来完成您的工作。使用现有的 CMS 将让您确认它是稳定的

I'm thinking it might be better to build a back-end interface to
view/add/edit/remove content that the spider collects, since I imagine
this is the only type of access/control that non-technical partners
will need in this project. (possible also ban users, remove
inappropriate comments on content, etc)

Yes it would be a good idea, it will give you more control. Your non technical partner will only need these functions i guess. Or you can ask your partner that what kind/type of control he needs. I mean what specific use cases he will follow

But what do you guys think, is there some sort of value that a CMS
could provide to a project like this? Are there situations where it's
a generally accepted rule that a CMS is good/bad? I'm coming from
years of PHP app building using frameworks like codeigniter, and
recently I've had to do work on a wordpress site -- which to me seemed
like a disgusting mess of global variables, endless 'hooks' to get
code to execute when/where you need it to, etc.

I guess CMS can help you out also in this matter. What i recommend is DRUPAL in that case. DRUPAL is powerful enough to control this also you can create a custom list of actions (like add,edit or delete) in DRUPAL which your non-technical partner can easily access. DRUPAL has a lot of plugins (modules) , i'm sure you will find something like that or you can combine few plugins to get your job done. Using an existing CMS will give you confirmation that it is stable

一指流沙 2024-12-12 23:48:06

考虑的始终是“业务需求是什么以及软件如何支持该需求?”您必须考虑核心需求是什么,然后评估最佳方法是什么,是使用 CMS、推出自己的系统,还是调整现有产品以满足业务需求。

访问控制并不能证明使用 CMS 是合理的 - CMS 非常适合用户生成和维护的内容,而(根据您的描述)您并没有真正在做这些事情。在我看来,您有特定于用户的首选项,这是 CMS 的一部分,但并不是真正的主要服务。

WordPress 不是 CMS 的一个很好的例子,至少在其核心方面是这样 - 它具有 CMS 的一些核心功能(用户、发布等),但同样,您将内容收集到一个中心位置,然后自定义该数据的显示。在我看来,它并不真正属于 CMS 领域。

编辑:好的,所以您的用户正在添加/创建内容,那么您应该考虑 CMS。您面临的挑战是将聚合的内容无缝添加到您的 CMS 中。这并非不可能,正如前面提到的,已建立的 CMS 平台之一将是一个很好的起点。

The consideration is always "What are the business needs and how can software support that?" You have to consider what the core needs are, then assess what the best approach may be, be it using a CMS, rolling your own system, or adapting an existing product to fit the business needs.

Access control does not justify using a CMS - a CMS is great for user generated and maintained content, something that (from your description) you're not really doing. It sounds to me like you have User-specific preferences, which is a part of a CMS, but not really a major service of them.

WordPress isn't a good example of a CMS, at least at its core - it has some of the core functionality of a CMS (users, publishing, etc) but again, you're collecting content into a central location and then customizing the display of that data. It doesn't really fall into the area of a CMS in my opinion.

Edit: Ok, so your users are adding to/creating content, you should then consider a CMS. Your challenge would be to add the aggregated content to your CMS seamlessly. It isn't impossible, and as mentioned, one of the established CMS platforms would be a good starting point.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文