为啥要建立自己的CMS? [关闭]
Posted
技术标签:
【中文标题】为啥要建立自己的CMS? [关闭]【英文标题】:Why to build own CMS? [closed]为什么要建立自己的CMS? [关闭] 【发布时间】:2011-02-04 23:55:54 【问题描述】:在我的第一次工作面试中,有人问我为什么要建立自己的 CMS?为什么不使用现有的 CMS、Wordpress、Joomla、Drupal... 之一?起初,我惊呆了。我无法立即回忆起构建自己的 CMS 的所有原因,但这绝对是主要原因之一:这是我的代码,如果我想更改该 CMS 中的某些内容(我经常必须这样做,因为每个网站我构建需要具有不同功能的CMS)这不是一个大问题。一段时间以来,我一直在使用 Wordpress,而让我分心的主要事情之一是发现不是我编写的代码中的错误,而且这些错误经常出现,特别是如果我对 CMS 进行了一些更改或添加了一个插件... Here,我可以找到这8个为什么不建立自己的CMS的原因:
满足不了用户的需求
工作量太大
这不是标准解决方案
它的扩展速度不够快
测试不够好
不会轻易改变
不会增加任何价值
创建内容,而不是功能
引用同一页:
所以要问自己的主要问题 是:‘为什么我真的想 重新解决已经存在的问题 以前解决过吗?'
好吧,我绝对同意很难发明尚未发明的 CMS,但另一方面,我认为每个 CMS 都是(或应该是)个体......它可能不会有一百万个功能,它将具有 3 个功能,但它们的使用将是明确的(对用户而言),并且可以完成一个站点需要具备的所有功能。我也认为给客户一个CMS是不好的,它有很多从未使用过的功能,当网站和CMS看起来像一个产品时,它可能看起来更专业。
我还想评论一些引用部分: “工作量太大” - 我同意,但是当使用现有的 CMS 并根据网站需求对其进行自定义时,有时可能会非常艰巨或不可能完成任务。 “它不会轻易改变” - 我不同意这一点。
您对此有何看法,为什么要开发或不开发自己的 CMS? 伊莱
【问题讨论】:
这应该是一个社区 wiki 问题。 这个问题只能由以下人员回答:1. 开发了自己的 CMS 并在生产中使用; 2. 使用了开箱即用的 CMS,将其调整为以前存在的需求,并且在生产中使用它。 @Chris:我认为任何在 Web 开发方面有丰富经验的人都可以对这个问题进行回答或发表意见 我不同意这个问题是社区维基。明确的技术问题......也许更多属于programmers.stackexchange.com,但属于nvm。 【参考方案1】:作为一个总是被要求事半功倍的团队领导,我也提出了这样一个问题:“你为什么要自己写?” CMS 包的数量比编程语言的数量还要多,我很难相信您找不到能够满足大多数(如果不是全部)客户、业务和成本要求的包。
如果您发现需要更改代码,请选择开源解决方案,根据需要进行更改并共享。
我知道很多时候不需要 CMS 系统。许多客户需要内容编辑系统。我的意思是技术人员将网站放置到位,客户添加/编辑/删除页面。这些页面已经经过精心设计和格式化。在这些情况下,我可以看到从头开始设计和实现某些东西可能比砍掉具有访问权限或删除/隐藏功能的 CMS 更快。
【讨论】:
您如何确定最适合您客户要求的 CMS 系统?确定您需要调整您选择的 CMS,那么哪一个是最好的并且肯定会满足所有要求?你需要多少时间来熟悉所有现有的东西才能做出选择? (在这种情况下最好意味着便宜) 好吧,我不同意找到合适的 CMS 这么容易,尤其是对于我的客户,因为他们中的大多数人都需要克罗地亚语的网站(和)CMS,我必须承认我一直都有变音符号有很多问题 @ile: 我猜你的意思是'šđćčŠĐĆČžŽ' ;-)【参考方案2】:这是一个适用于大多数开发的有趣问题,而不仅仅是在构建 CMS 时。
一般来说,我会说重新发明***是个坏主意(在大多数情况下,您的 8 个论点中的大多数都是正确的),但也有例外。第一个想到的是 Joel Spolsky,In Defense of Not-Invented-Here Syndrome:
如果它是核心业务功能 -- 做 自己做,不管怎样。
关键是,如果您直接通过构建内容管理系统来赚钱,那么您不应该从其他人那里获取一个并对其进行调整,直到它适合您为止。您宁愿完全控制自己的产品。
编辑:
另外,不要忘记重新发明事物的冲动(除其他外)源于编程的基本法则:
写代码比读代码容易
这并不意味着我们应该走看似更容易的道路,但它解释了我们为什么会爱上它。不时接受挑战,实际阅读一些代码,而不是编写代码。
【讨论】:
我不知道为什么,但在使用某人的代码时我有点怀疑,因为我知道我将来需要对其进行一些更改,也许这就是让我分心的原因使用它。有人在这里提到,如果您正在构建 CMS 来学习它并学习新技术,那么这样做是件好事。好吧,我会说我也被它引导了。【参考方案3】:我会建立一个 CMS,因为它很有趣,而且是一次很棒的学习体验。
但是,任何开源 CMS 都可以根据任何客户的需求进行定制。最大的问题是您必须了解 CMS 的工作原理才能很好地对其进行更改。
无论哪种方式,您都将面临一项艰巨的任务,但我必须同意那些说您不应该从头开始(除非您这样做是为了学习一些新技术)正是出于您在问题...正如他们所说,除非您想了解***,否则不要重新发明***。
【讨论】:
“我会构建一个 CMS,因为它可以很有趣,而且是一次很棒的学习体验”——我没有在我的问题中写下它,但这也是我开始构建它的主要原因之一. “除非你想了解***,否则不要重新发明***”——这就是所有“我想编写自己的编译器/os/cms/数据库”等的答案。太棒了!简短而干净,给你+10!【参考方案4】:我发现当项目的上下文大于“内容站点”时,它可以工作。我曾在许多房地产网站工作过,其中大部分内容来自数据馈送,或者已经存在于数据库中,这些数据库在您参与之前很久就已经建立了结构。真的,我们只有少数几个很少更新的网站“内容”页面。他们真正需要的是一个简单的数据输入界面。在开箱即用的 CMS 之上构建一些单独的组件要比尝试在现有系统上硬塞要容易得多。
与其他人提到的一样,您必须考虑总体要求。是否涉及工作流程?动态导航?然后我会开始更倾向于开箱即用的 CMS,但很多时候人们说他们需要一个 CMS,而实际上他们只需要一个所见即所得的数据库接口。但有时不是...
【讨论】:
【参考方案5】:在我看来,不构建自己的 CMS(除了安全问题)的最大原因是缺乏支持和升级路径。我认为将客户放在自定义 CMS 上,然后只能依靠您的支持和更新,这对客户是一种伤害。更糟糕的是让他们为定制 CMS 的开发付费——不管站点要求多么简单,他们都在付钱给你重新发明***。
如果您的要求超出了内置内容,则有很多 CMS 选项可让您添加自己的自定义扩展。
构建自定义 CMS 的最佳理由(可能只是)是为了学好一门语言。构建 CMS 是学习 Web 开发的好方法,但不是为客户提供服务的好方法。
【讨论】:
【参考方案6】:除非您是为了体验而构建一个,否则只有一个真正的理由来构建自己的:它比在市场上使用满足您要求的一个更便宜和/或更容易。
【讨论】:
以上是关于为啥要建立自己的CMS? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章