为什么要建立自己的CMS?

ili*_*ica 21 content-management-system building

在我第一次面试时,我被问到为什么要建立自己的CMS?为什么不使用现有的CMS,Wordpress,Joomla,Drupal ......?起初,我惊呆了.我无法立即回想起构建自己的CMS的所有原因,但这绝对是主要原因之一:这是我的代码,如果我想在CMS中更改某些内容(我经常要这样做,因为每个网站我构建需要具有不同功能的CMS)这不是一个大问题.有一段时间我一直在使用Wordpress,其中一个让我分心的主要事情是发现代码中的错误,这些错误不是由我编写的,而且这些错误经常发生,特别是如果我对CMS进行了一些更改或添加了插件...

在这里,我可以找到为什么不构建自己的CMS的这8个原因:

  1. 它无法满足用户的需求

  2. 这工作太多了

  3. 它不是标准的解决方案

  4. 它的扩展速度不够快

  5. 它的测试不够好

  6. 它不会轻易改变

  7. 它不会添加任何价值

  8. 创建内容,而不是功能


从同一页面引用:

因此,问自己的主要问题是:"为什么我真的想重新解决之前已经解决的问题?"


好吧,我绝对同意很难发明尚未发明的CMS,但另一方面,我认为每个CMS都是(或应该是)个体......它可能没有百万个功能,它将有3个功能,但它们的使用将是明确的(对用户)并且做一个站点需要的所有.我认为向客户提供一个从未使用过很多功能的CMS是不好的,当网站和CMS看起来像一个产品时,它看起来可能更专业.

我还想评论一些引用部分:
"这是太多的工作" - 我同意,但是当使用现有的CMS并根据网站需求进行定制时,有时可能是非常艰苦的工作或任务不可能.
"它不会轻易改变" - 我不同意这一点.

您对此有何看法,为什么开发或不开发自己的CMS?

Jak*_*kob 18

这是一个适用于大多数开发的有趣问题,而不仅仅是在构建CMS时.

一般来说,我会说重新发明轮子是个坏主意(大多数情况下大多数8个参数都是正确的),但也有例外.第一个浮现脑海中的是乔尔·斯波尔斯基(Joel Spolsky),"未发明的这种综合症的防御":

如果它是核心业务功能 - 无论如何都要自己动手.

关键是,如果你直接从构建内容管理系统赚钱,你不应该从别人那里拿一个并调整它直到它适合你.您宁愿完全控制自己的产品.

编辑:

此外,不要忘记重塑事物的冲动源于(除其他事项外)基本的编程规律:

编写代码比阅读代码更容易

这并不意味着我们应该采取看似容易的道路,但它解释了我们为什么会这样做.接受挑战并实际阅读一些代码,而不是不时地编写代码.


Kla*_*sen 15

我会建立一个CMS,因为它可以很有趣,也很有学习经验.

但是,任何开源CMS都可以根据客户的需求进行定制.最大的问题是您必须了解CMS的工作原理才能更好地进行更改.

无论哪种方式,你都将面临相当大的任务,但我必须同意那些说你不应该从头开始(除非你是为了学习一些新技术)完全出于你问题中所述理由的人.正如他们所说,除非你想了解车轮,否则不要重新发明车轮.

  • "除非你想学习轮子,否则不要重新发明轮子" - 这是所有"我想编写我自己的编译器/ os/cms /数据库"等的答案,太棒了!简短干净,给你10分! (2认同)

小智 7

我发现当项目的上下文大于"内容网站"时它才有用.我曾经在一些房地产网站上工作,其中大部分内容来自数据源,或者已经存在于数据库中,这些数据库在您参与之前已经建立了很久的结构.实际上,我们只有少数BS'内容'页面构成了很少更新的网站.他们真正需要的是一个简单的数据输入界面.构建一些一个组件要比在一个开箱即用的CMS之上尝试和制作现有系统要容易得多.

与其他人提到的一样,您必须考虑总体要求.是否涉及工作流程?动态导航?然后我开始倾向于开箱即用CMS,但很多时候人们说他们需要一个CMS,当他们真的只需要一个WYSIWIG接口到数据库.但有时候不...


mah*_*lie 7

在我看来,不构建自己的CMS(除了安全问题)的最大原因是缺乏支持和升级路径.我认为客户将它们放在自定义CMS上是一种损害,然后必须依靠您只支持和更新.更糟糕的是让他们为自定义CMS的开发付费 - 无论网站要求多么简单,他们都会付钱给您重新发明轮子.

如果您的要求超出了内置范围,那么有很多CMS选项可以让您添加自己的自定义扩展.

构建自定义CMS的最佳理由(可能只是)是学好一门语言.构建CMS是学习Web开发的好方法,但它不是为客户提供服务的好方法.