在我第一次面试时,我被问到为什么要建立自己的CMS?为什么不使用现有的CMS,Wordpress,Joomla,Drupal ......?起初,我惊呆了。我无法立即回想起构建自己的CMS的所有原因,但这绝对是主要原因之一:这是我的代码,如果我想在CMS中更改某些内容(我经常要这样做,因为每个网站我构建需要具有不同功能的CMS)这不是一个大问题。有一段时间我一直在使用Wordpress,其中一个让我分心的主要事情是发现代码中的错误,这些错误不是由我编写的,而且这些错误经常发生,特别是如果我对CMS进行了一些更改或添加了插件...
Here,我可以找到这8个原因,为什么不建立自己的CMS:
无法满足用户的需求
这是太多的工作
这不是标准解决方案
它的扩展速度不够快
它的测试不够好
不容易改变
它不会添加任何值
创建内容,而不是功能
从同一页面引用:
所以问自己的主要问题 是:'为什么我真的想要 重新解决已经存在的问题 之前已经解决了吗?'
好吧,我绝对同意很难发明尚未发明的CMS,但另一方面,我认为每个CMS都是(或应该是)个体......它可能没有百万个功能,它将有3个功能,但它们的使用将是明确的(对用户)并且做一个站点需要的所有。我认为向客户提供一个从未使用过很多功能的CMS是不好的,当网站和CMS一起看起来像一个产品时,看起来可能更专业。
我还想评论一些引用部分:
“这是太多的工作” - 我同意,但是当使用现有的CMS并将其定制到网站需求时,有时可能是非常艰苦的工作或任务不可能。
“它不会轻易改变” - 我不同意这一点。
您对此有何看法,为什么开发或不开发自己的CMS? ILE
答案 0 :(得分:18)
这是一个适用于大多数开发的有趣问题,而不仅仅是在构建CMS时。
一般来说,我会说重新发明轮子是个坏主意(在大多数情况下你的大多数8个参数都是正确的),但也有例外。第一个浮现在脑海中的是乔尔·斯波尔斯基,In Defense of Not-Invented-Here Syndrome:
如果它是核心业务功能 - 那么 不管是什么,都是你自己。
关键是,如果你直接从构建内容管理系统赚钱,你不应该从别人那里拿一个并调整它直到它适合你。您宁愿完全控制自己的产品。
修改强>
另外,不要忘记重塑事物的冲动源于(甚至其他)基本规划的基本规律:
编写代码比阅读代码更容易
这并不意味着我们应该采取看似容易的道路,但它解释了我们为什么会这样做。接受挑战并实际阅读一些代码,而不是不时地编写代码。
答案 1 :(得分:15)
我会建立一个CMS,因为它既有趣又有很好的学习经验。
但是,任何开源CMS都可以根据客户的需求进行定制。最大的问题是您必须了解CMS的工作原理才能更好地进行更改。
无论哪种方式,你都将面临相当大的任务,但我必须同意那些说你不应该从头开始(除非你是为了学习一些新技术)完全出于你所说的理由的人。问题......正如他们所说, 不要重新发明轮子,除非你想学习轮子 。
答案 2 :(得分:7)
我发现当项目的上下文大于“内容网站”时,它可以正常工作。我曾经在一些房地产网站上工作,其中大部分内容来自数据源,或者已经存在于数据库中,这些数据库在您参与之前已经建立了很长的结构。实际上,我们只有少数BS'内容'页面构成了很少更新的网站。他们真正需要的是一个简单的数据输入界面。构建一些一个组件要比在一个开箱即用的CMS之上尝试和制作现有系统要容易得多。
与其他人提到的一样,你必须考虑整体要求。是否涉及工作流程?动态导航?然后我开始倾向于开箱即用CMS,但很多时候人们说他们需要一个CMS,当他们真的只需要一个WYSIWIG接口到数据库。但有时候不是......
答案 3 :(得分:7)
在我看来,不构建自己的CMS(除了安全问题)的最大原因是缺乏支持和升级路径。我认为客户将它们放在自定义CMS上是一种损害,然后必须依靠您只支持和更新。更糟糕的是让他们为自定义CMS的开发付费 - 无论网站要求多么简单,他们都会付钱给你重新发明轮子。
如果您的要求超出了内置范围,那么有很多CMS选项可以让您添加自己的自定义扩展程序。
构建自定义CMS的最佳理由(可能只是)是学好一门语言。构建CMS是学习Web开发的好方法,但它不是为客户提供服务的好方法。
答案 4 :(得分:3)
作为一个总是被推动用更少的资源做更多事情的团队领导者,我也会问“你为什么要写自己的?”有更多的CMS软件包,而不是编程语言,我发现很难相信你找不到满足大多数(如果不是全部)客户,业务和成本要求的软件包。
如果您发现需要更改代码,请选择开源解决方案,根据需要进行更改并进行分享。
我知道很多时候CMS系统并不是我们所需要的。许多客户需要内容编辑系统。我的意思是,有技术人员将网站放置到位并且客户添加/编辑/删除页面。这些页面已经过精心设计和格式化。在这些情况下,我可以看到它可以更快地设计和安装。从头开始实施某些工作,而不是砍掉具有访问权限或删除/隐藏功能的CMS。
答案 5 :(得分:2)
除非您正在构建一个体验,否则建立自己的理由只有一个:它比在市场上使用符合您要求的产品更便宜和/或更容易。