Drupal的一些缺点是什么?

Drupal是一个“Do Everything”CMS。 有几个模块可以让你添加几乎所有的function,这非常棒。 然而,感觉像许多function(v5和v6)似乎分散在四周,对用户来说是不直观的。 作为一名开发人员,我留下了使用泡泡糖和绳子一起修补网站的感觉。

例如,要将文本添加到默认search框(单击时消失),则必须添加一些jQuery代码或覆盖主题。 我也发现菜单系统比它应该更复杂。

我是唯一一个有这个意见的人吗? 什么东西(如果有的话),你会改变关于Drupal的核心?

缺乏真正面向对象的devise意味着你经常不得不依赖于其他开发人员的远见来留下“钩”function,让你改变某种行为。

使用Drupal 5我还遇到过要完成相对简单的devise更改的唯一方法是修补Drupal本身(然后确保在每个新的官方Drupal版本中重新应用修补程序)。 但是,公平地说,你应该已经看到了Drupal 4中的糟糕。

我也很烦恼,当我花时间在当前生产版本的Drupal中发现一个bug或者怪癖的时候,我提交了一个补丁,补丁从不提交,因为基本上只有安全bug在当前的稳定版本中得到修复。

对我而言,Drupal最大的缺点是Drupal站点的大部分都存储在数据库中。 由于没有自动的方式在系统之间迁移内容或configuration,因此推出对现场的更改必须手动完成或者由过于复杂的代码处理。

Drupal最大的缺点之一是,它在非编程站点构build者的交钥匙工具和构build复杂webapps的开发者的框架之间跳舞。 它提供了一些很酷的东西提供两个群体,但对一个人群的让步往往倾向于另一个。

Drupal社区的发展趋势是明确地构build开发者API,然后在API之上分层pipe理UI和最终用户UI。 这是一件好事,但还有很多遗留的架构。 这个项目本周8岁了,每个站点都需要混合不同模块的演变。

如果有人还没有build立一个你想要的模块,有效地利用系统而不破解核心代码,需要对许多不同的内部API,很多unique-to-drupal数据结构进行修改,偶尔研究一些时髦的工作stream程。 很多非常糟糕,不可能维护的网站在需要做些棘手的事情并且没有专门知识(或者时间)来研究“正确的”做事情的人们之间stream动。

(免责声明:我只是合作撰写了一本关于Drupal的书,我做了Drupal的全职工作,所以我尽可能远离“无偏见”,但是我喜欢这样想我保持观点,我也是心中的Django。)

Drupal将为您提供80%的方式,但最后的20%将需要数月和数月。

Drupal是一个令人印象深刻的系统。 所有这一切都令人惊讶的小,而且它的模块系统是非常强大的。 但正如Eli所说,你的许多任务将依靠其他开发者以特定的方式做某事。

Drupal社区里有一个关于它的devise的争论。 在PHP的OOPfunction强大之前,Drupal就已经出现了,但现在他们经常讨论如何将系统改为使用面向对象的数据结构。 根据你的口味,这可能是你作为一个开发者的不利因素。 我自己有两个心思。

这个系统对于新手来说似乎也是非常“神奇”的,因为它以某种方式对所有这些疯狂的东西做了一些解释。 “我只是定义了一个函数,Drupal如何知道如何调用它?”

不过,我必须说,一般来说我是Drupal的忠实粉丝。 这是一个很好的系统,可以使每个主要版本的负载更好。 我等不及7。

Drupal很适合上手,但是花费更多的时间去解决问题,而不是完成任务。 特别是随着Drupal 6的发布,这一点已经发生了变化,公平地说,它在贡献模块中更加明显。

肖恩说,pipe理迁移也是一个问题。 我仍然不知道将一个开发站点的变更移动到一个现场的好方法。

我不确定在目前的核心中会有什么变化,而且大部分的缺陷正在被处理。 图像pipe理需要工作,默认的pipe理界面有点混乱,使得布局更复杂,没有获得视图/面板等,涉及可以使用一些工作。

我觉得这非常复杂。 作为一个PHP开发人员即时撕裂我的头发每天的问题,这与PHP无关,但与Drupal本身。 如何/为什么/何时做X? 它是一个需要被驯服的大野兽。 文档仅限于一些非常好的指南,一些低劣的,甚至更多无用的论坛线程,似乎总是在谷歌popup。

在后端的可用性是废话。 一个自定义的主题也会改变这个包的“admin”部分的布局,这可能是非常令人沮丧的,并且导致布局不尽人意。

如果你正在使用html切片机,那么不可能使用专门为drupal创build的html。 它非常强迫你使用drupal-html,有很多div,每个div有5个详细的类,本质上,html / css的人不能期望在这个级别知道drupal。

我不喜欢它依赖文件名的方式(10个字长,它们之间有非常微妙的差异)来构build主题。

话虽如此,它可以做的一些东西是非常酷的,并节省了你自定义的php开发的日子和日子

Drupal为非程序员提供了强大的工具,他们可以用更less的时间轻松build立一个全function的站点。 但是问题是Drupal的学习曲线太高了。

如果一个人是drupal的新手,并且想要定制一些东西,那么如果他想以适当的方式来做,那将需要很多时间。 有很多方法可以在drupal中做一件事,找出对于一个新来者来说最适合或最适合的是头疼。

我认为高学习曲线是唯一的缺点,因为大多数公司都在努力寻找好的Drupal人才。 http://drupalize.me/和http://buildamodule.com/正在做很好的工作,以减less这种高的学习曲线。;

我发现默认的pipe理界面不像其他CMS像modx或joomla / mambo那样是非常直观的

它是用PHP4编写的。 这将从版本7改变。你可以编写自己的模块在php5当然。 作为经验丰富的Drupal开发人员,我发现我的简历受到了我对php5的有限暴露的困扰。

这不是运行SOAP等服务的最佳select。 调用整个Drupal堆栈来提供一个Web服务是太多的性能损失。 服务模块仍在开发中。

没有数据库事务支持。 当您将其扩展到极端负载时,这成为一个问题。

从命令行运行testing会很好。 这是可能的简单的1.x,但目前的版本并不能很好地支持它。 Simpletest还不够成熟。 干净的Drupal安装可能会导致testing失败。 一些默认包含的testing迫使您使用您可能不需要的内容types和模块,并且不能禁用这些,而不会破解最简单的模块。

它有一个看似不好的安全logging: http : //secunia.com/advisories/search/?search=Drupal